From df76d4496645f9dae737969853483df2088854c1 Mon Sep 17 00:00:00 2001 From: JounQin Date: Fri, 19 Jul 2019 13:23:28 +0800 Subject: [PATCH] chore: add test for angular-cli_utils --- .../__tests__/angular-cli_utils.test.ts | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 app/angular/src/server/__tests__/angular-cli_utils.test.ts diff --git a/app/angular/src/server/__tests__/angular-cli_utils.test.ts b/app/angular/src/server/__tests__/angular-cli_utils.test.ts new file mode 100644 index 000000000000..9e0b178663cf --- /dev/null +++ b/app/angular/src/server/__tests__/angular-cli_utils.test.ts @@ -0,0 +1,47 @@ +import { Path } from '@angular-devkit/core'; + +import { getAngularCliParts } from '../angular-cli_utils'; +import { getAngularCliWebpackConfigOptions } from '../angular-cli_config'; + +// @ts-ignore +import angularJson from './angular.json'; + +// eslint-disable-next-line global-require +jest.mock('fs', () => require('../../../../../__mocks__/fs')); +jest.mock('path', () => ({ + join: (...args) => + args[args.length - 1] === 'angular.json' + ? 'angular.json' + : jest.requireActual('path').join(...args), + resolve: (..._args) => 'tsconfig.json', + parse: jest.requireActual('path').parse, + dirname: jest.requireActual('path').dirname, +})); + +const setupFiles = (files: any) => { + // eslint-disable-next-line no-underscore-dangle, global-require + require('fs').__setMockFiles(files); +}; + +describe('angular-cli_utils', () => { + describe('getAngularCliParts', () => { + it('should parse angular cli config correctly', () => { + setupFiles({ 'angular.json': JSON.stringify(angularJson) }); + let config = getAngularCliWebpackConfigOptions('/' as Path); + expect(getAngularCliParts(config)).not.toBe(null); + + config = { + ...config, + buildOptions: { + ...config.buildOptions, + }, + }; + + delete config.buildOptions.outputPath; + delete config.buildOptions.scripts; + delete config.buildOptions.styles; + + expect(getAngularCliParts(config)).not.toBe(null); + }); + }); +});