1+ import { join , resolve } from 'path' ;
2+
3+ import * as helpers from './helpers' ;
14import { BuildContext } from './interfaces' ;
25import * as config from './config' ;
3-
46import * as Constants from './constants' ;
5- import { resolve } from 'path' ;
67
78
89describe ( 'config' , ( ) => {
910
10- describe ( 'config.config. generateContext' , ( ) => {
11+ describe ( 'config.generateContext' , ( ) => {
1112
1213 it ( 'should set isWatch true with isWatch true context' , ( ) => {
1314 const context = config . generateContext ( {
@@ -48,7 +49,7 @@ describe('config', () => {
4849 expect ( context ) . toBeDefined ( ) ;
4950 } ) ;
5051
51- it ( 'should set default prod specific build flag defaults to false ' , ( ) => {
52+ it ( 'should set the correct defaults for a dev build ' , ( ) => {
5253 // arrange
5354 const fakeConfig : any = { } ;
5455 config . setProcessEnv ( fakeConfig ) ;
@@ -65,11 +66,90 @@ describe('config', () => {
6566 expect ( context . runMinifyCss ) . toEqual ( false ) ;
6667 expect ( context . optimizeJs ) . toEqual ( false ) ;
6768 expect ( fakeConfig [ Constants . ENV_VAR_IONIC_ENV ] ) . toEqual ( Constants . ENV_VAR_DEV ) ;
69+
70+ expect ( context . rootDir ) . toEqual ( process . cwd ( ) ) ;
71+ expect ( context . tmpDir ) . toEqual ( join ( process . cwd ( ) , Constants . TMP_DIR ) ) ;
72+ expect ( context . srcDir ) . toEqual ( join ( process . cwd ( ) , Constants . SRC_DIR ) ) ;
73+ expect ( context . wwwDir ) . toEqual ( join ( process . cwd ( ) , Constants . WWW_DIR ) ) ;
74+ expect ( context . wwwIndex ) . toEqual ( 'index.html' ) ;
75+ expect ( context . buildDir ) . toEqual ( join ( process . cwd ( ) , Constants . WWW_DIR , Constants . BUILD_DIR ) ) ;
76+ expect ( context . nodeModulesDir ) . toEqual ( join ( process . cwd ( ) , Constants . NODE_MODULES ) ) ;
77+ expect ( context . ionicAngularDir ) . toEqual ( join ( process . cwd ( ) , Constants . NODE_MODULES , Constants . IONIC_ANGULAR ) ) ;
78+ expect ( context . platform ) . toEqual ( null ) ;
79+ expect ( context . target ) . toEqual ( null ) ;
80+ expect ( fakeConfig [ Constants . ENV_VAR_IONIC_ANGULAR_ENTRY_POINT ] ) . toEqual ( join ( context . ionicAngularDir , 'index.js' ) ) ;
81+ expect ( fakeConfig [ Constants . ENV_VAR_APP_SCRIPTS_DIR ] ) . toEqual ( join ( __dirname , '..' , '..' ) ) ;
82+ expect ( fakeConfig [ Constants . ENV_VAR_GENERATE_SOURCE_MAP ] ) . toEqual ( 'true' ) ;
83+ expect ( fakeConfig [ Constants . ENV_VAR_SOURCE_MAP_TYPE ] ) . toEqual ( Constants . SOURCE_MAP_TYPE_EXPENSIVE ) ;
84+ expect ( fakeConfig [ Constants . ENV_TS_CONFIG ] ) . toEqual ( join ( process . cwd ( ) , 'tsconfig.json' ) ) ;
85+ expect ( fakeConfig [ Constants . ENV_READ_CONFIG_JSON ] ) . toEqual ( 'true' ) ;
86+ expect ( fakeConfig [ Constants . ENV_APP_ENTRY_POINT ] ) . toEqual ( join ( context . srcDir , 'app' , 'main.ts' ) ) ;
87+ expect ( fakeConfig [ Constants . ENV_APP_NG_MODULE_PATH ] ) . toEqual ( join ( context . srcDir , 'app' , 'app.module.ts' ) ) ;
88+ expect ( fakeConfig [ Constants . ENV_APP_NG_MODULE_CLASS ] ) . toEqual ( 'AppModule' ) ;
89+ expect ( fakeConfig [ Constants . ENV_GLOB_UTIL ] ) . toEqual ( join ( fakeConfig [ Constants . ENV_VAR_APP_SCRIPTS_DIR ] , 'dist' , 'util' , 'glob-util.js' ) ) ;
90+ expect ( fakeConfig [ Constants . ENV_CLEAN_BEFORE_COPY ] ) . toBeFalsy ( ) ;
91+ expect ( fakeConfig [ Constants . ENV_CLOSURE_JAR ] ) . toEqual ( join ( fakeConfig [ Constants . ENV_VAR_APP_SCRIPTS_DIR ] , 'bin' , 'closure-compiler.jar' ) ) ;
92+ expect ( fakeConfig [ Constants . ENV_OUTPUT_JS_FILE_NAME ] ) . toEqual ( 'main.js' ) ;
93+ expect ( fakeConfig [ Constants . ENV_OUTPUT_JS_MAP_FILE_NAME ] ) . toEqual ( 'main.js.map' ) ;
94+ expect ( fakeConfig [ Constants . ENV_OUTPUT_CSS_FILE_NAME ] ) . toEqual ( 'main.css' ) ;
95+ expect ( fakeConfig [ Constants . ENV_OUTPUT_CSS_MAP_FILE_NAME ] ) . toEqual ( 'main.css.map' ) ;
96+ expect ( fakeConfig [ Constants . ENV_WEBPACK_FACTORY ] ) . toEqual ( join ( fakeConfig [ Constants . ENV_VAR_APP_SCRIPTS_DIR ] , 'dist' , 'webpack' , 'ionic-webpack-factory.js' ) ) ;
97+ expect ( fakeConfig [ Constants . ENV_WEBPACK_LOADER ] ) . toEqual ( join ( fakeConfig [ Constants . ENV_VAR_APP_SCRIPTS_DIR ] , 'dist' , 'webpack' , 'loader.js' ) ) ;
98+ expect ( fakeConfig [ Constants . ENV_OPTIMIZATION_LOADER ] ) . toEqual ( join ( fakeConfig [ Constants . ENV_VAR_APP_SCRIPTS_DIR ] , 'dist' , 'webpack' , 'optimization-loader.js' ) ) ;
99+ expect ( fakeConfig [ Constants . ENV_AOT_WRITE_TO_DISK ] ) . toBeFalsy ( ) ;
100+ expect ( fakeConfig [ Constants . ENV_PRINT_ORIGINAL_DEPENDENCY_TREE ] ) . toBeFalsy ( ) ;
101+ expect ( fakeConfig [ Constants . ENV_PRINT_MODIFIED_DEPENDENCY_TREE ] ) . toBeFalsy ( ) ;
102+ expect ( fakeConfig [ Constants . ENV_PRINT_WEBPACK_DEPENDENCY_TREE ] ) . toBeFalsy ( ) ;
103+ expect ( fakeConfig [ Constants . ENV_BAIL_ON_LINT_ERROR ] ) . toBeFalsy ( ) ;
104+ expect ( fakeConfig [ Constants . ENV_ENABLE_LINT ] ) . toEqual ( 'true' ) ;
105+ expect ( fakeConfig [ Constants . ENV_DISABLE_LOGGING ] ) . toBeFalsy ( ) ;
106+
107+ expect ( fakeConfig [ Constants . ENV_ACTION_SHEET_CONTROLLER_CLASSNAME ] ) . toEqual ( 'ActionSheetController' ) ;
108+ expect ( fakeConfig [ Constants . ENV_ACTION_SHEET_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'action-sheet' , 'action-sheet-controller.js' ) ) ;
109+ expect ( fakeConfig [ Constants . ENV_ACTION_SHEET_VIEW_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'action-sheet' , 'action-sheet.js' ) ) ;
110+ expect ( fakeConfig [ Constants . ENV_ACTION_SHEET_COMPONENT_FACTORY_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'action-sheet' , 'action-sheet-component.ngfactory.js' ) ) ;
111+
112+ expect ( fakeConfig [ Constants . ENV_ALERT_CONTROLLER_CLASSNAME ] ) . toEqual ( 'AlertController' ) ;
113+ expect ( fakeConfig [ Constants . ENV_ALERT_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'alert' , 'alert-controller.js' ) ) ;
114+ expect ( fakeConfig [ Constants . ENV_ALERT_VIEW_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'alert' , 'alert.js' ) ) ;
115+ expect ( fakeConfig [ Constants . ENV_ALERT_COMPONENT_FACTORY_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'alert' , 'alert-component.ngfactory.js' ) ) ;
116+
117+ expect ( fakeConfig [ Constants . ENV_LOADING_CONTROLLER_CLASSNAME ] ) . toEqual ( 'LoadingController' ) ;
118+ expect ( fakeConfig [ Constants . ENV_LOADING_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'loading' , 'loading-controller.js' ) ) ;
119+ expect ( fakeConfig [ Constants . ENV_LOADING_VIEW_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'loading' , 'loading.js' ) ) ;
120+ expect ( fakeConfig [ Constants . ENV_LOADING_COMPONENT_FACTORY_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'loading' , 'loading-component.ngfactory.js' ) ) ;
121+
122+ expect ( fakeConfig [ Constants . ENV_MODAL_CONTROLLER_CLASSNAME ] ) . toEqual ( 'ModalController' ) ;
123+ expect ( fakeConfig [ Constants . ENV_MODAL_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'modal' , 'modal-controller.js' ) ) ;
124+ expect ( fakeConfig [ Constants . ENV_MODAL_VIEW_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'modal' , 'modal.js' ) ) ;
125+ expect ( fakeConfig [ Constants . ENV_MODAL_COMPONENT_FACTORY_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'modal' , 'modal-component.ngfactory.js' ) ) ;
126+
127+ expect ( fakeConfig [ Constants . ENV_PICKER_CONTROLLER_CLASSNAME ] ) . toEqual ( 'PickerController' ) ;
128+ expect ( fakeConfig [ Constants . ENV_PICKER_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'picker' , 'picker-controller.js' ) ) ;
129+ expect ( fakeConfig [ Constants . ENV_PICKER_VIEW_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'picker' , 'picker.js' ) ) ;
130+ expect ( fakeConfig [ Constants . ENV_PICKER_COMPONENT_FACTORY_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'picker' , 'picker-component.ngfactory.js' ) ) ;
131+
132+ expect ( fakeConfig [ Constants . ENV_POPOVER_CONTROLLER_CLASSNAME ] ) . toEqual ( 'PopoverController' ) ;
133+ expect ( fakeConfig [ Constants . ENV_POPOVER_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'popover' , 'popover-controller.js' ) ) ;
134+ expect ( fakeConfig [ Constants . ENV_POPOVER_VIEW_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'popover' , 'popover.js' ) ) ;
135+ expect ( fakeConfig [ Constants . ENV_POPOVER_COMPONENT_FACTORY_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'popover' , 'popover-component.ngfactory.js' ) ) ;
136+
137+ expect ( fakeConfig [ Constants . ENV_TOAST_CONTROLLER_CLASSNAME ] ) . toEqual ( 'ToastController' ) ;
138+ expect ( fakeConfig [ Constants . ENV_TOAST_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'toast' , 'toast-controller.js' ) ) ;
139+ expect ( fakeConfig [ Constants . ENV_TOAST_VIEW_CONTROLLER_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'toast' , 'toast.js' ) ) ;
140+ expect ( fakeConfig [ Constants . ENV_TOAST_COMPONENT_FACTORY_PATH ] ) . toEqual ( join ( context . ionicAngularDir , 'components' , 'toast' , 'toast-component.ngfactory.js' ) ) ;
141+
142+ expect ( fakeConfig [ Constants . ENV_EXPERIMENTAL_PARSE_DEEPLINKS ] ) . toBeFalsy ( ) ;
143+ expect ( fakeConfig [ Constants . ENV_EXPERIMENTAL_MANUAL_TREESHAKING ] ) . toBeFalsy ( ) ;
144+ expect ( fakeConfig [ Constants . ENV_EXPERIMENTAL_PURGE_DECORATORS ] ) . toBeFalsy ( ) ;
145+ expect ( fakeConfig [ Constants . ENV_USE_EXPERIMENTAL_CLOSURE ] ) . toBeFalsy ( ) ;
146+ expect ( fakeConfig [ Constants . ENV_USE_EXPERIMENTAL_BABILI ] ) . toBeFalsy ( ) ;
147+ expect ( fakeConfig [ Constants . ENV_BUILD_TO_ES5 ] ) . toEqual ( 'true' ) ;
148+ expect ( context . bundler ) . toEqual ( 'webpack' ) ;
68149 } ) ;
69150
70- it ( 'should set default prod specific build flags to true when isProd is true ' , ( ) => {
151+ it ( 'should set defaults for a prod build ' , ( ) => {
71152 // arrange
72- // arrange
73153 const fakeConfig : any = { } ;
74154 config . setProcessEnv ( fakeConfig ) ;
75155
@@ -85,7 +165,34 @@ describe('config', () => {
85165 expect ( context . runMinifyCss ) . toEqual ( true ) ;
86166 expect ( context . optimizeJs ) . toEqual ( true ) ;
87167 expect ( fakeConfig [ Constants . ENV_VAR_IONIC_ENV ] ) . toEqual ( Constants . ENV_VAR_PROD ) ;
168+ expect ( fakeConfig [ Constants . ENV_VAR_GENERATE_SOURCE_MAP ] ) . toBeFalsy ( ) ;
88169 } ) ;
170+
171+ it ( 'should override console' , ( ) => {
172+ const originalDebug = console . debug ;
173+ const originalError = console . error ;
174+ const originalInfo = console . info ;
175+ const originalLog = console . log ;
176+ const originalTrace = console . trace ;
177+ const originalWarn = console . warn ;
178+
179+ const fakeConfig : any = { } ;
180+ config . setProcessEnv ( fakeConfig ) ;
181+
182+ spyOn ( helpers , helpers . getBooleanPropertyValue . name ) . and . returnValue ( true ) ;
183+
184+ config . generateContext ( {
185+ isProd : true
186+ } ) ;
187+
188+ expect ( console . debug ) . not . toEqual ( originalDebug ) ;
189+ expect ( console . error ) . not . toEqual ( originalError ) ;
190+ expect ( console . info ) . not . toEqual ( originalInfo ) ;
191+ expect ( console . log ) . not . toEqual ( originalLog ) ;
192+ expect ( console . trace ) . not . toEqual ( originalTrace ) ;
193+ expect ( console . warn ) . not . toEqual ( originalWarn ) ;
194+ } ) ;
195+
89196 } ) ;
90197
91198 describe ( 'config.replacePathVars' , ( ) => {
0 commit comments