@ihk-gfi/lux-components-update 11.6.0 → 11.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/package.json +1 -1
  2. package/src/add-lux-components/index.js +10 -0
  3. package/src/add-lux-components/index.js.map +1 -1
  4. package/src/add-lux-components/index.ts +10 -0
  5. package/src/collection.json +20 -0
  6. package/src/update/index_spec.js +0 -6
  7. package/src/update/index_spec.js.map +1 -1
  8. package/src/update/index_spec.ts +0 -6
  9. package/src/update110700/index.d.ts +2 -0
  10. package/src/update110700/index.js +45 -0
  11. package/src/update110700/index.js.map +1 -0
  12. package/src/update110700/index.ts +47 -0
  13. package/src/update110700/index_spec.d.ts +1 -0
  14. package/src/update110700/index_spec.js +108 -0
  15. package/src/update110700/index_spec.js.map +1 -0
  16. package/src/update110700/index_spec.ts +122 -0
  17. package/src/update110700/schema.json +23 -0
  18. package/src/update110800/index.d.ts +2 -0
  19. package/src/update110800/index.js +32 -0
  20. package/src/update110800/index.js.map +1 -0
  21. package/src/update110800/index.ts +33 -0
  22. package/src/update110800/index_spec.d.ts +1 -0
  23. package/src/update110800/index_spec.js +70 -0
  24. package/src/update110800/index_spec.js.map +1 -0
  25. package/src/update110800/index_spec.ts +75 -0
  26. package/src/update110800/schema.json +23 -0
  27. package/src/update110900/index.d.ts +4 -0
  28. package/src/update110900/index.js +111 -0
  29. package/src/update110900/index.js.map +1 -0
  30. package/src/update110900/index.ts +123 -0
  31. package/src/update110900/index_spec.d.ts +1 -0
  32. package/src/update110900/index_spec.js +311 -0
  33. package/src/update110900/index_spec.js.map +1 -0
  34. package/src/update110900/index_spec.ts +341 -0
  35. package/src/update110900/schema.json +23 -0
  36. package/src/update111000/index.d.ts +2 -0
  37. package/src/update111000/index.js +27 -0
  38. package/src/update111000/index.js.map +1 -0
  39. package/src/update111000/index.ts +27 -0
  40. package/src/update111000/index_spec.d.ts +1 -0
  41. package/src/update111000/index_spec.js +65 -0
  42. package/src/update111000/index_spec.js.map +1 -0
  43. package/src/update111000/index_spec.ts +70 -0
  44. package/src/update111000/schema.json +23 -0
  45. package/src/utility/dependencies.d.ts +6 -0
  46. package/src/utility/dependencies.js +22 -1
  47. package/src/utility/dependencies.js.map +1 -1
  48. package/src/utility/dependencies.ts +26 -0
@@ -0,0 +1,311 @@
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 schematics_1 = require("@angular-devkit/schematics");
13
+ const testing_1 = require("@angular-devkit/schematics/testing");
14
+ const path = require("path");
15
+ const rxjs_1 = require("rxjs");
16
+ const dependencies_1 = require("../utility/dependencies");
17
+ const test_1 = require("../utility/test");
18
+ const util_1 = require("../utility/util");
19
+ const index_1 = require("./index");
20
+ const collectionPath = path.join(__dirname, '../collection.json');
21
+ describe('update110900', () => {
22
+ let appTree;
23
+ let runner;
24
+ let context;
25
+ const testOptions = {};
26
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
27
+ runner = new testing_1.SchematicTestRunner('schematics', collectionPath);
28
+ appTree = yield runner.runExternalSchematicAsync('@schematics/angular', 'workspace', test_1.workspaceOptions).toPromise();
29
+ appTree = yield runner
30
+ .runExternalSchematicAsync('@schematics/angular', 'application', test_1.appOptions, appTree)
31
+ .toPromise();
32
+ util_1.UtilConfig.defaultWaitMS = 0;
33
+ const collection = runner.engine.createCollection(collectionPath);
34
+ const schematic = runner.engine.createSchematic('update-11.9.0', collection);
35
+ context = runner.engine.createContext(schematic);
36
+ testOptions.project = test_1.appOptions.name;
37
+ testOptions.path = test_1.workspaceOptions.newProjectRoot + '/' + test_1.appOptions.name;
38
+ testOptions.verbose = true;
39
+ }));
40
+ describe('[Rule] update110900', () => {
41
+ it('Sollte die Abhängigkeiten aktualisieren', (done) => {
42
+ appTree.overwrite('/package.json', `
43
+ {
44
+ "name": "Lorem ipsum",
45
+ "version": "0.0.32",
46
+ "scripts": {
47
+ "build": "tsc -p tsconfig.json",
48
+ "test": "npm run build && jasmine src/**/*_spec.js"
49
+ },
50
+ "dependencies": {
51
+ "@ihk-gfi/lux-components": "11.0.0",
52
+ },
53
+ "devDependencies": {
54
+ "@angular-devkit/build-angular": "0.1102.14"
55
+ }
56
+ }
57
+ `);
58
+ appTree.overwrite('/angular.json', `{
59
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
60
+ "version": 1,
61
+ "newProjectRoot": "projects",
62
+ "projects": {
63
+ "bar": {
64
+ "root": "",
65
+ "sourceRoot": "src",
66
+ "projectType": "application",
67
+ "i18n": {
68
+ "sourceLocale": {
69
+ "code": "de",
70
+ "baseHref": "/"
71
+ },
72
+ "locales": {
73
+ "en": "src/locale/messages.en.xlf"
74
+ }
75
+ },
76
+ "architect": {
77
+ "build": {
78
+ "builder": "ngx-build-plus:browser",
79
+ "options": {
80
+ "outputPath": "dist",
81
+ "index": "src/index.html",
82
+ "main": "src/main.ts",
83
+ "tsConfig": "src/tsconfig.app.json",
84
+ "polyfills": "src/polyfills.ts",
85
+ "assets": [
86
+ "src/assets",
87
+ {
88
+ "glob": "*(*min.css|*min.css.map)",
89
+ "input": "./node_modules/@ihk-gfi/lux-components-theme/prebuilt-themes",
90
+ "output": "./assets/themes"
91
+ }
92
+ ],
93
+ "styles": [
94
+ "src/styles.scss"
95
+ ],
96
+ "scripts": [
97
+ {
98
+ "bundleName": "polyfill-webcomp",
99
+ "input": "node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js"
100
+ },
101
+ {
102
+ "bundleName": "polyfill-webcomp-es5",
103
+ "input": "node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"
104
+ }
105
+ ],
106
+ "allowedCommonJsDependencies": [
107
+ "hammerjs",
108
+ "ng2-pdf-viewer"
109
+ ],
110
+ "localize": [
111
+ "de"
112
+ ],
113
+ "i18nMissingTranslation": "error",
114
+ "extraWebpackConfig": "webpack.config.js"
115
+ },
116
+ "configurations": {
117
+ "production": {
118
+ "budgets": [
119
+ {
120
+ "type": "anyComponentStyle",
121
+ "maximumWarning": "6kb"
122
+ }
123
+ ],
124
+ "optimization": true,
125
+ "outputHashing": "all",
126
+ "sourceMap": false,
127
+ "namedChunks": false,
128
+ "aot": true,
129
+ "extractLicenses": true,
130
+ "vendorChunk": false,
131
+ "buildOptimizer": true,
132
+ "fileReplacements": [
133
+ {
134
+ "replace": "src/environments/environment.ts",
135
+ "with": "src/environments/environment.prod.ts"
136
+ }
137
+ ]
138
+ },
139
+ "es5": {
140
+ "budgets": [
141
+ {
142
+ "type": "anyComponentStyle",
143
+ "maximumWarning": "6kb"
144
+ }
145
+ ],
146
+ "tsConfig": "src/tsconfig.app.ie.json"
147
+ },
148
+ "en": {
149
+ "localize": [
150
+ "en"
151
+ ],
152
+ "aot": true,
153
+ "outputPath": "dist/en",
154
+ "i18nMissingTranslation": "error"
155
+ }
156
+ }
157
+ },
158
+ "serve": {
159
+ "builder": "ngx-build-plus:dev-server",
160
+ "options": {
161
+ "browserTarget": "bar:build"
162
+ },
163
+ "configurations": {
164
+ "production": {
165
+ "browserTarget": "bar:build:production"
166
+ },
167
+ "es5": {
168
+ "browserTarget": "bar:build:es5"
169
+ },
170
+ "en": {
171
+ "browserTarget": "bar:build:en"
172
+ }
173
+ }
174
+ },
175
+ "extract-i18n": {
176
+ "builder": "@angular-devkit/build-angular:extract-i18n",
177
+ "options": {
178
+ "browserTarget": "bar:build"
179
+ }
180
+ },
181
+ "test": {
182
+ "builder": "ngx-build-plus:karma",
183
+ "options": {
184
+ "main": "src/test.ts",
185
+ "karmaConfig": "./karma.conf.js",
186
+ "polyfills": "src/polyfills.ts",
187
+ "tsConfig": "src/tsconfig.spec.json",
188
+ "scripts": [],
189
+ "styles": [
190
+ "src/styles.scss"
191
+ ],
192
+ "assets": [
193
+ "src/assets",
194
+ {
195
+ "glob": "**/*",
196
+ "input": "./node_modules/pdfjs-dist/cmaps/",
197
+ "output": "./assets/cmaps"
198
+ },
199
+ {
200
+ "glob": "*.css",
201
+ "input": "./node_modules/@ihk-gfi/lux-components-theme/prebuilt-themes",
202
+ "output": "./assets/themes"
203
+ }
204
+ ]
205
+ }
206
+ },
207
+ "lint": {
208
+ "builder": "@angular-eslint/builder:lint",
209
+ "options": {
210
+ "lintFilePatterns": [
211
+ "src/**/*.ts",
212
+ "src/**/*.html"
213
+ ]
214
+ }
215
+ }
216
+ }
217
+ },
218
+ "bar-e2e": {
219
+ "root": "e2e",
220
+ "sourceRoot": "e2e",
221
+ "projectType": "application",
222
+ "architect": {
223
+ "e2e": {
224
+ "builder": "@angular-devkit/build-angular:protractor",
225
+ "options": {
226
+ "protractorConfig": "./protractor.conf.js",
227
+ "devServerTarget": "bar:serve"
228
+ }
229
+ }
230
+ }
231
+ }
232
+ },
233
+ "defaultProject": "bar",
234
+ "cli": {
235
+ "defaultCollection": "@angular-eslint/schematics"
236
+ },
237
+ "schematics": {
238
+ "@schematics/angular:component": {
239
+ "prefix": "bp",
240
+ "style": "scss"
241
+ },
242
+ "@schematics/angular:directive": {
243
+ "prefix": "bp"
244
+ }
245
+ }
246
+ }
247
+ `);
248
+ schematics_1.callRule(index_1.update110900(testOptions), rxjs_1.of(appTree), context).subscribe((success) => {
249
+ var _a;
250
+ expect(dependencies_1.getPackageJsonDependency(appTree, '@ihk-gfi/lux-components').version).toEqual('11.9.0');
251
+ expect(dependencies_1.getPackageJsonDependency(appTree, '@ihk-gfi/lux-components-theme').version).toEqual('11.11.0');
252
+ const angularJson = (_a = success.read('/angular.json')) === null || _a === void 0 ? void 0 : _a.toString();
253
+ expect(angularJson).toContain(`{
254
+ "glob": "all.css",
255
+ "input": "./node_modules/@fortawesome/fontawesome-free/css",
256
+ "output": "./assets/icons/fontawesome/css"
257
+ },`);
258
+ expect(angularJson).toContain(`{
259
+ "glob": "*(*.eot|*.ttf|*.woff|*.woff2)",
260
+ "input": "./node_modules/@fortawesome/fontawesome-free/webfonts",
261
+ "output": "./assets/icons/fontawesome/webfonts"
262
+ },`);
263
+ expect(angularJson).toContain(`{
264
+ "glob": "material-design-icons.css",
265
+ "input": "./node_modules/material-design-icons-iconfont/dist",
266
+ "output": "./assets/icons/material-icons"
267
+ },`);
268
+ expect(angularJson).toContain(`{
269
+ "glob": "*(*.eot|*.ttf|*.woff|*.woff2)",
270
+ "input": "./node_modules/material-design-icons-iconfont/dist/fonts",
271
+ "output": "./assets/icons/material-icons/fonts"
272
+ },`);
273
+ done();
274
+ }, (reason) => expect(reason).toBeUndefined());
275
+ });
276
+ });
277
+ describe('[Rule] addIconsToIndexHtml', () => {
278
+ it('Sollte die Datei "index.html" angepasst haben', (done) => {
279
+ appTree.create('src/index.html', `
280
+ <!doctype html>
281
+ <html lang="de">
282
+ <head>
283
+ <meta charset="utf-8">
284
+ <title>LUX Blueprint</title>
285
+ <base href="/">
286
+ <meta name="viewport" content="width=device-width, initial-scale=1">
287
+ <link rel="icon" type="image/x-icon" href="favicon.ico">
288
+ </head>
289
+ <body style="margin: 0">
290
+ <noscript>
291
+ <div id="no-js" class="lux-no-js">
292
+ <p><b>Achtung, Javascript ist deaktiviert.</b></p>
293
+ <p>Bitte aktivieren Sie Javascript in Ihrem Browser, damit die Applikation funktionsf&auml;hig ist.</p>
294
+ </div>
295
+ </noscript>
296
+ <app-root></app-root>
297
+ </body>
298
+ </html>
299
+ `);
300
+ schematics_1.callRule(index_1.addIconsToIndexHtml(testOptions), rxjs_1.of(appTree), context).subscribe((success) => {
301
+ var _a;
302
+ const content = (_a = success.read('src/index.html')) === null || _a === void 0 ? void 0 : _a.toString();
303
+ expect(content).toContain('<link rel="icon" type="image/x-icon" href="favicon.ico">');
304
+ expect(content).toContain('<link rel="stylesheet" href="assets/icons/material-icons/material-design-icons.css">');
305
+ expect(content).toContain('<link rel="stylesheet" href="assets/icons/fontawesome/css/all.css">');
306
+ done();
307
+ }, (reason) => expect(reason).toBeUndefined());
308
+ });
309
+ });
310
+ });
311
+ //# sourceMappingURL=index_spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index_spec.js","sourceRoot":"","sources":["index_spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,341 @@
1
+ import { callRule, SchematicContext } from '@angular-devkit/schematics';
2
+ import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing';
3
+ import * as path from 'path';
4
+ import { of as observableOf } from 'rxjs';
5
+ import { getPackageJsonDependency } from '../utility/dependencies';
6
+ import { appOptions, workspaceOptions } from '../utility/test';
7
+ import { UtilConfig } from '../utility/util';
8
+ import { addIconsToIndexHtml, update110900 } from './index';
9
+
10
+ const collectionPath = path.join(__dirname, '../collection.json');
11
+
12
+ describe('update110900', () => {
13
+ let appTree: UnitTestTree;
14
+ let runner: SchematicTestRunner;
15
+ let context: SchematicContext;
16
+
17
+ const testOptions: any = {};
18
+
19
+ beforeEach(async () => {
20
+ runner = new SchematicTestRunner('schematics', collectionPath);
21
+
22
+ appTree = await runner.runExternalSchematicAsync('@schematics/angular', 'workspace', workspaceOptions).toPromise();
23
+ appTree = await runner
24
+ .runExternalSchematicAsync('@schematics/angular', 'application', appOptions, appTree)
25
+ .toPromise();
26
+
27
+ UtilConfig.defaultWaitMS = 0;
28
+
29
+ const collection = runner.engine.createCollection(collectionPath);
30
+ const schematic = runner.engine.createSchematic('update-11.9.0', collection);
31
+ context = runner.engine.createContext(schematic);
32
+
33
+ testOptions.project = appOptions.name;
34
+ testOptions.path = workspaceOptions.newProjectRoot + '/' + appOptions.name;
35
+ testOptions.verbose = true;
36
+ });
37
+
38
+ describe('[Rule] update110900', () => {
39
+ it('Sollte die Abhängigkeiten aktualisieren', (done) => {
40
+ appTree.overwrite(
41
+ '/package.json',
42
+ `
43
+ {
44
+ "name": "Lorem ipsum",
45
+ "version": "0.0.32",
46
+ "scripts": {
47
+ "build": "tsc -p tsconfig.json",
48
+ "test": "npm run build && jasmine src/**/*_spec.js"
49
+ },
50
+ "dependencies": {
51
+ "@ihk-gfi/lux-components": "11.0.0",
52
+ },
53
+ "devDependencies": {
54
+ "@angular-devkit/build-angular": "0.1102.14"
55
+ }
56
+ }
57
+ `
58
+ );
59
+
60
+ appTree.overwrite(
61
+ '/angular.json',
62
+ `{
63
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
64
+ "version": 1,
65
+ "newProjectRoot": "projects",
66
+ "projects": {
67
+ "bar": {
68
+ "root": "",
69
+ "sourceRoot": "src",
70
+ "projectType": "application",
71
+ "i18n": {
72
+ "sourceLocale": {
73
+ "code": "de",
74
+ "baseHref": "/"
75
+ },
76
+ "locales": {
77
+ "en": "src/locale/messages.en.xlf"
78
+ }
79
+ },
80
+ "architect": {
81
+ "build": {
82
+ "builder": "ngx-build-plus:browser",
83
+ "options": {
84
+ "outputPath": "dist",
85
+ "index": "src/index.html",
86
+ "main": "src/main.ts",
87
+ "tsConfig": "src/tsconfig.app.json",
88
+ "polyfills": "src/polyfills.ts",
89
+ "assets": [
90
+ "src/assets",
91
+ {
92
+ "glob": "*(*min.css|*min.css.map)",
93
+ "input": "./node_modules/@ihk-gfi/lux-components-theme/prebuilt-themes",
94
+ "output": "./assets/themes"
95
+ }
96
+ ],
97
+ "styles": [
98
+ "src/styles.scss"
99
+ ],
100
+ "scripts": [
101
+ {
102
+ "bundleName": "polyfill-webcomp",
103
+ "input": "node_modules/@webcomponents/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js"
104
+ },
105
+ {
106
+ "bundleName": "polyfill-webcomp-es5",
107
+ "input": "node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"
108
+ }
109
+ ],
110
+ "allowedCommonJsDependencies": [
111
+ "hammerjs",
112
+ "ng2-pdf-viewer"
113
+ ],
114
+ "localize": [
115
+ "de"
116
+ ],
117
+ "i18nMissingTranslation": "error",
118
+ "extraWebpackConfig": "webpack.config.js"
119
+ },
120
+ "configurations": {
121
+ "production": {
122
+ "budgets": [
123
+ {
124
+ "type": "anyComponentStyle",
125
+ "maximumWarning": "6kb"
126
+ }
127
+ ],
128
+ "optimization": true,
129
+ "outputHashing": "all",
130
+ "sourceMap": false,
131
+ "namedChunks": false,
132
+ "aot": true,
133
+ "extractLicenses": true,
134
+ "vendorChunk": false,
135
+ "buildOptimizer": true,
136
+ "fileReplacements": [
137
+ {
138
+ "replace": "src/environments/environment.ts",
139
+ "with": "src/environments/environment.prod.ts"
140
+ }
141
+ ]
142
+ },
143
+ "es5": {
144
+ "budgets": [
145
+ {
146
+ "type": "anyComponentStyle",
147
+ "maximumWarning": "6kb"
148
+ }
149
+ ],
150
+ "tsConfig": "src/tsconfig.app.ie.json"
151
+ },
152
+ "en": {
153
+ "localize": [
154
+ "en"
155
+ ],
156
+ "aot": true,
157
+ "outputPath": "dist/en",
158
+ "i18nMissingTranslation": "error"
159
+ }
160
+ }
161
+ },
162
+ "serve": {
163
+ "builder": "ngx-build-plus:dev-server",
164
+ "options": {
165
+ "browserTarget": "bar:build"
166
+ },
167
+ "configurations": {
168
+ "production": {
169
+ "browserTarget": "bar:build:production"
170
+ },
171
+ "es5": {
172
+ "browserTarget": "bar:build:es5"
173
+ },
174
+ "en": {
175
+ "browserTarget": "bar:build:en"
176
+ }
177
+ }
178
+ },
179
+ "extract-i18n": {
180
+ "builder": "@angular-devkit/build-angular:extract-i18n",
181
+ "options": {
182
+ "browserTarget": "bar:build"
183
+ }
184
+ },
185
+ "test": {
186
+ "builder": "ngx-build-plus:karma",
187
+ "options": {
188
+ "main": "src/test.ts",
189
+ "karmaConfig": "./karma.conf.js",
190
+ "polyfills": "src/polyfills.ts",
191
+ "tsConfig": "src/tsconfig.spec.json",
192
+ "scripts": [],
193
+ "styles": [
194
+ "src/styles.scss"
195
+ ],
196
+ "assets": [
197
+ "src/assets",
198
+ {
199
+ "glob": "**/*",
200
+ "input": "./node_modules/pdfjs-dist/cmaps/",
201
+ "output": "./assets/cmaps"
202
+ },
203
+ {
204
+ "glob": "*.css",
205
+ "input": "./node_modules/@ihk-gfi/lux-components-theme/prebuilt-themes",
206
+ "output": "./assets/themes"
207
+ }
208
+ ]
209
+ }
210
+ },
211
+ "lint": {
212
+ "builder": "@angular-eslint/builder:lint",
213
+ "options": {
214
+ "lintFilePatterns": [
215
+ "src/**/*.ts",
216
+ "src/**/*.html"
217
+ ]
218
+ }
219
+ }
220
+ }
221
+ },
222
+ "bar-e2e": {
223
+ "root": "e2e",
224
+ "sourceRoot": "e2e",
225
+ "projectType": "application",
226
+ "architect": {
227
+ "e2e": {
228
+ "builder": "@angular-devkit/build-angular:protractor",
229
+ "options": {
230
+ "protractorConfig": "./protractor.conf.js",
231
+ "devServerTarget": "bar:serve"
232
+ }
233
+ }
234
+ }
235
+ }
236
+ },
237
+ "defaultProject": "bar",
238
+ "cli": {
239
+ "defaultCollection": "@angular-eslint/schematics"
240
+ },
241
+ "schematics": {
242
+ "@schematics/angular:component": {
243
+ "prefix": "bp",
244
+ "style": "scss"
245
+ },
246
+ "@schematics/angular:directive": {
247
+ "prefix": "bp"
248
+ }
249
+ }
250
+ }
251
+ `
252
+ );
253
+
254
+ callRule(update110900(testOptions), observableOf(appTree), context).subscribe(
255
+ (success) => {
256
+ expect(getPackageJsonDependency(appTree, '@ihk-gfi/lux-components').version).toEqual('11.9.0');
257
+ expect(getPackageJsonDependency(appTree, '@ihk-gfi/lux-components-theme').version).toEqual('11.11.0');
258
+
259
+ const angularJson = success.read('/angular.json')?.toString();
260
+ expect(angularJson).toContain(
261
+ `{
262
+ "glob": "all.css",
263
+ "input": "./node_modules/@fortawesome/fontawesome-free/css",
264
+ "output": "./assets/icons/fontawesome/css"
265
+ },`
266
+ );
267
+
268
+ expect(angularJson).toContain(
269
+ `{
270
+ "glob": "*(*.eot|*.ttf|*.woff|*.woff2)",
271
+ "input": "./node_modules/@fortawesome/fontawesome-free/webfonts",
272
+ "output": "./assets/icons/fontawesome/webfonts"
273
+ },`
274
+ );
275
+
276
+ expect(angularJson).toContain(
277
+ `{
278
+ "glob": "material-design-icons.css",
279
+ "input": "./node_modules/material-design-icons-iconfont/dist",
280
+ "output": "./assets/icons/material-icons"
281
+ },`
282
+ );
283
+
284
+ expect(angularJson).toContain(
285
+ `{
286
+ "glob": "*(*.eot|*.ttf|*.woff|*.woff2)",
287
+ "input": "./node_modules/material-design-icons-iconfont/dist/fonts",
288
+ "output": "./assets/icons/material-icons/fonts"
289
+ },`
290
+ );
291
+
292
+ done();
293
+ },
294
+ (reason) => expect(reason).toBeUndefined()
295
+ );
296
+ });
297
+ });
298
+
299
+ describe('[Rule] addIconsToIndexHtml', () => {
300
+ it('Sollte die Datei "index.html" angepasst haben', (done) => {
301
+ appTree.create(
302
+ 'src/index.html',
303
+ `
304
+ <!doctype html>
305
+ <html lang="de">
306
+ <head>
307
+ <meta charset="utf-8">
308
+ <title>LUX Blueprint</title>
309
+ <base href="/">
310
+ <meta name="viewport" content="width=device-width, initial-scale=1">
311
+ <link rel="icon" type="image/x-icon" href="favicon.ico">
312
+ </head>
313
+ <body style="margin: 0">
314
+ <noscript>
315
+ <div id="no-js" class="lux-no-js">
316
+ <p><b>Achtung, Javascript ist deaktiviert.</b></p>
317
+ <p>Bitte aktivieren Sie Javascript in Ihrem Browser, damit die Applikation funktionsf&auml;hig ist.</p>
318
+ </div>
319
+ </noscript>
320
+ <app-root></app-root>
321
+ </body>
322
+ </html>
323
+ `
324
+ );
325
+
326
+
327
+ callRule(addIconsToIndexHtml(testOptions), observableOf(appTree), context).subscribe(
328
+ (success) => {
329
+ const content = success.read('src/index.html')?.toString();
330
+
331
+ expect(content).toContain('<link rel="icon" type="image/x-icon" href="favicon.ico">');
332
+ expect(content).toContain('<link rel="stylesheet" href="assets/icons/material-icons/material-design-icons.css">');
333
+ expect(content).toContain('<link rel="stylesheet" href="assets/icons/fontawesome/css/all.css">');
334
+
335
+ done();
336
+ },
337
+ (reason) => expect(reason).toBeUndefined()
338
+ );
339
+ });
340
+ });
341
+ });
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "id": "luxupdate110900Schema",
4
+ "title": "Aktualisiert das LUX-Componentsprojekt",
5
+ "type": "object",
6
+ "description": "Aktualisiert das LUX-Componentsprojekt",
7
+ "properties": {
8
+ "project": {
9
+ "type": "string",
10
+ "description": "Der Projektname",
11
+ "$default": {
12
+ "$source": "projectName"
13
+ }
14
+ },
15
+ "verbose": {
16
+ "type": "boolean",
17
+ "description": "Generiert mehr Logausgaben",
18
+ "default": false
19
+ }
20
+ },
21
+ "required": [],
22
+ "additionalProperties": false
23
+ }
@@ -0,0 +1,2 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ export declare function update111000(options: any): Rule;