1
+ import { join , resolve } from 'path' ;
2
+
3
+ import * as helpers from './helpers' ;
1
4
import { BuildContext } from './interfaces' ;
2
5
import * as config from './config' ;
3
-
4
6
import * as Constants from './constants' ;
5
- import { resolve } from 'path' ;
6
7
7
8
8
9
describe ( 'config' , ( ) => {
9
10
10
- describe ( 'config.config. generateContext' , ( ) => {
11
+ describe ( 'config.generateContext' , ( ) => {
11
12
12
13
it ( 'should set isWatch true with isWatch true context' , ( ) => {
13
14
const context = config . generateContext ( {
@@ -48,7 +49,7 @@ describe('config', () => {
48
49
expect ( context ) . toBeDefined ( ) ;
49
50
} ) ;
50
51
51
- it ( 'should set default prod specific build flag defaults to false ' , ( ) => {
52
+ it ( 'should set the correct defaults for a dev build ' , ( ) => {
52
53
// arrange
53
54
const fakeConfig : any = { } ;
54
55
config . setProcessEnv ( fakeConfig ) ;
@@ -65,11 +66,90 @@ describe('config', () => {
65
66
expect ( context . runMinifyCss ) . toEqual ( false ) ;
66
67
expect ( context . optimizeJs ) . toEqual ( false ) ;
67
68
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' ) ;
68
149
} ) ;
69
150
70
- it ( 'should set default prod specific build flags to true when isProd is true ' , ( ) => {
151
+ it ( 'should set defaults for a prod build ' , ( ) => {
71
152
// arrange
72
- // arrange
73
153
const fakeConfig : any = { } ;
74
154
config . setProcessEnv ( fakeConfig ) ;
75
155
@@ -85,7 +165,34 @@ describe('config', () => {
85
165
expect ( context . runMinifyCss ) . toEqual ( true ) ;
86
166
expect ( context . optimizeJs ) . toEqual ( true ) ;
87
167
expect ( fakeConfig [ Constants . ENV_VAR_IONIC_ENV ] ) . toEqual ( Constants . ENV_VAR_PROD ) ;
168
+ expect ( fakeConfig [ Constants . ENV_VAR_GENERATE_SOURCE_MAP ] ) . toBeFalsy ( ) ;
88
169
} ) ;
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
+
89
196
} ) ;
90
197
91
198
describe ( 'config.replacePathVars' , ( ) => {
0 commit comments