devextreme-schematics 1.2.23 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +7 -7
  3. package/src/add-app-template/index.d.ts +2 -2
  4. package/src/add-app-template/index.js +26 -26
  5. package/src/add-app-template/index_spec.d.ts +1 -1
  6. package/src/add-app-template/index_spec.js +70 -69
  7. package/src/add-app-template/index_spec.js.map +1 -1
  8. package/src/add-app-template/schema.json +2 -2
  9. package/src/add-layout/files/devextreme.json +1 -1
  10. package/src/add-layout/files/src/app/shared/services/screen.service.ts +1 -1
  11. package/src/add-layout/files/src/dx-styles.scss +4 -0
  12. package/src/add-layout/index.d.ts +2 -2
  13. package/src/add-layout/index.js +277 -266
  14. package/src/add-layout/index.js.map +1 -1
  15. package/src/add-layout/index.ts +28 -30
  16. package/src/add-layout/index_spec.d.ts +1 -1
  17. package/src/add-layout/index_spec.js +251 -250
  18. package/src/add-layout/index_spec.js.map +1 -1
  19. package/src/add-layout/index_spec.ts +2 -2
  20. package/src/add-layout/schema.json +2 -2
  21. package/src/add-sample-views/index.d.ts +2 -2
  22. package/src/add-sample-views/index.js +97 -88
  23. package/src/add-sample-views/index.js.map +1 -1
  24. package/src/add-sample-views/index.ts +3 -3
  25. package/src/add-sample-views/index_spec.d.ts +1 -1
  26. package/src/add-sample-views/index_spec.js +53 -52
  27. package/src/add-sample-views/index_spec.js.map +1 -1
  28. package/src/add-sample-views/index_spec.ts +1 -1
  29. package/src/add-sample-views/schema.json +1 -1
  30. package/src/add-view/index.d.ts +3 -3
  31. package/src/add-view/index.js +125 -113
  32. package/src/add-view/index.js.map +1 -1
  33. package/src/add-view/index.ts +14 -13
  34. package/src/add-view/index_spec.d.ts +1 -1
  35. package/src/add-view/index_spec.js +109 -108
  36. package/src/add-view/index_spec.js.map +1 -1
  37. package/src/add-view/schema.json +1 -1
  38. package/src/install/index.d.ts +2 -2
  39. package/src/install/index.js +76 -63
  40. package/src/install/index.js.map +1 -1
  41. package/src/install/index.ts +4 -2
  42. package/src/install/index_spec.d.ts +1 -1
  43. package/src/install/index_spec.js +96 -95
  44. package/src/install/index_spec.js.map +1 -1
  45. package/src/install/index_spec.ts +1 -1
  46. package/src/install/schema.json +1 -1
  47. package/src/utility/array.d.ts +1 -1
  48. package/src/utility/array.js +7 -6
  49. package/src/utility/array.js.map +1 -1
  50. package/src/utility/change.d.ts +7 -7
  51. package/src/utility/change.js +49 -48
  52. package/src/utility/change.js.map +1 -1
  53. package/src/utility/latest-versions.d.ts +5 -5
  54. package/src/utility/latest-versions.js +9 -8
  55. package/src/utility/latest-versions.js.map +1 -1
  56. package/src/utility/modify-json-file.d.ts +3 -2
  57. package/src/utility/modify-json-file.js +15 -11
  58. package/src/utility/modify-json-file.js.map +1 -1
  59. package/src/utility/modify-json-file.ts +6 -3
  60. package/src/utility/project.d.ts +5 -5
  61. package/src/utility/project.js +48 -25
  62. package/src/utility/project.js.map +1 -1
  63. package/src/utility/project.ts +19 -14
  64. package/src/utility/routing.d.ts +4 -4
  65. package/src/utility/routing.js +32 -31
  66. package/src/utility/routing.js.map +1 -1
  67. package/src/utility/source.d.ts +3 -3
  68. package/src/utility/source.js +13 -12
  69. package/src/utility/source.js.map +1 -1
  70. package/src/utility/string.d.ts +1 -1
  71. package/src/utility/string.js +8 -7
  72. package/src/utility/string.js.map +1 -1
  73. package/src/utility/styles.d.ts +1 -2
  74. package/src/utility/styles.js +29 -30
  75. package/src/utility/styles.js.map +1 -1
  76. package/src/utility/styles.ts +2 -5
@@ -1,255 +1,256 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- const testing_1 = require("@angular-devkit/schematics/testing");
12
- const dependencies_1 = require("@schematics/angular/utility/dependencies");
13
- const path = require("path");
14
- const modify_json_file_1 = require("../utility/modify-json-file");
15
- const collectionPath = path.join(__dirname, '../collection.json');
16
- describe('layout', () => {
17
- const appOptions = {
18
- name: 'testApp',
19
- projectRoot: '',
20
- inlineStyle: false,
21
- inlineTemplate: false,
22
- routing: false,
23
- style: 'scss',
24
- skipTests: false,
25
- skipPackageJson: false
26
- };
27
- const workspaceOptions = {
28
- name: 'workspace',
29
- version: '6.0.0'
30
- };
31
- const options = {
32
- layout: 'side-nav-outer-toolbar',
33
- resolveConflicts: 'override',
34
- globalNgCliVersion: '^8.0.0'
35
- };
36
- const angularSchematicsCollection = require.resolve('../../node_modules/@schematics/angular/collection.json');
37
- const schematicRunner = new testing_1.SchematicTestRunner('@schematics/angular', angularSchematicsCollection);
38
- let appTree;
39
- beforeEach(() => __awaiter(this, void 0, void 0, function* () {
40
- appTree = yield schematicRunner.runSchematicAsync('workspace', workspaceOptions).toPromise();
41
- appTree = yield schematicRunner.runSchematicAsync('application', appOptions, appTree).toPromise();
42
- }));
43
- it('should add layout with override', () => __awaiter(this, void 0, void 0, function* () {
44
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
45
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
46
- expect(tree.files)
47
- .toContain('/devextreme.json');
48
- expect(tree.files)
49
- .toContain('/src/app/app-navigation.ts');
50
- expect(tree.files)
51
- .toContain('/src/app/shared/components/header/header.component.ts');
52
- expect(tree.files)
53
- .toContain('/src/app/shared/components/login-form/login-form.component.ts');
54
- expect(tree.files)
55
- .toContain('/src/app/shared/components/side-navigation-menu/side-navigation-menu.component.ts');
56
- expect(tree.files)
57
- .toContain('/src/app/shared/services/app-info.service.ts');
58
- expect(tree.files)
59
- .toContain('/src/app/shared/services/auth.service.ts');
60
- expect(tree.files)
61
- .toContain('/src/app/shared/services/screen.service.ts');
62
- expect(tree.files)
63
- .toContain('/src/app/layouts/side-nav-outer-toolbar/side-nav-outer-toolbar.component.ts');
64
- expect(tree.files)
65
- .toContain('/src/app/layouts/side-nav-inner-toolbar/side-nav-inner-toolbar.component.ts');
66
- expect(tree.files)
67
- .toContain('/src/app/layouts/single-card/single-card.component.ts');
68
- expect(tree.files)
69
- .toContain('/src/themes/metadata.base.json');
70
- expect(tree.files)
71
- .toContain('/src/themes/metadata.additional.json');
72
- const devextremeConfigContent = tree.readContent('/devextreme.json');
73
- expect(devextremeConfigContent).toContain('"applicationEngine": "angular"');
74
- expect(devextremeConfigContent).toContain('"inputFile": "src/themes/metadata.additional.json"');
75
- expect(devextremeConfigContent).toMatch(/\n\s{2}\S/g);
76
- const componentContent = tree.readContent('/src/app/app.component.html');
77
- expect(componentContent).toContain('app-side-nav-outer-toolbar title="{{appInfo.title}}"');
78
- const stylesContent = tree.readContent('/src/dx-styles.scss');
79
- expect(stylesContent).toMatch(/html, body {/);
80
- const indexContent = tree.readContent('/src/index.html');
81
- expect(indexContent).toMatch(/<body class="dx-viewport">/);
82
- const angularContent = JSON.parse(tree.readContent('/angular.json'));
83
- const styles = angularContent.projects.testApp.architect.build.options.styles;
84
- expect(styles[0]).toBe('node_modules/devextreme/dist/css/dx.common.css');
85
- expect(styles[1]).toBe('src/themes/generated/theme.base.css');
86
- expect(styles[2]).toBe('src/themes/generated/theme.additional.css');
87
- const moduleContent = tree.readContent('/src/app/app.module.ts');
88
- expect(moduleContent)
89
- .toContain('import { SideNavOuterToolbarModule, SideNavInnerToolbarModule, SingleCardModule }');
90
- expect(moduleContent)
91
- .toContain(`import { AuthService, ScreenService, AppInfoService } from './shared/services';`);
92
- expect(moduleContent).toContain('import { AppRoutingModule }');
93
- expect(moduleContent)
94
- .toContain('import { FooterModule, ' +
95
- 'ResetPasswordFormModule, ' +
96
- 'CreateAccountFormModule, ' +
97
- 'ChangePasswordFormModule, ' +
98
- 'LoginFormModule }');
99
- const testContent = tree.readContent('/e2e/src/app.e2e-spec.ts');
100
- expect(testContent).toMatch(/'Welcome to TestApp!'/);
101
- const testUtilsContent = tree.readContent('/e2e/src/app.po.ts');
102
- expect(testUtilsContent).toMatch(/'app-root .dx-drawer-content .dx-card p:nth-child\(2\)'/);
103
- const appContent = tree.readContent('/src/app/app.component.ts');
104
- expect(appContent).toContain('templateUrl: \'./app.component.html\',');
105
- expect(appContent).toContain('styleUrls: [\'./app.component.scss\']');
106
- expect(appContent).toContain('selector: \'app-root\',');
107
- expect(appContent).toContain(`import { AuthService, ScreenService, AppInfoService } from './shared/services';`);
108
- const navigationMenu = tree.readContent('/src/app/shared/components/side-navigation-menu/side-navigation-menu.component.ts');
109
- expect(navigationMenu).toContain('@ViewChild(DxTreeViewComponent, { static: true })');
110
- }));
111
- it('should add npm scripts', () => __awaiter(this, void 0, void 0, function* () {
112
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
113
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
114
- const packageConfig = JSON.parse(tree.readContent('package.json'));
115
- expect(packageConfig.scripts['build-themes']).toBe('devextreme build');
116
- expect(packageConfig.scripts['postinstall']).toBe('npm run build-themes');
117
- }));
118
- it('should set static flag', () => __awaiter(this, void 0, void 0, function* () {
119
- dependencies_1.removePackageJsonDependency(appTree, '@angular/core');
120
- dependencies_1.addPackageJsonDependency(appTree, {
121
- type: dependencies_1.NodeDependencyType.Default,
122
- name: '@angular/core',
123
- version: '7.0.0'
124
- });
125
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
126
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
127
- const navigationMenu = tree.readContent('/src/app/shared/components/side-navigation-menu/side-navigation-menu.component.ts');
128
- expect(navigationMenu).toContain('@ViewChild(DxTreeViewComponent, { static: true })');
129
- }));
130
- it('should add npm scripts safely', () => __awaiter(this, void 0, void 0, function* () {
131
- modify_json_file_1.modifyJSONFile(appTree, './package.json', config => {
132
- const scripts = config['scripts'];
133
- scripts['build-themes'] = 'prev value 1';
134
- scripts['postinstall'] = 'prev value 2';
135
- return config;
136
- });
137
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
138
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
139
- const packageConfig = JSON.parse(tree.readContent('package.json'));
140
- expect(packageConfig.scripts['origin-build-themes']).toBe('prev value 1');
141
- expect(packageConfig.scripts['origin-postinstall']).toBe('prev value 2');
142
- expect(packageConfig.scripts['build-themes']).toBe('npm run origin-build-themes && devextreme build');
143
- expect(packageConfig.scripts['postinstall']).toBe('npm run origin-postinstall && npm run build-themes');
144
- }));
145
- it('should add angular/cdk dependency', () => __awaiter(this, void 0, void 0, function* () {
146
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
147
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
148
- const packageConfig = JSON.parse(tree.readContent('package.json'));
149
- expect(packageConfig.dependencies['@angular/cdk']).toBeDefined();
150
- }));
151
- it('should choose angular/cdk version such as angular/cli', () => __awaiter(this, void 0, void 0, function* () {
152
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
153
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
154
- const packageConfig = JSON.parse(tree.readContent('package.json'));
155
- expect(packageConfig.dependencies['@angular/cdk']).toBe('^8.0.0');
156
- }));
157
- it('should update budgets if updateBudgets option is true', () => __awaiter(this, void 0, void 0, function* () {
158
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
159
- const tree = yield runner.runSchematicAsync('add-layout', Object.assign({}, options, { updateBudgets: true }), appTree).toPromise();
160
- const angularContent = JSON.parse(tree.readContent('/angular.json'));
161
- const budgets = angularContent.projects.testApp.architect.build.configurations.production.budgets;
162
- expect(budgets.length).toBe(2);
163
- expect(budgets[0]).toEqual({
164
- type: 'initial',
165
- maximumWarning: '4mb',
166
- maximumError: '7mb'
167
- });
168
- }));
169
- it('should not update budgets if updateBudgets option is not defined or false', () => __awaiter(this, void 0, void 0, function* () {
170
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
171
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
172
- const angularContent = JSON.parse(tree.readContent('/angular.json'));
173
- const budgets = angularContent.projects.testApp.architect.build.configurations.production.budgets;
174
- const defaultBudget = {
175
- type: 'initial',
176
- maximumWarning: '2mb',
177
- maximumError: '5mb'
178
- };
179
- expect(budgets.length).toBe(2);
180
- expect(budgets[0]).toEqual(defaultBudget);
181
- }));
182
- it('should add layout without override', () => __awaiter(this, void 0, void 0, function* () {
183
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
184
- options.resolveConflicts = 'createNew';
185
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
186
- expect(tree.files).toContain('/src/app/app1.component.ts');
187
- const componentContent = tree.readContent('/src/app/app1.component.html');
188
- expect(componentContent).toContain('app-side-nav-outer-toolbar title="{{appInfo.title}}"');
189
- const appContent = tree.readContent('/src/app/app.component.ts');
190
- expect(appContent).toMatch(/templateUrl: '.\/app.component.html',/);
191
- expect(appContent).toMatch(/styleUrls: \['.\/app.component.scss'\]/);
192
- const newAppContent = tree.readContent('/src/app/app1.component.ts');
193
- expect(newAppContent).toMatch(/templateUrl: '.\/app1.component.html',/);
194
- expect(newAppContent).toMatch(/styleUrls: \['.\/app1.component.scss'\]/);
195
- expect(newAppContent).toContain(`import { AuthService, ScreenService, AppInfoService } from './shared/services';`);
196
- const appInfo = tree.readContent('/src/app/shared/services/app-info.service.ts');
197
- expect(appInfo).toContain(`return 'TestApp';`);
198
- }));
199
- it('should add routing to layout', () => __awaiter(this, void 0, void 0, function* () {
200
- let newAppTree = yield schematicRunner.runSchematicAsync('workspace', workspaceOptions).toPromise();
201
- appOptions.routing = false;
202
- newAppTree = yield schematicRunner.runSchematicAsync('application', appOptions, newAppTree).toPromise();
203
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
204
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
205
- expect(tree.files).toContain('/src/app/app-routing.module.ts');
206
- const moduleContent = tree.readContent('/src/app/app-routing.module.ts');
207
- expect(moduleContent)
208
- .toMatch(/imports:\s\[RouterModule\.forRoot\(routes, { useHash: true }\)\],/);
209
- expect(moduleContent)
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const testing_1 = require("@angular-devkit/schematics/testing");
13
+ const dependencies_1 = require("@schematics/angular/utility/dependencies");
14
+ const path = require("path");
15
+ const modify_json_file_1 = require("../utility/modify-json-file");
16
+ const collectionPath = path.join(__dirname, '../collection.json');
17
+ describe('layout', () => {
18
+ const appOptions = {
19
+ name: 'testApp',
20
+ projectRoot: '',
21
+ inlineStyle: false,
22
+ inlineTemplate: false,
23
+ routing: false,
24
+ style: 'scss',
25
+ skipTests: false,
26
+ skipPackageJson: false
27
+ };
28
+ const workspaceOptions = {
29
+ name: 'workspace',
30
+ version: '6.0.0'
31
+ };
32
+ const options = {
33
+ layout: 'side-nav-outer-toolbar',
34
+ resolveConflicts: 'override',
35
+ globalNgCliVersion: '^8.0.0'
36
+ };
37
+ const angularSchematicsCollection = require.resolve('../../node_modules/@schematics/angular/collection.json');
38
+ const schematicRunner = new testing_1.SchematicTestRunner('@schematics/angular', angularSchematicsCollection);
39
+ let appTree;
40
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
41
+ appTree = yield schematicRunner.runSchematicAsync('workspace', workspaceOptions).toPromise();
42
+ appTree = yield schematicRunner.runSchematicAsync('application', appOptions, appTree).toPromise();
43
+ }));
44
+ it('should add layout with override', () => __awaiter(void 0, void 0, void 0, function* () {
45
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
46
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
47
+ expect(tree.files)
48
+ .toContain('/devextreme.json');
49
+ expect(tree.files)
50
+ .toContain('/src/app/app-navigation.ts');
51
+ expect(tree.files)
52
+ .toContain('/src/app/shared/components/header/header.component.ts');
53
+ expect(tree.files)
54
+ .toContain('/src/app/shared/components/login-form/login-form.component.ts');
55
+ expect(tree.files)
56
+ .toContain('/src/app/shared/components/side-navigation-menu/side-navigation-menu.component.ts');
57
+ expect(tree.files)
58
+ .toContain('/src/app/shared/services/app-info.service.ts');
59
+ expect(tree.files)
60
+ .toContain('/src/app/shared/services/auth.service.ts');
61
+ expect(tree.files)
62
+ .toContain('/src/app/shared/services/screen.service.ts');
63
+ expect(tree.files)
64
+ .toContain('/src/app/layouts/side-nav-outer-toolbar/side-nav-outer-toolbar.component.ts');
65
+ expect(tree.files)
66
+ .toContain('/src/app/layouts/side-nav-inner-toolbar/side-nav-inner-toolbar.component.ts');
67
+ expect(tree.files)
68
+ .toContain('/src/app/layouts/single-card/single-card.component.ts');
69
+ expect(tree.files)
70
+ .toContain('/src/themes/metadata.base.json');
71
+ expect(tree.files)
72
+ .toContain('/src/themes/metadata.additional.json');
73
+ const devextremeConfigContent = tree.readContent('/devextreme.json');
74
+ expect(devextremeConfigContent).toContain('"applicationEngine": "angular"');
75
+ expect(devextremeConfigContent).toContain('"inputFile": "src/themes/metadata.additional.json"');
76
+ expect(devextremeConfigContent).toMatch(/\n\s{2}\S/g);
77
+ const componentContent = tree.readContent('/src/app/app.component.html');
78
+ expect(componentContent).toContain('app-side-nav-outer-toolbar title="{{appInfo.title}}"');
79
+ const stylesContent = tree.readContent('/src/dx-styles.scss');
80
+ expect(stylesContent).toMatch(/html, body {/);
81
+ const indexContent = tree.readContent('/src/index.html');
82
+ expect(indexContent).toMatch(/<body class="dx-viewport">/);
83
+ const angularContent = JSON.parse(tree.readContent('/angular.json'));
84
+ const styles = angularContent.projects.testApp.architect.build.options.styles;
85
+ expect(styles[0]).toBe('node_modules/devextreme/dist/css/dx.common.css');
86
+ expect(styles[1]).toBe('src/themes/generated/theme.base.css');
87
+ expect(styles[2]).toBe('src/themes/generated/theme.additional.css');
88
+ const moduleContent = tree.readContent('/src/app/app.module.ts');
89
+ expect(moduleContent)
90
+ .toContain('import { SideNavOuterToolbarModule, SideNavInnerToolbarModule, SingleCardModule }');
91
+ expect(moduleContent)
92
+ .toContain(`import { AuthService, ScreenService, AppInfoService } from './shared/services';`);
93
+ expect(moduleContent).toContain('import { AppRoutingModule }');
94
+ expect(moduleContent)
95
+ .toContain('import { FooterModule, ' +
96
+ 'ResetPasswordFormModule, ' +
97
+ 'CreateAccountFormModule, ' +
98
+ 'ChangePasswordFormModule, ' +
99
+ 'LoginFormModule }');
100
+ const testContent = tree.readContent('/e2e/src/app.e2e-spec.ts');
101
+ expect(testContent).toMatch(/'Welcome to TestApp!'/);
102
+ const testUtilsContent = tree.readContent('/e2e/src/app.po.ts');
103
+ expect(testUtilsContent).toMatch(/'app-root .dx-drawer-content .dx-card p:nth-child\(2\)'/);
104
+ const appContent = tree.readContent('/src/app/app.component.ts');
105
+ expect(appContent).toContain('templateUrl: \'./app.component.html\',');
106
+ expect(appContent).toContain('styleUrls: [\'./app.component.scss\']');
107
+ expect(appContent).toContain('selector: \'app-root\',');
108
+ expect(appContent).toContain(`import { AuthService, ScreenService, AppInfoService } from './shared/services';`);
109
+ const navigationMenu = tree.readContent('/src/app/shared/components/side-navigation-menu/side-navigation-menu.component.ts');
110
+ expect(navigationMenu).toContain('@ViewChild(DxTreeViewComponent, { static: true })');
111
+ }));
112
+ it('should add npm scripts', () => __awaiter(void 0, void 0, void 0, function* () {
113
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
114
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
115
+ const packageConfig = JSON.parse(tree.readContent('package.json'));
116
+ expect(packageConfig.scripts['build-themes']).toBe('devextreme build');
117
+ expect(packageConfig.scripts['postinstall']).toBe('npm run build-themes');
118
+ }));
119
+ it('should set static flag', () => __awaiter(void 0, void 0, void 0, function* () {
120
+ dependencies_1.removePackageJsonDependency(appTree, '@angular/core');
121
+ dependencies_1.addPackageJsonDependency(appTree, {
122
+ type: dependencies_1.NodeDependencyType.Default,
123
+ name: '@angular/core',
124
+ version: '7.0.0'
125
+ });
126
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
127
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
128
+ const navigationMenu = tree.readContent('/src/app/shared/components/side-navigation-menu/side-navigation-menu.component.ts');
129
+ expect(navigationMenu).toContain('@ViewChild(DxTreeViewComponent, { static: true })');
130
+ }));
131
+ it('should add npm scripts safely', () => __awaiter(void 0, void 0, void 0, function* () {
132
+ modify_json_file_1.modifyJSONFile(appTree, './package.json', config => {
133
+ const scripts = config['scripts'];
134
+ scripts['build-themes'] = 'prev value 1';
135
+ scripts['postinstall'] = 'prev value 2';
136
+ return config;
137
+ });
138
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
139
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
140
+ const packageConfig = JSON.parse(tree.readContent('package.json'));
141
+ expect(packageConfig.scripts['origin-build-themes']).toBe('prev value 1');
142
+ expect(packageConfig.scripts['origin-postinstall']).toBe('prev value 2');
143
+ expect(packageConfig.scripts['build-themes']).toBe('npm run origin-build-themes && devextreme build');
144
+ expect(packageConfig.scripts['postinstall']).toBe('npm run origin-postinstall && npm run build-themes');
145
+ }));
146
+ it('should add angular/cdk dependency', () => __awaiter(void 0, void 0, void 0, function* () {
147
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
148
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
149
+ const packageConfig = JSON.parse(tree.readContent('package.json'));
150
+ expect(packageConfig.dependencies['@angular/cdk']).toBeDefined();
151
+ }));
152
+ it('should choose angular/cdk version such as angular/cli', () => __awaiter(void 0, void 0, void 0, function* () {
153
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
154
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
155
+ const packageConfig = JSON.parse(tree.readContent('package.json'));
156
+ expect(packageConfig.dependencies['@angular/cdk']).toBe('^8.0.0');
157
+ }));
158
+ it('should update budgets if updateBudgets option is true', () => __awaiter(void 0, void 0, void 0, function* () {
159
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
160
+ const tree = yield runner.runSchematicAsync('add-layout', Object.assign(Object.assign({}, options), { updateBudgets: true }), appTree).toPromise();
161
+ const angularContent = JSON.parse(tree.readContent('/angular.json'));
162
+ const budgets = angularContent.projects.testApp.architect.build.configurations.production.budgets;
163
+ expect(budgets.length).toBe(2);
164
+ expect(budgets[0]).toEqual({
165
+ type: 'initial',
166
+ maximumWarning: '4mb',
167
+ maximumError: '7mb'
168
+ });
169
+ }));
170
+ it('should not update budgets if updateBudgets option is not defined or false', () => __awaiter(void 0, void 0, void 0, function* () {
171
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
172
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
173
+ const angularContent = JSON.parse(tree.readContent('/angular.json'));
174
+ const budgets = angularContent.projects.testApp.architect.build.configurations.production.budgets;
175
+ const defaultBudget = {
176
+ type: 'initial',
177
+ maximumWarning: '500kb',
178
+ maximumError: '1mb'
179
+ };
180
+ expect(budgets.length).toBe(2);
181
+ expect(budgets[0]).toEqual(defaultBudget);
182
+ }));
183
+ it('should add layout without override', () => __awaiter(void 0, void 0, void 0, function* () {
184
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
185
+ options.resolveConflicts = 'createNew';
186
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
187
+ expect(tree.files).toContain('/src/app/app1.component.ts');
188
+ const componentContent = tree.readContent('/src/app/app1.component.html');
189
+ expect(componentContent).toContain('app-side-nav-outer-toolbar title="{{appInfo.title}}"');
190
+ const appContent = tree.readContent('/src/app/app.component.ts');
191
+ expect(appContent).toMatch(/templateUrl: '.\/app.component.html',/);
192
+ expect(appContent).toMatch(/styleUrls: \['.\/app.component.scss'\]/);
193
+ const newAppContent = tree.readContent('/src/app/app1.component.ts');
194
+ expect(newAppContent).toMatch(/templateUrl: '.\/app1.component.html',/);
195
+ expect(newAppContent).toMatch(/styleUrls: \['.\/app1.component.scss'\]/);
196
+ expect(newAppContent).toContain(`import { AuthService, ScreenService, AppInfoService } from './shared/services';`);
197
+ const appInfo = tree.readContent('/src/app/shared/services/app-info.service.ts');
198
+ expect(appInfo).toContain(`return 'TestApp';`);
199
+ }));
200
+ it('should add routing to layout', () => __awaiter(void 0, void 0, void 0, function* () {
201
+ let newAppTree = yield schematicRunner.runSchematicAsync('workspace', workspaceOptions).toPromise();
202
+ appOptions.routing = false;
203
+ newAppTree = yield schematicRunner.runSchematicAsync('application', appOptions, newAppTree).toPromise();
204
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
205
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
206
+ expect(tree.files).toContain('/src/app/app-routing.module.ts');
207
+ const moduleContent = tree.readContent('/src/app/app-routing.module.ts');
208
+ expect(moduleContent)
209
+ .toMatch(/imports:\s\[RouterModule\.forRoot\(routes, { useHash: true }\)\],/);
210
+ expect(moduleContent)
210
211
  .toContain(`{
211
212
  path: 'login-form',
212
213
  component: LoginFormComponent,
213
214
  canActivate: [ AuthGuardService ]
214
- }`);
215
- }));
216
- it('should use selected layout', () => __awaiter(this, void 0, void 0, function* () {
217
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
218
- options.layout = 'side-nav-inner-toolbar';
219
- options.resolveConflicts = 'override';
220
- const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
221
- const content = tree.readContent('/src/app/app.component.html');
222
- expect(content).toContain('app-side-nav-inner-toolbar title="{{appInfo.title}}"');
223
- }));
224
- it('should consider the `project` option', () => __awaiter(this, void 0, void 0, function* () {
225
- appTree = yield schematicRunner.runSchematicAsync('application', Object.assign({}, appOptions, { name: 'testApp2', projectRoot: 'projects/testApp2' }), appTree).toPromise();
226
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
227
- const tree = yield runner.runSchematicAsync('add-layout', Object.assign({}, options, { project: 'testApp2' }), appTree).toPromise();
228
- expect(tree.files)
229
- .toContain('/devextreme.json');
230
- expect(tree.files)
231
- .toContain('/projects/testApp2/src/themes/metadata.base.json');
232
- }));
233
- it('should merge build commands in devextreme.json file', () => __awaiter(this, void 0, void 0, function* () {
234
- appTree = yield schematicRunner.runSchematicAsync('application', Object.assign({}, appOptions, { name: 'testApp2', prefix: 'app2', projectRoot: 'projects/testApp2' }), appTree).toPromise();
235
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
236
- let tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
237
- tree = yield runner.runSchematicAsync('add-layout', Object.assign({}, options, { project: 'testApp2' }), appTree).toPromise();
238
- const appContent = tree.readContent('projects/testApp2/src/app/app.component.ts');
239
- expect(appContent).toContain('selector: \'app2-root\',');
240
- const content = tree.readContent('/devextreme.json');
241
- expect(content).toContain('"inputFile": "src/themes/metadata.base.json",');
242
- expect(content).toContain('"inputFile": "projects/testApp2/src/themes/metadata.base.json",');
243
- }));
244
- it('should add e2e tests only for default project', () => __awaiter(this, void 0, void 0, function* () {
245
- appTree = yield schematicRunner.runSchematicAsync('application', Object.assign({}, appOptions, { name: 'testApp2', projectRoot: 'projects/testApp2' }), appTree).toPromise();
246
- const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
247
- let tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
248
- tree = yield runner.runSchematicAsync('add-layout', Object.assign({}, options, { project: 'testApp2' }), appTree).toPromise();
249
- const testContent = tree.readContent('/e2e/src/app.e2e-spec.ts');
250
- expect(testContent).toContain('Welcome to TestApp!');
251
- const testUtilsContent = tree.readContent('/e2e/src/app.po.ts');
252
- expect(testUtilsContent).toMatch(/'app-root .dx-drawer-content .dx-card p:nth-child\(2\)'/);
253
- }));
254
- });
215
+ }`);
216
+ }));
217
+ it('should use selected layout', () => __awaiter(void 0, void 0, void 0, function* () {
218
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
219
+ options.layout = 'side-nav-inner-toolbar';
220
+ options.resolveConflicts = 'override';
221
+ const tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
222
+ const content = tree.readContent('/src/app/app.component.html');
223
+ expect(content).toContain('app-side-nav-inner-toolbar title="{{appInfo.title}}"');
224
+ }));
225
+ it('should consider the `project` option', () => __awaiter(void 0, void 0, void 0, function* () {
226
+ appTree = yield schematicRunner.runSchematicAsync('application', Object.assign(Object.assign({}, appOptions), { name: 'testApp2', projectRoot: 'projects/testApp2' }), appTree).toPromise();
227
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
228
+ const tree = yield runner.runSchematicAsync('add-layout', Object.assign(Object.assign({}, options), { project: 'testApp2' }), appTree).toPromise();
229
+ expect(tree.files)
230
+ .toContain('/devextreme.json');
231
+ expect(tree.files)
232
+ .toContain('/projects/testApp2/src/themes/metadata.base.json');
233
+ }));
234
+ it('should merge build commands in devextreme.json file', () => __awaiter(void 0, void 0, void 0, function* () {
235
+ appTree = yield schematicRunner.runSchematicAsync('application', Object.assign(Object.assign({}, appOptions), { name: 'testApp2', prefix: 'app2', projectRoot: 'projects/testApp2' }), appTree).toPromise();
236
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
237
+ let tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
238
+ tree = yield runner.runSchematicAsync('add-layout', Object.assign(Object.assign({}, options), { project: 'testApp2' }), appTree).toPromise();
239
+ const appContent = tree.readContent('projects/testApp2/src/app/app.component.ts');
240
+ expect(appContent).toContain('selector: \'app2-root\',');
241
+ const content = tree.readContent('/devextreme.json');
242
+ expect(content).toContain('"inputFile": "src/themes/metadata.base.json",');
243
+ expect(content).toContain('"inputFile": "projects/testApp2/src/themes/metadata.base.json",');
244
+ }));
245
+ it('should add e2e tests only for default project', () => __awaiter(void 0, void 0, void 0, function* () {
246
+ appTree = yield schematicRunner.runSchematicAsync('application', Object.assign(Object.assign({}, appOptions), { name: 'testApp2', projectRoot: 'projects/testApp2' }), appTree).toPromise();
247
+ const runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
248
+ let tree = yield runner.runSchematicAsync('add-layout', options, appTree).toPromise();
249
+ tree = yield runner.runSchematicAsync('add-layout', Object.assign(Object.assign({}, options), { project: 'testApp2' }), appTree).toPromise();
250
+ const testContent = tree.readContent('/e2e/src/app.e2e-spec.ts');
251
+ expect(testContent).toContain('Welcome to TestApp!');
252
+ const testUtilsContent = tree.readContent('/e2e/src/app.po.ts');
253
+ expect(testUtilsContent).toMatch(/'app-root .dx-drawer-content .dx-card p:nth-child\(2\)'/);
254
+ }));
255
+ });
255
256
  //# sourceMappingURL=index_spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index_spec.js","sourceRoot":"","sources":["index_spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index_spec.js","sourceRoot":"","sources":["index_spec.ts"],"names":[],"mappings":"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"}