1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var path_1 = require("path");
|
4 | var helpers = require("./helpers");
|
5 | var config = require("./config");
|
6 | var Constants = require("./constants");
|
7 | describe('config', function () {
|
8 | describe('config.generateContext', function () {
|
9 | it('should set isWatch true with isWatch true context', function () {
|
10 | var context = config.generateContext({
|
11 | isWatch: true
|
12 | });
|
13 | expect(context.isWatch).toEqual(true);
|
14 | });
|
15 | it('should set isWatch false by default', function () {
|
16 | var context = config.generateContext();
|
17 | expect(context.isWatch).toEqual(false);
|
18 | });
|
19 | it('should set isProd false with isProd false context', function () {
|
20 | var context = config.generateContext({
|
21 | isProd: false
|
22 | });
|
23 | expect(context.isProd).toEqual(false);
|
24 | });
|
25 | it('should set default bundler when invalid value', function () {
|
26 | var context = config.generateContext();
|
27 | expect(context.bundler).toEqual('webpack');
|
28 | });
|
29 | it('should set default bundler when not set', function () {
|
30 | var context = config.generateContext();
|
31 | expect(context.bundler).toEqual('webpack');
|
32 | });
|
33 | it('should set isProd by default', function () {
|
34 | var context = config.generateContext();
|
35 | expect(context.isProd).toEqual(false);
|
36 | });
|
37 | it('should create an object when passed nothing', function () {
|
38 | var context = config.generateContext();
|
39 | expect(context).toBeDefined();
|
40 | });
|
41 | it('should set the correct defaults for a dev build', function () {
|
42 |
|
43 | var fakeConfig = {};
|
44 | config.setProcessEnv(fakeConfig);
|
45 |
|
46 | var context = config.generateContext({
|
47 | isProd: false
|
48 | });
|
49 |
|
50 | expect(context.isProd).toEqual(false);
|
51 | expect(context.runAot).toEqual(false);
|
52 | expect(context.runMinifyJs).toEqual(false);
|
53 | expect(context.runMinifyCss).toEqual(false);
|
54 | expect(context.optimizeJs).toEqual(false);
|
55 | expect(fakeConfig[Constants.ENV_VAR_IONIC_ENV]).toEqual(Constants.ENV_VAR_DEV);
|
56 | expect(fakeConfig[Constants.ENV_VAR_IONIC_AOT]).toEqual('false');
|
57 | expect(fakeConfig[Constants.ENV_VAR_IONIC_MINIFY_JS]).toEqual('false');
|
58 | expect(fakeConfig[Constants.ENV_VAR_IONIC_MINIFY_CSS]).toEqual('false');
|
59 | expect(fakeConfig[Constants.ENV_VAR_IONIC_OPTIMIZE_JS]).toEqual('false');
|
60 | expect(context.rootDir).toEqual(process.cwd());
|
61 | expect(context.tmpDir).toEqual(path_1.join(process.cwd(), Constants.TMP_DIR));
|
62 | expect(context.srcDir).toEqual(path_1.join(process.cwd(), Constants.SRC_DIR));
|
63 | expect(fakeConfig[Constants.ENV_VAR_DEEPLINKS_DIR]).toEqual(context.srcDir);
|
64 | expect(context.wwwDir).toEqual(path_1.join(process.cwd(), Constants.WWW_DIR));
|
65 | expect(context.wwwIndex).toEqual('index.html');
|
66 | expect(context.buildDir).toEqual(path_1.join(process.cwd(), Constants.WWW_DIR, Constants.BUILD_DIR));
|
67 | expect(fakeConfig[Constants.ENV_VAR_FONTS_DIR]).toEqual(path_1.join(context.wwwDir, 'assets', 'fonts'));
|
68 | expect(context.pagesDir).toEqual(path_1.join(context.srcDir, 'pages'));
|
69 | expect(context.componentsDir).toEqual(path_1.join(context.srcDir, 'components'));
|
70 | expect(context.directivesDir).toEqual(path_1.join(context.srcDir, 'directives'));
|
71 | expect(context.pipesDir).toEqual(path_1.join(context.srcDir, 'pipes'));
|
72 | expect(context.providersDir).toEqual(path_1.join(context.srcDir, 'providers'));
|
73 | expect(context.nodeModulesDir).toEqual(path_1.join(process.cwd(), Constants.NODE_MODULES));
|
74 | expect(context.ionicAngularDir).toEqual(path_1.join(process.cwd(), Constants.NODE_MODULES, Constants.IONIC_ANGULAR));
|
75 | expect(fakeConfig[Constants.ENV_VAR_ANGULAR_CORE_DIR]).toEqual(path_1.join(process.cwd(), Constants.NODE_MODULES, Constants.AT_ANGULAR, 'core'));
|
76 | expect(fakeConfig[Constants.ENV_VAR_TYPESCRIPT_DIR]).toEqual(path_1.join(process.cwd(), Constants.NODE_MODULES, Constants.TYPESCRIPT));
|
77 | expect(context.coreCompilerFilePath).toEqual(path_1.join(context.ionicAngularDir, 'compiler'));
|
78 | expect(context.coreDir).toEqual(context.ionicAngularDir);
|
79 | expect(fakeConfig[Constants.ENV_VAR_RXJS_DIR]).toEqual(path_1.join(process.cwd(), Constants.NODE_MODULES, Constants.RXJS));
|
80 | expect(fakeConfig[Constants.ENV_VAR_IONIC_ANGULAR_TEMPLATE_DIR]).toEqual(path_1.join(context.ionicAngularDir, 'templates'));
|
81 | expect(context.platform).toEqual(null);
|
82 | expect(context.target).toEqual(null);
|
83 | expect(fakeConfig[Constants.ENV_VAR_IONIC_ANGULAR_ENTRY_POINT]).toEqual(path_1.join(context.ionicAngularDir, 'index.js'));
|
84 | expect(fakeConfig[Constants.ENV_VAR_APP_SCRIPTS_DIR]).toEqual(path_1.join(__dirname, '..', '..'));
|
85 | expect(fakeConfig[Constants.ENV_VAR_GENERATE_SOURCE_MAP]).toEqual('true');
|
86 | expect(fakeConfig[Constants.ENV_VAR_SOURCE_MAP_TYPE]).toEqual(Constants.SOURCE_MAP_TYPE_EXPENSIVE);
|
87 | expect(fakeConfig[Constants.ENV_TS_CONFIG]).toEqual(path_1.join(process.cwd(), 'tsconfig.json'));
|
88 | expect(fakeConfig[Constants.ENV_READ_CONFIG_JSON]).toEqual('true');
|
89 | expect(fakeConfig[Constants.ENV_APP_ENTRY_POINT]).toEqual(path_1.join(context.srcDir, 'app', 'main.ts'));
|
90 | expect(fakeConfig[Constants.ENV_APP_NG_MODULE_PATH]).toEqual(path_1.join(context.srcDir, 'app', 'app.module.ts'));
|
91 | expect(fakeConfig[Constants.ENV_APP_NG_MODULE_CLASS]).toEqual('AppModule');
|
92 | expect(fakeConfig[Constants.ENV_GLOB_UTIL]).toEqual(path_1.join(fakeConfig[Constants.ENV_VAR_APP_SCRIPTS_DIR], 'dist', 'util', 'glob-util.js'));
|
93 | expect(fakeConfig[Constants.ENV_CLEAN_BEFORE_COPY]).toBeFalsy();
|
94 | expect(fakeConfig[Constants.ENV_OUTPUT_JS_FILE_NAME]).toEqual('main.js');
|
95 | expect(fakeConfig[Constants.ENV_OUTPUT_CSS_FILE_NAME]).toEqual('main.css');
|
96 | expect(fakeConfig[Constants.ENV_WEBPACK_FACTORY]).toEqual(path_1.join(fakeConfig[Constants.ENV_VAR_APP_SCRIPTS_DIR], 'dist', 'webpack', 'ionic-webpack-factory.js'));
|
97 | expect(fakeConfig[Constants.ENV_WEBPACK_LOADER]).toEqual(path_1.join(fakeConfig[Constants.ENV_VAR_APP_SCRIPTS_DIR], 'dist', 'webpack', 'loader.js'));
|
98 | expect(fakeConfig[Constants.ENV_AOT_WRITE_TO_DISK]).toBeFalsy();
|
99 | expect(fakeConfig[Constants.ENV_PRINT_WEBPACK_DEPENDENCY_TREE]).toBeFalsy();
|
100 | expect(fakeConfig[Constants.ENV_TYPE_CHECK_ON_LINT]).toBeFalsy();
|
101 | expect(fakeConfig[Constants.ENV_BAIL_ON_LINT_ERROR]).toBeFalsy();
|
102 | expect(fakeConfig[Constants.ENV_ENABLE_LINT]).toEqual('true');
|
103 | expect(fakeConfig[Constants.ENV_DISABLE_LOGGING]).toBeFalsy();
|
104 | expect(fakeConfig[Constants.ENV_START_WATCH_TIMEOUT]).toEqual('3000');
|
105 | expect(fakeConfig[Constants.ENV_NG_MODULE_FILE_NAME_SUFFIX]).toEqual('.module.ts');
|
106 | expect(fakeConfig[Constants.ENV_POLYFILL_FILE_NAME]).toEqual('polyfills.js');
|
107 | expect(fakeConfig[Constants.ENV_ACTION_SHEET_CONTROLLER_CLASSNAME]).toEqual('ActionSheetController');
|
108 | expect(fakeConfig[Constants.ENV_ACTION_SHEET_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'action-sheet', 'action-sheet-controller.js'));
|
109 | expect(fakeConfig[Constants.ENV_ACTION_SHEET_VIEW_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'action-sheet', 'action-sheet.js'));
|
110 | expect(fakeConfig[Constants.ENV_ACTION_SHEET_COMPONENT_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'action-sheet', 'action-sheet-component.js'));
|
111 | expect(fakeConfig[Constants.ENV_ACTION_SHEET_COMPONENT_FACTORY_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'action-sheet', 'action-sheet-component.ngfactory.js'));
|
112 | expect(fakeConfig[Constants.ENV_ALERT_CONTROLLER_CLASSNAME]).toEqual('AlertController');
|
113 | expect(fakeConfig[Constants.ENV_ALERT_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'alert', 'alert-controller.js'));
|
114 | expect(fakeConfig[Constants.ENV_ALERT_VIEW_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'alert', 'alert.js'));
|
115 | expect(fakeConfig[Constants.ENV_ALERT_COMPONENT_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'alert', 'alert-component.js'));
|
116 | expect(fakeConfig[Constants.ENV_ALERT_COMPONENT_FACTORY_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'alert', 'alert-component.ngfactory.js'));
|
117 | expect(fakeConfig[Constants.ENV_APP_ROOT_COMPONENT_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'app', 'app-root.js'));
|
118 | expect(fakeConfig[Constants.ENV_LOADING_CONTROLLER_CLASSNAME]).toEqual('LoadingController');
|
119 | expect(fakeConfig[Constants.ENV_LOADING_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'loading', 'loading-controller.js'));
|
120 | expect(fakeConfig[Constants.ENV_LOADING_VIEW_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'loading', 'loading.js'));
|
121 | expect(fakeConfig[Constants.ENV_LOADING_COMPONENT_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'loading', 'loading-component.js'));
|
122 | expect(fakeConfig[Constants.ENV_LOADING_COMPONENT_FACTORY_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'loading', 'loading-component.ngfactory.js'));
|
123 | expect(fakeConfig[Constants.ENV_MODAL_CONTROLLER_CLASSNAME]).toEqual('ModalController');
|
124 | expect(fakeConfig[Constants.ENV_MODAL_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'modal', 'modal-controller.js'));
|
125 | expect(fakeConfig[Constants.ENV_MODAL_VIEW_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'modal', 'modal.js'));
|
126 | expect(fakeConfig[Constants.ENV_MODAL_COMPONENT_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'modal', 'modal-component.js'));
|
127 | expect(fakeConfig[Constants.ENV_MODAL_COMPONENT_FACTORY_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'modal', 'modal-component.ngfactory.js'));
|
128 | expect(fakeConfig[Constants.ENV_PICKER_CONTROLLER_CLASSNAME]).toEqual('PickerController');
|
129 | expect(fakeConfig[Constants.ENV_PICKER_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'picker', 'picker-controller.js'));
|
130 | expect(fakeConfig[Constants.ENV_PICKER_VIEW_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'picker', 'picker.js'));
|
131 | expect(fakeConfig[Constants.ENV_PICKER_COMPONENT_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'picker', 'picker-component.js'));
|
132 | expect(fakeConfig[Constants.ENV_PICKER_COMPONENT_FACTORY_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'picker', 'picker-component.ngfactory.js'));
|
133 | expect(fakeConfig[Constants.ENV_POPOVER_CONTROLLER_CLASSNAME]).toEqual('PopoverController');
|
134 | expect(fakeConfig[Constants.ENV_POPOVER_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'popover', 'popover-controller.js'));
|
135 | expect(fakeConfig[Constants.ENV_POPOVER_VIEW_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'popover', 'popover.js'));
|
136 | expect(fakeConfig[Constants.ENV_POPOVER_COMPONENT_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'popover', 'popover-component.js'));
|
137 | expect(fakeConfig[Constants.ENV_POPOVER_COMPONENT_FACTORY_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'popover', 'popover-component.ngfactory.js'));
|
138 | expect(fakeConfig[Constants.ENV_TOAST_CONTROLLER_CLASSNAME]).toEqual('ToastController');
|
139 | expect(fakeConfig[Constants.ENV_TOAST_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'toast', 'toast-controller.js'));
|
140 | expect(fakeConfig[Constants.ENV_TOAST_VIEW_CONTROLLER_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'toast', 'toast.js'));
|
141 | expect(fakeConfig[Constants.ENV_TOAST_COMPONENT_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'toast', 'toast-component.js'));
|
142 | expect(fakeConfig[Constants.ENV_TOAST_COMPONENT_FACTORY_PATH]).toEqual(path_1.join(context.ionicAngularDir, 'components', 'toast', 'toast-component.ngfactory.js'));
|
143 | expect(fakeConfig[Constants.ENV_PARSE_DEEPLINKS]).toBeTruthy();
|
144 | expect(fakeConfig[Constants.ENV_SKIP_IONIC_ANGULAR_VERSION]).toEqual('false');
|
145 | expect(context.bundler).toEqual('webpack');
|
146 | });
|
147 | it('should set defaults for a prod build', function () {
|
148 |
|
149 | var fakeConfig = {};
|
150 | config.setProcessEnv(fakeConfig);
|
151 |
|
152 | var context = config.generateContext({
|
153 | isProd: true
|
154 | });
|
155 |
|
156 | expect(context.isProd).toEqual(true);
|
157 | expect(context.runAot).toEqual(true);
|
158 | expect(context.runMinifyJs).toEqual(true);
|
159 | expect(context.runMinifyCss).toEqual(true);
|
160 | expect(context.optimizeJs).toEqual(true);
|
161 | expect(fakeConfig[Constants.ENV_VAR_IONIC_AOT]).toEqual('true');
|
162 | expect(fakeConfig[Constants.ENV_VAR_IONIC_MINIFY_JS]).toEqual('true');
|
163 | expect(fakeConfig[Constants.ENV_VAR_IONIC_MINIFY_CSS]).toEqual('true');
|
164 | expect(fakeConfig[Constants.ENV_VAR_IONIC_OPTIMIZE_JS]).toEqual('true');
|
165 | expect(fakeConfig[Constants.ENV_VAR_IONIC_ENV]).toEqual(Constants.ENV_VAR_PROD);
|
166 | expect(fakeConfig[Constants.ENV_VAR_GENERATE_SOURCE_MAP]).toBeFalsy();
|
167 | });
|
168 | it('should override console', function () {
|
169 | var originalDebug = console.debug;
|
170 | var originalError = console.error;
|
171 | var originalInfo = console.info;
|
172 | var originalLog = console.log;
|
173 | var originalTrace = console.trace;
|
174 | var originalWarn = console.warn;
|
175 | var fakeConfig = {};
|
176 | config.setProcessEnv(fakeConfig);
|
177 | spyOn(helpers, helpers.getBooleanPropertyValue.name).and.returnValue(true);
|
178 | config.generateContext({
|
179 | isProd: true
|
180 | });
|
181 | expect(console.debug).not.toEqual(originalDebug);
|
182 | expect(console.error).not.toEqual(originalError);
|
183 | expect(console.info).not.toEqual(originalInfo);
|
184 | expect(console.log).not.toEqual(originalLog);
|
185 | expect(console.trace).not.toEqual(originalTrace);
|
186 | expect(console.warn).not.toEqual(originalWarn);
|
187 | });
|
188 | });
|
189 | describe('config.replacePathVars', function () {
|
190 | it('should interpolated value when string', function () {
|
191 | var context = {
|
192 | srcDir: 'src',
|
193 | };
|
194 | var rtn = config.replacePathVars(context, '{{SRC}}');
|
195 | expect(rtn).toEqual('src');
|
196 | });
|
197 | it('should interpolated values in string array', function () {
|
198 | var context = {
|
199 | wwwDir: 'www',
|
200 | srcDir: 'src',
|
201 | };
|
202 | var filePaths = ['{{SRC}}', '{{WWW}}'];
|
203 | var rtn = config.replacePathVars(context, filePaths);
|
204 | expect(rtn).toEqual(['src', 'www']);
|
205 | });
|
206 | it('should interpolated values in key value pair', function () {
|
207 | var context = {
|
208 | wwwDir: 'www',
|
209 | srcDir: 'src',
|
210 | };
|
211 | var filePaths = {
|
212 | src: '{{SRC}}',
|
213 | www: '{{WWW}}'
|
214 | };
|
215 | var rtn = config.replacePathVars(context, filePaths);
|
216 | expect(rtn).toEqual({
|
217 | src: 'src',
|
218 | www: 'www'
|
219 | });
|
220 | });
|
221 | });
|
222 | describe('config.getConfigValue', function () {
|
223 | it('should get arg full value', function () {
|
224 | config.addArgv('--full');
|
225 | config.addArgv('fullArgValue');
|
226 | config.addArgv('-s');
|
227 | config.addArgv('shortArgValue');
|
228 | config.setProcessEnvVar('ENV_VAR', 'myProcessEnvVar');
|
229 | config.setAppPackageJsonData({ config: { config_prop: 'myPackageConfigVal' } });
|
230 | var val = config.getConfigValue(context, '--full', '-s', 'ENV_VAR', 'config_prop', 'defaultValue');
|
231 | expect(val).toEqual('fullArgValue');
|
232 | });
|
233 | it('should get arg short value', function () {
|
234 | config.addArgv('-s');
|
235 | config.addArgv('shortArgValue');
|
236 | config.setProcessEnvVar('ENV_VAR', 'myProcessEnvVar');
|
237 | config.setAppPackageJsonData({ config: { config_prop: 'myPackageConfigVal' } });
|
238 | var val = config.getConfigValue(context, '--full', '-s', 'ENV_VAR', 'config_prop', 'defaultValue');
|
239 | expect(val).toEqual('shortArgValue');
|
240 | });
|
241 | it('should get envVar value', function () {
|
242 | config.setProcessEnvVar('ENV_VAR', 'myProcessEnvVar');
|
243 | config.setAppPackageJsonData({ config: { config_prop: 'myPackageConfigVal' } });
|
244 | var val = config.getConfigValue(context, '--full', '-s', 'ENV_VAR', 'config_prop', 'defaultValue');
|
245 | expect(val).toEqual('myProcessEnvVar');
|
246 | });
|
247 | it('should get package.json config value', function () {
|
248 | config.setAppPackageJsonData({ config: { config_prop: 'myPackageConfigVal' } });
|
249 | var val = config.getConfigValue(context, '--full', '-s', 'ENV_VAR', 'config_prop', 'defaultValue');
|
250 | expect(val).toEqual('myPackageConfigVal');
|
251 | });
|
252 | it('should get default value', function () {
|
253 | var val = config.getConfigValue(context, '--full', '-s', 'ENV_VAR', 'config_prop', 'defaultValue');
|
254 | expect(val).toEqual('defaultValue');
|
255 | });
|
256 | });
|
257 | describe('config.bundlerStrategy', function () {
|
258 | it('should get webpack with invalid env var', function () {
|
259 | config.setProcessEnv({
|
260 | ionic_bundler: 'bobsBundler'
|
261 | });
|
262 | var bundler = config.bundlerStrategy(context);
|
263 | expect(bundler).toEqual('webpack');
|
264 | });
|
265 | it('should get webpack by default', function () {
|
266 | var bundler = config.bundlerStrategy(context);
|
267 | expect(bundler).toEqual('webpack');
|
268 | });
|
269 | });
|
270 | describe('config.getUserConfigFile', function () {
|
271 | it('should get config from package.json config', function () {
|
272 | config.setAppPackageJsonData({
|
273 | config: { ionic_config: 'myconfig.js' }
|
274 | });
|
275 | var userConfigFile = null;
|
276 | var context = { rootDir: process.cwd() };
|
277 | var taskInfo = { fullArg: '--full', shortArg: '-s', defaultConfigFile: 'default.config.js', envVar: 'IONIC_CONFIG', packageConfig: 'ionic_config' };
|
278 | var rtn = config.getUserConfigFile(context, taskInfo, userConfigFile);
|
279 | expect(rtn).toEqual(path_1.resolve('myconfig.js'));
|
280 | });
|
281 | it('should get config from env var', function () {
|
282 | config.setProcessEnv({
|
283 | IONIC_CONFIG: 'myconfig.js'
|
284 | });
|
285 | var userConfigFile = null;
|
286 | var context = { rootDir: process.cwd() };
|
287 | var taskInfo = { fullArg: '--full', shortArg: '-s', defaultConfigFile: 'default.config.js', envVar: 'IONIC_CONFIG', packageConfig: 'ionic_config' };
|
288 | var rtn = config.getUserConfigFile(context, taskInfo, userConfigFile);
|
289 | expect(rtn).toEqual(path_1.resolve('myconfig.js'));
|
290 | });
|
291 | it('should get config from short arg', function () {
|
292 | config.addArgv('-s');
|
293 | config.addArgv('myconfig.js');
|
294 | var userConfigFile = null;
|
295 | var context = { rootDir: process.cwd() };
|
296 | var taskInfo = { fullArg: '--full', shortArg: '-s', defaultConfigFile: 'default.config.js', envVar: 'IONIC_CONFIG', packageConfig: 'ionic_config' };
|
297 | var rtn = config.getUserConfigFile(context, taskInfo, userConfigFile);
|
298 | expect(rtn).toEqual(path_1.resolve('myconfig.js'));
|
299 | });
|
300 | it('should get config from full arg', function () {
|
301 | config.addArgv('--full');
|
302 | config.addArgv('myconfig.js');
|
303 | var userConfigFile = null;
|
304 | var context = { rootDir: process.cwd() };
|
305 | var taskInfo = { fullArg: '--full', shortArg: '-s', defaultConfigFile: 'default.config.js', envVar: 'IONIC_CONFIG', packageConfig: 'ionic_config' };
|
306 | var rtn = config.getUserConfigFile(context, taskInfo, userConfigFile);
|
307 | expect(rtn).toEqual(path_1.resolve('myconfig.js'));
|
308 | });
|
309 | it('should get userConfigFile', function () {
|
310 | var userConfigFile = 'myconfig.js';
|
311 | var context = { rootDir: process.cwd() };
|
312 | var taskInfo = { fullArg: '--full', shortArg: '-s', defaultConfigFile: 'default.config.js', envVar: 'IONIC_CONFIG', packageConfig: 'ionic_config' };
|
313 | var rtn = config.getUserConfigFile(context, taskInfo, userConfigFile);
|
314 | expect(rtn).toEqual(path_1.resolve('myconfig.js'));
|
315 | });
|
316 | it('should not get a user config', function () {
|
317 | var userConfigFile = null;
|
318 | var context = { rootDir: process.cwd() };
|
319 | var taskInfo = { fullArg: '--full', shortArg: '-s', defaultConfigFile: 'default.config.js', envVar: 'IONIC_CONFIG', packageConfig: 'ionic_config' };
|
320 | var rtn = config.getUserConfigFile(context, taskInfo, userConfigFile);
|
321 | expect(rtn).toEqual(null);
|
322 | });
|
323 | });
|
324 | describe('config.hasArg function', function () {
|
325 | it('should return false when a match is not found', function () {
|
326 | var result = config.hasArg('--full', '-f');
|
327 | expect(result).toBeFalsy();
|
328 | });
|
329 | it('should match on a fullname arg', function () {
|
330 | config.addArgv('--full');
|
331 | var result = config.hasArg('--full');
|
332 | expect(result).toBeTruthy();
|
333 | });
|
334 | it('should match on a shortname arg', function () {
|
335 | config.addArgv('-f');
|
336 | var result = config.hasArg('--full', '-f');
|
337 | expect(result).toBeTruthy();
|
338 | });
|
339 | it('should compare fullnames as case insensitive', function () {
|
340 | config.addArgv('--full');
|
341 | config.addArgv('--TEST');
|
342 | var result = config.hasArg('--Full');
|
343 | var result2 = config.hasArg('--test');
|
344 | expect(result).toBeTruthy();
|
345 | expect(result2).toBeTruthy();
|
346 | });
|
347 | it('should compare shortnames as case insensitive', function () {
|
348 | config.addArgv('-f');
|
349 | config.addArgv('-T');
|
350 | var result = config.hasArg('-F');
|
351 | var result2 = config.hasArg('-t');
|
352 | expect(result).toBeTruthy();
|
353 | expect(result2).toBeTruthy();
|
354 | });
|
355 | });
|
356 | var context;
|
357 | beforeEach(function () {
|
358 | config.setProcessArgs(['node', 'ionic-app-scripts']);
|
359 | config.setProcessEnv({});
|
360 | config.setCwd('');
|
361 | config.setAppPackageJsonData(null);
|
362 | context = config.generateContext({});
|
363 | });
|
364 | });
|