standalone.spec.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. "use strict";
  2. /**
  3. * Use of this source code is governed by an MIT-style license that can be
  4. * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
  5. */
  6. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  7. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  8. return new (P || (P = Promise))(function (resolve, reject) {
  9. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  10. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  11. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  12. step((generator = generator.apply(thisArg, _arguments || [])).next());
  13. });
  14. };
  15. Object.defineProperty(exports, "__esModule", { value: true });
  16. const schematics_1 = require("@angular/cdk/schematics");
  17. const core_1 = require("@angular-devkit/core");
  18. const options_1 = require("@angular-devkit/schematics/tasks/package-manager/options");
  19. const testing_1 = require("@angular-devkit/schematics/testing");
  20. const workspace_1 = require("@schematics/angular/utility/workspace");
  21. const path_1 = require("path");
  22. const test_app_1 = require("../testing/test-app");
  23. const create_custom_theme_1 = require("../utils/create-custom-theme");
  24. const get_file_content_1 = require("../utils/get-file-content");
  25. describe('[standalone] ng-add schematic', () => {
  26. const defaultOptions = {
  27. project: 'ng-zorro'
  28. };
  29. let runner;
  30. let appTree;
  31. beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
  32. runner = new testing_1.SchematicTestRunner('schematics', require.resolve('../collection.json'));
  33. appTree = yield (0, test_app_1.createTestApp)(runner);
  34. }));
  35. it('should update package.json', () => __awaiter(void 0, void 0, void 0, function* () {
  36. const options = Object.assign({}, defaultOptions);
  37. const tree = yield runner.runSchematic('ng-add', options, appTree);
  38. const packageJson = JSON.parse((0, get_file_content_1.getFileContent)(tree, '/package.json'));
  39. const dependencies = packageJson.dependencies;
  40. expect(dependencies['ng-zorro-antd']).toBeDefined();
  41. expect(runner.tasks.some(task => task.name === options_1.NodePackageName)).toBe(true);
  42. }));
  43. it('should add hammerjs to package.json', () => __awaiter(void 0, void 0, void 0, function* () {
  44. const options = Object.assign(Object.assign({}, defaultOptions), { gestures: true });
  45. const tree = yield runner.runSchematic('ng-add', options, appTree);
  46. const packageJson = JSON.parse((0, get_file_content_1.getFileContent)(tree, '/package.json'));
  47. const dependencies = packageJson.dependencies;
  48. expect(dependencies.hammerjs).toBeDefined();
  49. }));
  50. it('should skip package.json', () => __awaiter(void 0, void 0, void 0, function* () {
  51. const options = Object.assign(Object.assign({}, defaultOptions), { skipPackageJson: true });
  52. const tree = yield runner.runSchematic('ng-add', options, appTree);
  53. const packageJson = JSON.parse((0, get_file_content_1.getFileContent)(tree, '/package.json'));
  54. const dependencies = packageJson.dependencies;
  55. expect(dependencies['ng-zorro-antd']).toBeUndefined();
  56. }));
  57. it('should skip install dependency package', () => __awaiter(void 0, void 0, void 0, function* () {
  58. const options = Object.assign(Object.assign({}, defaultOptions), { skipInstall: true });
  59. yield runner.runSchematic('ng-add', options, appTree);
  60. expect(runner.tasks.some(task => task.name === options_1.NodePackageName)).toBe(false);
  61. }));
  62. it('should add hammerjs import to project main file', () => __awaiter(void 0, void 0, void 0, function* () {
  63. const options = Object.assign(Object.assign({}, defaultOptions), { gestures: true });
  64. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  65. const workspace = yield (0, workspace_1.getWorkspace)(tree);
  66. const project = (0, schematics_1.getProjectFromWorkspace)(workspace, defaultOptions.project);
  67. const fileContent = (0, get_file_content_1.getFileContent)(tree, (0, core_1.normalize)((0, path_1.join)(project.sourceRoot, 'main.ts')));
  68. expect(fileContent).toContain(`import 'hammerjs';`);
  69. }));
  70. it('should add default theme', () => __awaiter(void 0, void 0, void 0, function* () {
  71. const options = Object.assign({}, defaultOptions);
  72. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  73. const workspace = yield (0, workspace_1.getWorkspace)(tree);
  74. const project = (0, schematics_1.getProjectFromWorkspace)(workspace, defaultOptions.project);
  75. expect((0, schematics_1.getProjectTargetOptions)(project, 'build').styles).toContain('./node_modules/ng-zorro-antd/ng-zorro-antd.min.css');
  76. }));
  77. it('should add custom theme', () => __awaiter(void 0, void 0, void 0, function* () {
  78. const options = Object.assign(Object.assign({}, defaultOptions), { theme: true });
  79. appTree = yield (0, test_app_1.createTestApp)(runner, { style: 'less' });
  80. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  81. const workspace = yield (0, workspace_1.getWorkspace)(tree);
  82. const project = (0, schematics_1.getProjectFromWorkspace)(workspace, defaultOptions.project);
  83. const customThemePath = (0, core_1.normalize)((0, path_1.join)(project.sourceRoot, 'styles.less'));
  84. const buffer = tree.read(customThemePath);
  85. const themeContent = buffer.toString();
  86. expect(themeContent).toContain((0, create_custom_theme_1.createCustomTheme)());
  87. expect((0, schematics_1.getProjectTargetOptions)(project, 'build').styles).toContain('projects/ng-zorro/src/styles.less');
  88. }));
  89. it('should add custom theme file when no LESS file in project', () => __awaiter(void 0, void 0, void 0, function* () {
  90. const options = Object.assign(Object.assign({}, defaultOptions), { theme: true });
  91. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  92. const workspace = yield (0, workspace_1.getWorkspace)(tree);
  93. const project = (0, schematics_1.getProjectFromWorkspace)(workspace, defaultOptions.project);
  94. expect((0, schematics_1.getProjectTargetOptions)(project, 'build').styles).toContain('projects/ng-zorro/src/theme.less');
  95. }));
  96. it('should add icon assets', () => __awaiter(void 0, void 0, void 0, function* () {
  97. const options = Object.assign(Object.assign({}, defaultOptions), { dynamicIcon: true });
  98. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  99. const workspace = yield (0, workspace_1.getWorkspace)(tree);
  100. const project = (0, schematics_1.getProjectFromWorkspace)(workspace, defaultOptions.project);
  101. const assets = (0, schematics_1.getProjectTargetOptions)(project, 'build').assets;
  102. const assetsString = JSON.stringify(assets);
  103. const iconPathSegment = '@ant-design/icons-angular';
  104. expect(assetsString).toContain(iconPathSegment);
  105. }));
  106. it('should required modules and providers', () => __awaiter(void 0, void 0, void 0, function* () {
  107. const options = Object.assign({}, defaultOptions);
  108. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  109. const fileContent = (0, get_file_content_1.getFileContent)(tree, '/projects/ng-zorro/src/app/app.config.ts');
  110. expect(fileContent).toContain('provideHttpClient()');
  111. expect(fileContent).toContain('FormsModule');
  112. }));
  113. it('should add provideAnimationsAsync() call function if animations is enable', () => __awaiter(void 0, void 0, void 0, function* () {
  114. const options = Object.assign(Object.assign({}, defaultOptions), { animations: true });
  115. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  116. const fileContent = (0, get_file_content_1.getFileContent)(tree, '/projects/ng-zorro/src/app/app.config.ts');
  117. expect(fileContent).toContain('provideAnimationsAsync()');
  118. }));
  119. it(`should add provideAnimationsAsync('noop') function call if animations is disable`, () => __awaiter(void 0, void 0, void 0, function* () {
  120. const options = Object.assign(Object.assign({}, defaultOptions), { animations: false });
  121. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  122. const fileContent = (0, get_file_content_1.getFileContent)(tree, '/projects/ng-zorro/src/app/app.config.ts');
  123. expect(fileContent).toContain(`provideAnimationsAsync('noop')`);
  124. }));
  125. it('should register default locale id', () => __awaiter(void 0, void 0, void 0, function* () {
  126. const options = Object.assign({}, defaultOptions);
  127. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  128. const fileContent = (0, get_file_content_1.getFileContent)(tree, '/projects/ng-zorro/src/app/app.config.ts');
  129. expect(fileContent).toContain('provideNzI18n(en_US)');
  130. expect(fileContent).toContain('registerLocaleData(en)');
  131. }));
  132. it('should register specified locale id', () => __awaiter(void 0, void 0, void 0, function* () {
  133. const options = Object.assign(Object.assign({}, defaultOptions), { locale: 'zh_CN' });
  134. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  135. const fileContent = (0, get_file_content_1.getFileContent)(tree, '/projects/ng-zorro/src/app/app.config.ts');
  136. expect(fileContent).toContain('provideNzI18n(zh_CN)');
  137. expect(fileContent).toContain('registerLocaleData(zh)');
  138. }));
  139. /**
  140. * Test skip because it seems that it's not possible anymore to call the runSchematics method twice in the same test.
  141. * error: getStart of undefined
  142. */
  143. xit('should not add locale id if locale id is set up', () => __awaiter(void 0, void 0, void 0, function* () {
  144. const options = Object.assign(Object.assign({}, defaultOptions), { i18n: 'zh_CN' });
  145. yield runner.runSchematic('ng-add-setup-project', Object.assign({}, defaultOptions), appTree);
  146. spyOn(console, 'log');
  147. const tree = yield runner.runSchematic('ng-add-setup-project', options, appTree);
  148. const fileContent = (0, get_file_content_1.getFileContent)(tree, '/projects/ng-zorro/src/app/app.config.ts');
  149. expect(fileContent).toContain('provideNzI18n(en_US)');
  150. expect(fileContent).toContain('registerLocaleData(en)');
  151. expect(fileContent).not.toContain('provideNzI18n(zh_CN)');
  152. expect(fileContent).not.toContain('registerLocaleData(zh)');
  153. expect(console.log).toHaveBeenCalledWith(jasmine.stringMatching(/Could not add the registerLocaleData to file/));
  154. }));
  155. });
  156. //# sourceMappingURL=standalone.spec.js.map