| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var Constants = require("./util/constants");
- var helpers = require("./util/helpers");
- var build = require("./build");
- var buildUtils = require("./build/util");
- var bundle = require("./bundle");
- var copy = require("./copy");
- var clean = require("./clean");
- var deepLinking = require("./deep-linking");
- var lint = require("./lint");
- var minify = require("./minify");
- var ngc = require("./ngc");
- var postprocess = require("./postprocess");
- var preprocess = require("./preprocess");
- var sass = require("./sass");
- var transpile = require("./transpile");
- describe('build', function () {
- beforeEach(function () {
- spyOn(clean, 'clean');
- spyOn(helpers, helpers.readFileAsync.name).and.returnValue(Promise.resolve());
- spyOn(transpile, transpile.getTsConfigAsync.name).and.callFake(function () {
- return Promise.resolve({
- 'options': {
- 'sourceMap': true
- }
- });
- });
- spyOn(buildUtils, buildUtils.scanSrcTsFiles.name).and.returnValue(Promise.resolve());
- spyOn(buildUtils, buildUtils.validateRequiredFilesExist.name).and.returnValue(Promise.resolve(['fileOneContent', 'fileTwoContent']));
- spyOn(buildUtils, buildUtils.validateTsConfigSettings.name).and.returnValue(Promise.resolve());
- spyOn(buildUtils, buildUtils.readVersionOfDependencies.name).and.returnValue(Promise.resolve());
- spyOn(bundle, bundle.bundle.name).and.returnValue(Promise.resolve());
- spyOn(copy, copy.copy.name).and.returnValue(Promise.resolve());
- spyOn(deepLinking, deepLinking.deepLinking.name).and.returnValue(Promise.resolve());
- spyOn(minify, minify.minifyCss.name).and.returnValue(Promise.resolve());
- spyOn(minify, minify.minifyJs.name).and.returnValue(Promise.resolve());
- spyOn(lint, lint.lint.name).and.returnValue(Promise.resolve());
- spyOn(ngc, ngc.ngc.name).and.returnValue(Promise.resolve());
- spyOn(postprocess, postprocess.postprocess.name).and.returnValue(Promise.resolve());
- spyOn(preprocess, preprocess.preprocess.name).and.returnValue(Promise.resolve());
- spyOn(sass, sass.sass.name).and.returnValue(Promise.resolve());
- spyOn(transpile, transpile.transpile.name).and.returnValue(Promise.resolve());
- });
- it('should do a prod build', function () {
- var context = {
- isProd: true,
- optimizeJs: true,
- runMinifyJs: true,
- runMinifyCss: true,
- runAot: true
- };
- var getBooleanPropertyValueSpy = spyOn(helpers, helpers.getBooleanPropertyValue.name).and.returnValue(true);
- return build.build(context).then(function () {
- expect(buildUtils.scanSrcTsFiles).toHaveBeenCalled();
- expect(copy.copy).toHaveBeenCalled();
- expect(deepLinking.deepLinking).toHaveBeenCalled();
- expect(ngc.ngc).toHaveBeenCalled();
- expect(bundle.bundle).toHaveBeenCalled();
- expect(minify.minifyJs).toHaveBeenCalled();
- expect(sass.sass).toHaveBeenCalled();
- expect(minify.minifyCss).toHaveBeenCalled();
- expect(lint.lint).toHaveBeenCalled();
- expect(getBooleanPropertyValueSpy.calls.all()[1].args[0]).toEqual(Constants.ENV_ENABLE_LINT);
- expect(transpile.transpile).not.toHaveBeenCalled();
- });
- });
- it('should do a dev build', function () {
- var context = {
- isProd: false,
- optimizeJs: false,
- runMinifyJs: false,
- runMinifyCss: false,
- runAot: false
- };
- var getBooleanPropertyValueSpy = spyOn(helpers, helpers.getBooleanPropertyValue.name).and.returnValue(true);
- return build.build(context).then(function () {
- expect(buildUtils.scanSrcTsFiles).toHaveBeenCalled();
- expect(copy.copy).toHaveBeenCalled();
- expect(deepLinking.deepLinking).toHaveBeenCalled();
- expect(transpile.transpile).toHaveBeenCalled();
- expect(bundle.bundle).toHaveBeenCalled();
- expect(sass.sass).toHaveBeenCalled();
- expect(lint.lint).toHaveBeenCalled();
- expect(getBooleanPropertyValueSpy.calls.all()[1].args[0]).toEqual(Constants.ENV_ENABLE_LINT);
- expect(postprocess.postprocess).toHaveBeenCalled();
- expect(preprocess.preprocess).toHaveBeenCalled();
- expect(ngc.ngc).not.toHaveBeenCalled();
- expect(minify.minifyJs).not.toHaveBeenCalled();
- expect(minify.minifyCss).not.toHaveBeenCalled();
- });
- });
- it('should skip lint', function () {
- var context = {
- isProd: false,
- optimizeJs: false,
- runMinifyJs: false,
- runMinifyCss: false,
- runAot: false
- };
- var getBooleanPropertyValueSpy = spyOn(helpers, helpers.getBooleanPropertyValue.name).and.returnValue(false);
- return build.build(context).then(function () {
- expect(buildUtils.scanSrcTsFiles).toHaveBeenCalled();
- expect(copy.copy).toHaveBeenCalled();
- expect(transpile.transpile).toHaveBeenCalled();
- expect(bundle.bundle).toHaveBeenCalled();
- expect(sass.sass).toHaveBeenCalled();
- expect(lint.lint).not.toHaveBeenCalled();
- expect(getBooleanPropertyValueSpy.calls.all()[1].args[0]).toEqual(Constants.ENV_ENABLE_LINT);
- expect(postprocess.postprocess).toHaveBeenCalled();
- expect(preprocess.preprocess).toHaveBeenCalled();
- expect(ngc.ngc).not.toHaveBeenCalled();
- expect(minify.minifyJs).not.toHaveBeenCalled();
- expect(minify.minifyCss).not.toHaveBeenCalled();
- });
- });
- });
- describe('test project requirements before building', function () {
- it('should fail if APP_ENTRY_POINT file does not exist', function () {
- process.env[Constants.ENV_APP_ENTRY_POINT] = 'src/app/main.ts';
- process.env[Constants.ENV_TS_CONFIG] = 'tsConfig.js';
- var error = new Error('App entry point was not found');
- spyOn(helpers, 'readFileAsync').and.returnValue(Promise.reject(error));
- return build.build({}).catch(function (e) {
- expect(helpers.readFileAsync).toHaveBeenCalledTimes(1);
- expect(e).toEqual(error);
- });
- });
- it('should fail if IONIC_TS_CONFIG file does not exist', function () {
- process.env[Constants.ENV_APP_ENTRY_POINT] = 'src/app/main.ts';
- process.env[Constants.ENV_TS_CONFIG] = 'tsConfig.js';
- var error = new Error('Config was not found');
- spyOn(helpers, helpers.readFileAsync.name).and.returnValues(Promise.resolve());
- spyOn(transpile, transpile.getTsConfigAsync.name).and.returnValues(Promise.reject(error));
- return build.build({}).catch(function (e) {
- expect(transpile.getTsConfigAsync).toHaveBeenCalledTimes(1);
- expect(helpers.readFileAsync).toHaveBeenCalledTimes(1);
- expect(e).toEqual(error);
- });
- });
- it('should fail fataly if IONIC_TS_CONFIG file does not contain valid JSON', function () {
- process.env[Constants.ENV_APP_ENTRY_POINT] = 'src/app/main.ts';
- process.env[Constants.ENV_TS_CONFIG] = 'tsConfig.js';
- spyOn(transpile, transpile.getTsConfigAsync.name).and.callFake(function () {
- return Promise.resolve("{\n \"options\" {\n \"sourceMap\": false\n }\n }\n ");
- });
- spyOn(buildUtils, buildUtils.scanSrcTsFiles.name).and.returnValue(Promise.resolve());
- spyOn(buildUtils, buildUtils.readVersionOfDependencies.name).and.returnValue(Promise.resolve());
- return build.build({}).catch(function (e) {
- expect(transpile.getTsConfigAsync).toHaveBeenCalledTimes(1);
- expect(e.isFatal).toBeTruthy();
- });
- });
- it('should fail fataly if IONIC_TS_CONFIG file does not contain compilerOptions.sourceMap === true', function () {
- process.env[Constants.ENV_APP_ENTRY_POINT] = 'src/app/main.ts';
- process.env[Constants.ENV_TS_CONFIG] = 'tsConfig.js';
- spyOn(transpile, transpile.getTsConfigAsync.name).and.callFake(function () {
- return Promise.resolve("{\n \"options\": {\n \"sourceMap\": false\n }\n }\n ");
- });
- spyOn(buildUtils, buildUtils.scanSrcTsFiles.name).and.returnValue(Promise.resolve());
- spyOn(buildUtils, buildUtils.readVersionOfDependencies.name).and.returnValue(Promise.resolve());
- return build.build({}).catch(function (e) {
- expect(transpile.getTsConfigAsync).toHaveBeenCalledTimes(1);
- expect(e.isFatal).toBeTruthy();
- });
- });
- });
|