generator-jhipster 7.4.1 → 7.5.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 (162) hide show
  1. package/generators/app/index.js +11 -1
  2. package/generators/cleanup.js +27 -171
  3. package/generators/client/files-angular.js +6 -1
  4. package/generators/client/files-vue.js +5 -1
  5. package/generators/client/index.js +2 -1
  6. package/generators/client/templates/angular/angular.json.ejs +5 -0
  7. package/generators/client/templates/angular/jest.conf.js.ejs +2 -0
  8. package/generators/client/templates/angular/package.json +24 -24
  9. package/generators/client/templates/angular/package.json.ejs +3 -1
  10. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.ts.ejs +4 -4
  11. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
  12. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +4 -4
  13. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +4 -4
  14. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +10 -9
  15. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
  16. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +8 -6
  17. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +4 -4
  18. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +4 -4
  19. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +4 -4
  20. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +8 -8
  21. package/generators/client/templates/angular/src/main/webapp/app/app-routing.module.ts.ejs +14 -3
  22. package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +8 -29
  23. package/generators/client/templates/angular/src/main/webapp/app/config/datepicker-adapter.ts.ejs +1 -1
  24. package/generators/client/templates/angular/src/main/webapp/app/config/dayjs.ts.ejs +4 -4
  25. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +14 -9
  26. package/generators/client/templates/angular/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +6 -6
  27. package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
  28. package/generators/client/templates/angular/src/main/webapp/app/entities/entity-navbar-items.ts.ejs +29 -0
  29. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +14 -4
  30. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
  31. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +20 -0
  32. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +10 -4
  33. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +41 -2
  34. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +3 -2
  35. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +4 -4
  36. package/generators/client/templates/angular/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +4 -4
  37. package/generators/client/templates/angular/src/main/webapp/app/shared/date/duration.pipe.ts.ejs +1 -1
  38. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.spec.ts.ejs +1 -1
  39. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.ts.ejs +1 -1
  40. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.spec.ts.ejs +1 -1
  41. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.ts.ejs +1 -1
  42. package/generators/client/templates/angular/src/main/webapp/app/shared/language/translate.directive.ts.ejs +6 -6
  43. package/generators/client/templates/angular/src/main/webapp/app/shared/language/translation.module.ts.ejs +83 -0
  44. package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +16 -2
  45. package/generators/client/templates/angular/tsconfig.json.ejs +2 -0
  46. package/generators/client/templates/angular/tsconfig.spec.json.ejs +0 -1
  47. package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +0 -2
  48. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +0 -16
  49. package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +12 -5
  50. package/generators/client/templates/common/package.json +2 -2
  51. package/generators/client/templates/common/src/main/webapp/robots.txt.ejs +0 -1
  52. package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +86 -56
  53. package/generators/client/templates/react/package.json +27 -27
  54. package/generators/client/templates/react/package.json.ejs +2 -0
  55. package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +3 -2
  56. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.scss.ejs +9 -0
  57. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
  58. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -1
  59. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +0 -2
  60. package/generators/client/templates/vue/package.json +22 -22
  61. package/generators/client/templates/vue/package.json.ejs +3 -3
  62. package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +19 -9
  63. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +6 -0
  64. package/generators/client/templates/vue/src/main/webapp/app/entities/user/{user.oauth2.service.ts.ejs → user.service.ts.ejs} +1 -1
  65. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +0 -8
  66. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +4 -4
  67. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +2 -2
  68. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +0 -2
  69. package/generators/common/templates/README.md.jhi.ejs +1 -3
  70. package/generators/common/templates/package.json +3 -3
  71. package/generators/cypress/templates/cypress.json.ejs +9 -2
  72. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +3 -14
  73. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +33 -39
  74. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +52 -62
  75. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +2 -10
  76. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +25 -34
  77. package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -22
  78. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +38 -6
  79. package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -6
  80. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +7 -7
  81. package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +0 -9
  82. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +1 -1
  83. package/generators/entity/index.js +45 -3
  84. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +1 -1
  85. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +1 -1
  86. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -35
  87. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  88. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +4 -4
  89. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +8 -8
  90. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +1 -1
  91. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +8 -8
  92. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +8 -8
  93. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +8 -8
  94. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +15 -6
  95. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +1 -1
  96. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +1 -1
  97. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +12 -5
  98. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +5 -5
  99. package/generators/entity-client/templates/angular/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
  100. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +14 -37
  101. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +5 -4
  102. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +23 -19
  103. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +4 -6
  104. package/generators/entity-server/files.js +10 -0
  105. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +2 -2
  106. package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
  107. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +5 -8
  108. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +18 -2
  109. package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +24 -0
  110. package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +4 -6
  111. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +2 -2
  112. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +2 -2
  113. package/generators/generator-base-private.js +2 -1
  114. package/generators/generator-base.js +13 -3
  115. package/generators/generator-constants.js +7 -7
  116. package/generators/server/__snapshots__/generator.spec.mjs.snap +16 -15
  117. package/generators/server/cleanup.js +151 -0
  118. package/generators/server/files.js +16 -14
  119. package/generators/server/index.js +34 -23
  120. package/generators/server/templates/build.gradle.ejs +214 -188
  121. package/generators/server/templates/gradle.properties.ejs +8 -8
  122. package/generators/server/templates/npmw +7 -5
  123. package/generators/server/templates/npmw.cmd +12 -7
  124. package/generators/server/templates/pom.xml.ejs +419 -329
  125. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -2
  126. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +3 -2
  127. package/generators/server/templates/src/main/java/package/config/OpenApiConfiguration.java.ejs +17 -54
  128. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +5 -5
  129. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +3 -5
  130. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -2
  131. package/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs +19 -9
  132. package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +2 -2
  133. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -2
  134. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +6 -4
  135. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +2 -2
  136. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +3 -3
  137. package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +6 -6
  138. package/generators/server/templates/src/main/java/package/web/filter/ModifyServersOpenApiFilter.java.ejs +3 -2
  139. package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.java.ejs +1 -1
  140. package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
  141. package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +2 -2
  142. package/generators/server/templates/src/main/resources/config/application.yml.ejs +17 -3
  143. package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +1 -2
  144. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +2 -6
  145. package/generators/server/templates/src/test/java/package/cucumber/CucumberTestContextConfiguration.java.ejs +2 -3
  146. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +41 -6
  147. package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +7 -7
  148. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +10 -10
  149. package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +1 -1
  150. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +1 -1
  151. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +2 -3
  152. package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +9 -0
  153. package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +2 -0
  154. package/generators/server/templates/src/test/resources/logback.xml.ejs +1 -1
  155. package/generators/server/templates/src/test/{features → resources/package/features}/gitkeep +0 -0
  156. package/generators/server/templates/src/test/{features → resources/package/features}/user/user.feature.ejs +0 -0
  157. package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +1 -1
  158. package/package.json +9 -9
  159. package/utils/entity.js +1 -5
  160. package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +0 -91
  161. package/generators/server/templates/src/test/java/package/config/apidocs/GatewaySwaggerResourcesProviderTest.java.ejs +0 -79
  162. package/generators/server/templates/src/test/resources/cucumber.properties.ejs +0 -1
@@ -250,15 +250,25 @@ module.exports = class JHipsterAppGenerator extends BaseBlueprintGenerator {
250
250
  });
251
251
 
252
252
  this.option('microfrontend', {
253
- desc: 'Use experimental microfrontend support',
253
+ desc: 'Force generation of experimental microfrontend support',
254
254
  type: Boolean,
255
255
  });
256
256
 
257
+ this.option('test-frameworks', {
258
+ desc: 'Test frameworks to be generated',
259
+ type: Array,
260
+ });
261
+
257
262
  this.option('reactive', {
258
263
  desc: 'Generate a reactive backend',
259
264
  type: Boolean,
260
265
  });
261
266
 
267
+ this.option('enable-swagger-codegen', {
268
+ desc: 'API first development using OpenAPI-generator',
269
+ type: Boolean,
270
+ });
271
+
262
272
  // Just constructing help, stop here
263
273
  if (this.options.help) {
264
274
  return;
@@ -19,6 +19,7 @@
19
19
 
20
20
  const constants = require('./generator-constants');
21
21
  const { languageSnakeCase, languageToJavaLanguage } = require('./utils');
22
+ const { cleanupOldServerFiles } = require('./server/cleanup');
22
23
 
23
24
  const { CLIENT_MAIN_SRC_DIR, CLIENT_TEST_SRC_DIR, SERVER_MAIN_RES_DIR, ANGULAR_DIR, REACT_DIR, VUE_DIR, CLIENT_WEBPACK_DIR } = constants;
24
25
 
@@ -46,6 +47,15 @@ function cleanupOldFiles(generator) {
46
47
  generator.removeFile(`${ANGULAR_DIR}components/form/uib-pager.config.js`);
47
48
  generator.removeFile(`${ANGULAR_DIR}components/form/uib-pagination.config.js`);
48
49
  }
50
+ if (generator.isJhipsterVersionLessThan('3.11.0')) {
51
+ generator.removeFile(`${CLIENT_MAIN_SRC_DIR}app/layouts/navbar/active-link.directive.js`);
52
+ }
53
+ if (generator.isJhipsterVersionLessThan('4.11.1')) {
54
+ generator.removeFile(`${CLIENT_MAIN_SRC_DIR}app/app.main-aot.ts`);
55
+ }
56
+ if (generator.isJhipsterVersionLessThan('4.13.1')) {
57
+ generator.config.delete('hibernateCache');
58
+ }
49
59
  if (generator.isJhipsterVersionLessThan('5.0.0')) {
50
60
  generator.removeFile(`${ANGULAR_DIR}/app.route.ts`);
51
61
  generator.removeFile(`${ANGULAR_DIR}shared/auth/account.service.ts`);
@@ -77,6 +87,22 @@ function cleanupOldFiles(generator) {
77
87
  generator.removeFile(`${ANGULAR_DIR}admin/metrics/metrics-modal.component.ts`);
78
88
  generator.removeFile(`${CLIENT_TEST_SRC_DIR}spec/app/admin/metrics/metrics-modal.component.spec.ts`);
79
89
  }
90
+ if (
91
+ generator.isJhipsterVersionLessThan('5.2.2') &&
92
+ generator.authenticationType === 'oauth2' &&
93
+ generator.applicationType === 'microservice'
94
+ ) {
95
+ generator.removeFolder(`${constants.DOCKER_DIR}realm-config`);
96
+ generator.removeFile(`${constants.DOCKER_DIR}keycloak.yml`);
97
+ }
98
+ if (generator.isJhipsterVersionLessThan('6.0.0')) {
99
+ generator.removeFolder(`${CLIENT_MAIN_SRC_DIR}app/shared/layout/header/menus`);
100
+ generator.removeFolder(`${CLIENT_TEST_SRC_DIR}spec/app/shared/layout/header/menus`);
101
+ }
102
+ if (generator.isJhipsterVersionLessThan('6.1.0')) {
103
+ generator.config.delete('blueprint');
104
+ generator.config.delete('blueprintVersion');
105
+ }
80
106
  if (generator.isJhipsterVersionLessThan('6.3.0') && generator.jhipsterConfig.clientFramework === ANGULAR) {
81
107
  generator.removeFile(`${ANGULAR_DIR}account/index.ts`);
82
108
  generator.removeFile(`${ANGULAR_DIR}admin/index.ts`);
@@ -86,24 +112,19 @@ function cleanupOldFiles(generator) {
86
112
  generator.removeFile(`${ANGULAR_DIR}shared/index.ts`);
87
113
  generator.removeFile(`${ANGULAR_DIR}shared/shared-common.module.ts`);
88
114
  }
89
-
90
115
  if (generator.isJhipsterVersionLessThan('6.3.0') && generator.jhipsterConfig.clientFramework === REACT) {
91
116
  generator.removeFile('tslint.json');
92
117
  }
93
-
94
118
  if (generator.isJhipsterVersionLessThan('6.4.0') && generator.jhipsterConfig.clientFramework === ANGULAR) {
95
119
  generator.removeFile(`${ANGULAR_DIR}admin/admin.route.ts`);
96
120
  generator.removeFile(`${ANGULAR_DIR}admin/admin.module.ts`);
97
121
  }
98
-
99
122
  if (generator.isJhipsterVersionLessThan('6.6.1') && generator.jhipsterConfig.clientFramework === ANGULAR) {
100
123
  generator.removeFile(`${ANGULAR_DIR}core/language/language.helper.ts`);
101
124
  }
102
-
103
- if (generator.isJhipsterVersionLessThan('6.8.0') && generator.jhipsterConfig.clientFramework === 'angularX') {
125
+ if (generator.isJhipsterVersionLessThan('6.8.0') && generator.jhipsterConfig.clientFramework === ANGULAR) {
104
126
  generator.removeFile(`${ANGULAR_DIR}tsconfig-aot.json`);
105
127
  }
106
-
107
128
  if (generator.isJhipsterVersionLessThan('7.0.0-beta.0') && generator.jhipsterConfig) {
108
129
  if (generator.jhipsterConfig.clientFramework === ANGULAR) {
109
130
  generator.removeFile(`${ANGULAR_DIR}account/password/password-strength-bar.component.ts`);
@@ -324,171 +345,6 @@ function cleanupOldFiles(generator) {
324
345
  }
325
346
  }
326
347
 
327
- /**
328
- * Removes server files that where generated in previous JHipster versions and therefore
329
- * need to be removed.
330
- *
331
- * @param {any} generator - reference to generator
332
- * @param {string} javaDir - Java directory
333
- * @param {string} testDir - Java tests directory
334
- * @param {string} mainResourceDir - Main resources directory
335
- * @param {string} testResourceDir - Test resources directory
336
- */
337
- function cleanupOldServerFiles(generator, javaDir, testDir, mainResourceDir, testResourceDir) {
338
- if (generator.isJhipsterVersionLessThan('3.5.0')) {
339
- generator.removeFile(`${javaDir}domain/util/JSR310DateTimeSerializer.java`);
340
- generator.removeFile(`${javaDir}domain/util/JSR310LocalDateDeserializer.java`);
341
- }
342
- if (generator.isJhipsterVersionLessThan('3.6.0')) {
343
- generator.removeFile(`${javaDir}config/HerokuDatabaseConfiguration.java`);
344
- }
345
- if (generator.isJhipsterVersionLessThan('3.10.0')) {
346
- generator.removeFile(`${javaDir}config/CloudMongoDbConfiguration.java`);
347
- generator.removeFile(`${javaDir}security/CustomAccessDeniedHandler.java`);
348
- generator.removeFile(`${javaDir}web/filter/CsrfCookieGeneratorFilter.java`);
349
- }
350
- if (generator.isJhipsterVersionLessThan('3.11.0')) {
351
- generator.removeFile(`${CLIENT_MAIN_SRC_DIR}app/layouts/navbar/active-link.directive.js`);
352
- }
353
- if (generator.isJhipsterVersionLessThan('3.12.0')) {
354
- generator.removeFile(`${javaDir}config/hazelcast/HazelcastCacheRegionFactory.java`);
355
- generator.removeFile(`${javaDir}config/hazelcast/package-info.java`);
356
- }
357
- if (generator.isJhipsterVersionLessThan('4.0.0')) {
358
- generator.removeFile(`${javaDir}async/ExceptionHandlingAsyncTaskExecutor.java`);
359
- generator.removeFile(`${javaDir}async/package-info.java`);
360
- generator.removeFile(`${javaDir}config/jHipsterProperties.java`);
361
- generator.removeFile(`${javaDir}config/LoadBalancedResourceDetails.java`);
362
- generator.removeFile(`${javaDir}config/ElasticSearchConfiguration.java`);
363
- generator.removeFile(`${javaDir}config/apidoc/package-info.java`);
364
- generator.removeFile(`${javaDir}config/apidoc/PageableParameterBuilderPlugin.java`);
365
- generator.removeFile(`${javaDir}config/apidoc/SwaggerConfiguration.java`);
366
- generator.removeFile(`${javaDir}config/jcache/SpringCacheRegionFactory.java`);
367
- generator.removeFile(`${javaDir}config/jcache/SpringCacheRegionFactory.java`);
368
- generator.removeFile(`${javaDir}config/liquibase/AsyncSpringLiquibase.java`);
369
- generator.removeFile(`${javaDir}config/liquibase/package-info.java`);
370
- generator.removeFile(`${javaDir}config/locale/AngularCookieLocaleResolver.java`);
371
- generator.removeFile(`${javaDir}config/locale/package-info.java`);
372
- generator.removeFile(`${javaDir}domain/util/FixedH2Dialect.java`);
373
- generator.removeFile(`${javaDir}domain/util/FixedPostgreSQL82Dialect`);
374
- generator.removeFile(`${javaDir}domain/util/JSR310DateConverters.java`);
375
- generator.removeFile(`${javaDir}domain/util/JSR310PersistenceConverters.java`);
376
- generator.removeFile(`${javaDir}security/AjaxAuthenticationFailureHandler.java`);
377
- generator.removeFile(`${javaDir}security/AjaxAuthenticationSuccessHandler.java`);
378
- generator.removeFile(`${javaDir}security/AjaxLogoutSuccessHandler.java`);
379
- generator.removeFile(`${javaDir}security/CustomPersistentRememberMeServices.java`);
380
- generator.removeFile(`${javaDir}security/Http401UnauthorizedEntryPoint.java`);
381
- generator.removeFile(`${javaDir}security/UserDetailsService.java`);
382
- generator.removeFile(`${javaDir}web/filter/CachingHttpHeadersFilter.java`);
383
- generator.removeFile(`${javaDir}web/filter/package-info.java`);
384
- }
385
- if (generator.isJhipsterVersionLessThan('4.3.0')) {
386
- generator.removeFile(`${javaDir}gateway/ratelimiting/RateLimitingRepository.java`);
387
- generator.removeFile(`${javaDir}config/cassandra/CustomZonedDateTimeCodec.java`);
388
- }
389
- if (generator.isJhipsterVersionLessThan('4.7.1')) {
390
- generator.removeFile(`${javaDir}web/rest/errors/ErrorVM.java`);
391
- generator.removeFile(`${javaDir}web/rest/errors/ParameterizedErrorVM.java`);
392
- }
393
- if (generator.isJhipsterVersionLessThan('4.11.1')) {
394
- generator.removeFile(`${CLIENT_MAIN_SRC_DIR}app/app.main-aot.ts`);
395
- }
396
- if (generator.isJhipsterVersionLessThan('4.13.1')) {
397
- generator.config.delete('hibernateCache');
398
- }
399
- if (generator.isJhipsterVersionLessThan('5.0.0')) {
400
- generator.removeFile(`${javaDir}config/ThymeleafConfiguration.java`);
401
- generator.removeFile(`${javaDir}web/rest/ProfileInfoResource.java`);
402
- generator.removeFile(`${mainResourceDir}mails/activationEmail.html`);
403
- generator.removeFile(`${mainResourceDir}mails/creationEmail.html`);
404
- generator.removeFile(`${mainResourceDir}mails/passwordResetEmail.html`);
405
- generator.removeFile(`${mainResourceDir}mails/socialRegistrationValidationEmail.html`);
406
- generator.removeFile(`${testResourceDir}mail/testEmail.html`);
407
- generator.removeFile(`${testDir}web/rest/ProfileInfoResourceIT.java`);
408
- generator.removeFile('gradle/mapstruct.gradle');
409
- }
410
- if (generator.isJhipsterVersionLessThan('5.2.2')) {
411
- generator.removeFile(`${javaDir}config/ElasticsearchConfiguration.java`);
412
- generator.removeFile('gradle/liquibase.gradle');
413
-
414
- if (generator.authenticationType === 'oauth2' && generator.applicationType === 'microservice') {
415
- generator.removeFolder(`${constants.DOCKER_DIR}realm-config`);
416
- generator.removeFile(`${constants.DOCKER_DIR}keycloak.yml`);
417
- }
418
- }
419
- if (generator.isJhipsterVersionLessThan('5.8.0')) {
420
- generator.removeFile(`${javaDir}config/MetricsConfiguration.java`);
421
- if (generator.databaseType === 'cassandra') {
422
- generator.removeFile(`${testResourceDir}cassandra-random-port.yml`);
423
- }
424
- }
425
- if (generator.isJhipsterVersionLessThan('6.0.0')) {
426
- generator.removeFile(`${javaDir}web/rest/errors/CustomParameterizedException.java`);
427
- generator.removeFile(`${javaDir}web/rest/errors/InternalServerErrorException.java`);
428
- generator.removeFile(`${javaDir}web/rest/util/PaginationUtil.java`);
429
- generator.removeFile(`${javaDir}web/rest/util/HeaderUtil.java`);
430
- generator.removeFile(`${testDir}web/rest/util/PaginationUtilUnitTest.java`);
431
- generator.removeFile(`${javaDir}web/rest/vm/LoggerVM.java`);
432
- generator.removeFile(`${javaDir}web/rest/LogsResource.java`);
433
- generator.removeFile(`${testDir}web/rest/LogsResourceIT.java`);
434
- generator.removeFile(`${javaDir}config/OAuth2Configuration.java`);
435
- generator.removeFile(`${javaDir}security/OAuth2AuthenticationSuccessHandler.java`);
436
-
437
- generator.removeFolder(`${CLIENT_MAIN_SRC_DIR}app/shared/layout/header/menus`);
438
- generator.removeFolder(`${CLIENT_TEST_SRC_DIR}spec/app/shared/layout/header/menus`);
439
- }
440
- if (generator.isJhipsterVersionLessThan('6.1.0')) {
441
- generator.config.delete('blueprint');
442
- generator.config.delete('blueprintVersion');
443
- }
444
- if (generator.isJhipsterVersionLessThan('6.5.2')) {
445
- generator.removeFile(`${testDir}service/mapper/UserMapperIT.java`);
446
- generator.removeFile(`${javaDir}service/${generator.upperFirstCamelCase(generator.baseName)}KafkaConsumer.java`);
447
- generator.removeFile(`${javaDir}service/${generator.upperFirstCamelCase(generator.baseName)}KafkaProducer.java`);
448
- generator.removeFile(`${testDir}web/rest/ClientForwardControllerIT.java`);
449
- }
450
- if (generator.isJhipsterVersionLessThan('6.6.1')) {
451
- generator.removeFile(`${javaDir}web/rest/errors/EmailNotFoundException.java`);
452
- generator.removeFile(`${javaDir}config/DefaultProfileUtil.java`);
453
- generator.removeFolder(`${javaDir}service/util`);
454
- }
455
- if (generator.isJhipsterVersionLessThan('6.8.0')) {
456
- generator.removeFile(`${javaDir}security/oauth2/JwtAuthorityExtractor.java`);
457
- }
458
- if (generator.isJhipsterVersionLessThan('6.8.1')) {
459
- generator.removeFile(`${javaDir}config/ReactivePageableHandlerMethodArgumentResolver.java`);
460
- generator.removeFile(`${javaDir}config/ReactiveSortHandlerMethodArgumentResolver.java`);
461
- }
462
- if (generator.isJhipsterVersionLessThan('7.0.0-beta.0')) {
463
- generator.removeFile(`${javaDir}config/apidoc/SwaggerConfiguration.java`);
464
- generator.removeFile(`${javaDir}config/audit/package-info.java`);
465
- generator.removeFile(`${javaDir}config/audit/AuditEventConverter.java`);
466
- generator.removeFile(`${javaDir}domain/PersistentAuditEvent.java`);
467
- generator.removeFile(`${javaDir}repository/PersistenceAuditEventRepository.java`);
468
- generator.removeFile(`${javaDir}repository/CustomAuditEventRepository.java`);
469
- generator.removeFile(`${javaDir}service/AuditEventService.java`);
470
- generator.removeFile(`${javaDir}web/rest/AuditResource.java`);
471
- generator.removeFile(`${testDir}service/AuditEventServiceIT.java`);
472
- generator.removeFile(`${testDir}web/rest/AuditResourceIT.java`);
473
- generator.removeFile(`${testDir}repository/CustomAuditEventRepositoryIT.java`);
474
-
475
- if (generator.databaseType === 'cassandra') {
476
- generator.removeFile(`${javaDir}config/metrics/package-info.java`);
477
- generator.removeFile(`${javaDir}config/metrics/CassandraHealthIndicator.java`);
478
- generator.removeFile(`${javaDir}config/metrics/JHipsterHealthIndicatorConfiguration.java`);
479
- generator.removeFile(`${javaDir}config/cassandra/package-info.java`);
480
- generator.removeFile(`${javaDir}config/cassandra/CassandraConfiguration.java`);
481
- generator.removeFile(`${testDir}config/CassandraConfigurationIT.java`);
482
- }
483
- if (generator.searchEngine === 'elasticsearch') {
484
- generator.removeFile(`${testDir}config/ElasticsearchTestConfiguration.java`);
485
- }
486
- }
487
- if (generator.isJhipsterVersionLessThan('7.0.0-beta.1')) {
488
- generator.removeFile(`${javaDir}config/CloudDatabaseConfiguration.java`);
489
- }
490
- }
491
-
492
348
  /**
493
349
  * Upgrade files.
494
350
  *
@@ -74,6 +74,7 @@ const files = {
74
74
  path: ANGULAR_DIR,
75
75
  templates: [
76
76
  // entities
77
+ 'entities/entity-navbar-items.ts',
77
78
  'entities/entity-routing.module.ts',
78
79
  // home module
79
80
  'home/home.module.ts',
@@ -382,7 +383,11 @@ const files = {
382
383
  {
383
384
  condition: generator => generator.enableTranslation,
384
385
  path: ANGULAR_DIR,
385
- templates: ['shared/language/find-language-from-key.pipe.ts', 'shared/language/translate.directive.ts'],
386
+ templates: [
387
+ 'shared/language/translation.module.ts',
388
+ 'shared/language/find-language-from-key.pipe.ts',
389
+ 'shared/language/translate.directive.ts',
390
+ ],
386
391
  },
387
392
  ],
388
393
  angularAuthService: [
@@ -248,7 +248,7 @@ const vueFiles = {
248
248
  {
249
249
  condition: generator => !generator.skipUserManagement || generator.authenticationType === OAUTH2,
250
250
  path: VUE_DIR,
251
- templates: ['entities/user/user.oauth2.service.ts'],
251
+ templates: ['entities/user/user.service.ts'],
252
252
  },
253
253
  ],
254
254
  clientTestConfig: [
@@ -368,6 +368,10 @@ function cleanup() {
368
368
  this.removeFile('webpack/utils.js');
369
369
  this.removeFile('webpack/loader.conf.js');
370
370
  }
371
+
372
+ if (this.isJhipsterVersionLessThan('7.4.2')) {
373
+ this.removeFile(`${VUE_DIR}entities/user/user.oauth2.service.ts`);
374
+ }
371
375
  }
372
376
 
373
377
  function writeFiles() {
@@ -391,7 +391,8 @@ module.exports = class JHipsterClientGenerator extends BaseBlueprintGenerator {
391
391
  microfrontend() {
392
392
  if (!this.microfrontend) return;
393
393
  if (this.clientFrameworkAngular) {
394
- this.addWebpackConfig("require('./webpack.microfrontend')(config, options, targetOptions)");
394
+ const conditional = this.applicationTypeMicroservice ? "targetOptions.target === 'serve' ? {} : " : '';
395
+ this.addWebpackConfig(`${conditional}require('./webpack.microfrontend')(config, options, targetOptions)`);
395
396
  } else if (this.clientFrameworkVue) {
396
397
  this.addWebpackConfig("require('./webpack.microfrontend')({ serve: options.env.WEBPACK_SERVE })");
397
398
  } else {
@@ -126,6 +126,11 @@
126
126
  },
127
127
  "defaultProject": "<%= dasherizedBaseName %>",
128
128
  "cli": {
129
+ "cache": {
130
+ "enabled": true,
131
+ "path": "./<%= BUILD_DIR %>",
132
+ "environment": "all"
133
+ },
129
134
  "packageManager": "<%= clientPackageManager %>"
130
135
  }
131
136
  }
@@ -22,6 +22,8 @@ const { compilerOptions: { paths = {}, baseUrl = './' } } = require('./tsconfig.
22
22
  const environment = require('./webpack/environment');
23
23
 
24
24
  module.exports = {
25
+ transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$|dayjs/esm)'],
26
+ resolver: 'jest-preset-angular/build/resolvers/ng-jest-resolver.js',
25
27
  globals: {
26
28
  ...environment,
27
29
  },
@@ -1,48 +1,48 @@
1
1
  {
2
2
  "dependencies": {
3
- "@angular/common": "12.2.12",
3
+ "@angular/common": "13.1.1",
4
4
  "bootstrap": "4.6.1",
5
- "@fortawesome/angular-fontawesome": "0.9.0",
5
+ "@fortawesome/angular-fontawesome": "0.10.1",
6
6
  "@fortawesome/fontawesome-svg-core": "1.2.36",
7
7
  "@fortawesome/free-solid-svg-icons": "5.15.4",
8
- "@ng-bootstrap/ng-bootstrap": "10.0.0",
9
- "@ngx-translate/core": "13.0.0",
10
- "@ngx-translate/http-loader": "6.0.0",
11
- "ngx-cookie-service": "12.0.3",
8
+ "@ng-bootstrap/ng-bootstrap": "11.0.0",
9
+ "@ngx-translate/core": "14.0.0",
10
+ "@ngx-translate/http-loader": "7.0.0",
11
+ "ngx-cookie-service": "13.1.2",
12
12
  "ngx-infinite-scroll": "10.0.1",
13
- "ngx-webstorage": "8.0.0",
14
- "rxjs": "6.6.7",
15
- "swagger-ui-dist": "4.1.2",
13
+ "ngx-webstorage": "9.0.0",
14
+ "rxjs": "7.5.1",
15
+ "swagger-ui-dist": "4.1.3",
16
16
  "tslib": "2.3.1",
17
17
  "zone.js": "0.11.4"
18
18
  },
19
19
  "devDependencies": {
20
- "@angular/cli": "12.2.12",
21
- "@angular-builders/custom-webpack": "12.1.3",
22
- "@angular-builders/jest": "12.1.2",
23
- "@angular-eslint/eslint-plugin": "12.7.0",
24
- "@types/node": "16.11.11",
25
- "@types/jest": "27.0.3",
26
- "@typescript-eslint/eslint-plugin": "5.5.0",
20
+ "@angular/cli": "13.1.2",
21
+ "@angular-builders/custom-webpack": "13.0.0",
22
+ "@angular-builders/jest": "13.0.2",
23
+ "@angular-eslint/eslint-plugin": "13.0.1",
24
+ "@types/node": "16.11.17",
25
+ "@types/jest": "27.4.0",
26
+ "@typescript-eslint/eslint-plugin": "5.8.1",
27
27
  "browser-sync": "2.27.7",
28
28
  "browser-sync-webpack-plugin": "2.3.0",
29
- "copy-webpack-plugin": "10.0.0",
30
- "eslint": "7.32.0",
29
+ "copy-webpack-plugin": "10.2.0",
30
+ "eslint": "8.5.0",
31
31
  "eslint-config-prettier": "8.3.0",
32
32
  "eslint-webpack-plugin": "3.1.1",
33
33
  "folder-hash": "4.0.1",
34
- "jest": "27.4.3",
35
- "jest-preset-angular": "10.1.0",
34
+ "jest": "27.4.5",
35
+ "jest-preset-angular": "11.0.1",
36
36
  "jest-date-mock": "1.0.8",
37
37
  "jest-junit": "13.0.0",
38
38
  "jest-sonar-reporter": "2.0.0",
39
39
  "merge-jsons-webpack-plugin": "2.0.1",
40
40
  "rimraf": "3.0.2",
41
- "ts-jest": "27.0.7",
42
- "typescript": "4.3.5",
43
- "webpack": "5.50.0",
41
+ "ts-jest": "27.1.2",
42
+ "typescript": "4.5.4",
43
+ "webpack": "5.65.0",
44
44
  "webpack-bundle-analyzer": "4.5.0",
45
45
  "webpack-merge": "5.8.0",
46
- "webpack-notifier": "1.14.1"
46
+ "webpack-notifier": "1.15.0"
47
47
  }
48
48
  }
@@ -125,11 +125,13 @@
125
125
  "rimraf": "<%= dependabotPackageJson.devDependencies['rimraf'] %>",
126
126
  "ts-jest": "<%= dependabotPackageJson.devDependencies['ts-jest'] %>",
127
127
  "typescript": "<%= dependabotPackageJson.devDependencies['typescript'] %>",
128
- "webpack": "<%= dependabotPackageJson.devDependencies['webpack'] %>",
129
128
  "webpack-bundle-analyzer": "<%= dependabotPackageJson.devDependencies['webpack-bundle-analyzer'] %>",
130
129
  "webpack-merge": "<%= dependabotPackageJson.devDependencies['webpack-merge'] %>",
131
130
  "webpack-notifier": "<%= dependabotPackageJson.devDependencies['webpack-notifier'] %>"
132
131
  },
132
+ "overrides": {
133
+ "webpack": "<%= dependabotPackageJson.devDependencies['webpack'] %>"
134
+ },
133
135
  "engines": {
134
136
  "node": ">=<%= NODE_VERSION %>"
135
137
  },
@@ -33,9 +33,9 @@ export class ActivateComponent implements OnInit {
33
33
  constructor(private activateService: ActivateService, private route: ActivatedRoute) {}
34
34
 
35
35
  ngOnInit(): void {
36
- this.route.queryParams.pipe(mergeMap(params => this.activateService.get(params.key))).subscribe(
37
- () => this.success = true,
38
- () => this.error = true
39
- );
36
+ this.route.queryParams.pipe(mergeMap(params => this.activateService.get(params.key))).subscribe({
37
+ next: () => this.success = true,
38
+ error: () => this.error = true
39
+ });
40
40
  }
41
41
  }
@@ -33,7 +33,7 @@ export class PasswordStrengthBarComponent {
33
33
  const regex = /[$-/:-?{-~!"^_`[\]]/g; // "
34
34
  const lowerLetters = /[a-z]+/.test(p);
35
35
  const upperLetters = /[A-Z]+/.test(p);
36
- const numbers = /[0-9]+/.test(p);
36
+ const numbers = /\d+/.test(p);
37
37
  const symbols = regex.test(p);
38
38
 
39
39
  const flags = [lowerLetters, upperLetters, numbers, symbols];
@@ -54,10 +54,10 @@ export class PasswordComponent implements OnInit {
54
54
  if (newPassword !== this.passwordForm.get(['confirmPassword'])!.value) {
55
55
  this.doNotMatch = true;
56
56
  } else {
57
- this.passwordService.save(newPassword, this.passwordForm.get(['currentPassword'])!.value).subscribe(
58
- () => this.success = true,
59
- () => this.error = true
60
- );
57
+ this.passwordService.save(newPassword, this.passwordForm.get(['currentPassword'])!.value).subscribe({
58
+ next: () => this.success = true,
59
+ error: () => this.error = true
60
+ });
61
61
  }
62
62
  }
63
63
  }
@@ -68,10 +68,10 @@ export class PasswordResetFinishComponent implements OnInit, AfterViewInit {
68
68
  if (newPassword !== confirmPassword) {
69
69
  this.doNotMatch = true;
70
70
  } else {
71
- this.passwordResetFinishService.save(this.key, newPassword).subscribe(
72
- () => this.success = true,
73
- () => this.error = true
74
- );
71
+ this.passwordResetFinishService.save(this.key, newPassword).subscribe({
72
+ next: () => this.success = true,
73
+ error: () => this.error = true
74
+ });
75
75
  }
76
76
  }
77
77
  }
@@ -16,16 +16,12 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- <%_ if (enableTranslation) { _%>
20
- jest.mock('@ngx-translate/core');
21
- <%_ } _%>
22
-
23
19
  import { ComponentFixture, TestBed, waitForAsync, inject, tick, fakeAsync } from '@angular/core/testing';
24
20
  import { HttpClientTestingModule } from '@angular/common/http/testing';
25
21
  import { FormBuilder } from '@angular/forms';
26
22
  import { of, throwError } from 'rxjs';
27
23
  <%_ if (enableTranslation) { _%>
28
- import { TranslateService } from '@ngx-translate/core';
24
+ import { TranslateModule, TranslateService } from '@ngx-translate/core';
29
25
  <%_ } _%>
30
26
 
31
27
  import { EMAIL_ALREADY_USED_TYPE, LOGIN_ALREADY_USED_TYPE } from 'app/config/error.constants';
@@ -40,9 +36,14 @@ describe('RegisterComponent', () => {
40
36
  beforeEach(
41
37
  waitForAsync(() => {
42
38
  TestBed.configureTestingModule({
43
- imports: [HttpClientTestingModule],
39
+ imports: [
40
+ <%_ if (enableTranslation) { _%>
41
+ TranslateModule.forRoot(),
42
+ <%_ } _%>
43
+ HttpClientTestingModule
44
+ ],
44
45
  declarations: [RegisterComponent],
45
- providers: [FormBuilder<% if (enableTranslation) { %>, TranslateService<% } %>],
46
+ providers: [FormBuilder],
46
47
  })
47
48
  .overrideTemplate(RegisterComponent, '')
48
49
  .compileComponents();
@@ -67,10 +68,10 @@ describe('RegisterComponent', () => {
67
68
 
68
69
  it('should update success to true after creating an account', inject(
69
70
  [RegisterService<% if (enableTranslation) { %>, TranslateService<% } %>],
70
- fakeAsync((service: RegisterService<% if (enableTranslation) { %>, mockLanguageService: TranslateService<% } %>) => {
71
+ fakeAsync((service: RegisterService<% if (enableTranslation) { %>, mockTranslateService: TranslateService<% } %>) => {
71
72
  jest.spyOn(service, 'save').mockReturnValue(of({}));
72
73
  <%_ if (enableTranslation) { _%>
73
- mockLanguageService.currentLang = '<%= nativeLanguage %>';
74
+ mockTranslateService.currentLang = '<%= nativeLanguage %>';
74
75
  <%_ } _%>
75
76
  comp.registerForm.patchValue({
76
77
  password: 'password',
@@ -75,7 +75,7 @@ export class RegisterComponent implements AfterViewInit {
75
75
  const email = this.registerForm.get(['email'])!.value;
76
76
  this.registerService
77
77
  .save({ login, email, password, langKey: <% if (enableTranslation) { %>this.translateService.currentLang<% } else { %>'en'<% } %> })
78
- .subscribe(() => (this.success = true), response => this.processError(response));
78
+ .subscribe({ next: () => (this.success = true), error: response => this.processError(response)});
79
79
  }
80
80
  }
81
81
 
@@ -16,9 +16,6 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- <%_ if (enableTranslation) { _%>
20
- jest.mock('@ngx-translate/core');
21
- <%_ } _%>
22
19
  jest.mock('app/core/auth/account.service');
23
20
 
24
21
  import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
@@ -26,7 +23,7 @@ import { HttpClientTestingModule } from '@angular/common/http/testing';
26
23
  import { FormBuilder } from '@angular/forms';
27
24
  import { throwError, of } from 'rxjs';
28
25
  <%_ if (enableTranslation) { _%>
29
- import { TranslateService } from '@ngx-translate/core';
26
+ import { TranslateModule } from '@ngx-translate/core';
30
27
  <%_ } _%>
31
28
 
32
29
  import { AccountService } from 'app/core/auth/account.service';
@@ -52,9 +49,14 @@ describe('SettingsComponent', () => {
52
49
  beforeEach(
53
50
  waitForAsync(() => {
54
51
  TestBed.configureTestingModule({
55
- imports: [HttpClientTestingModule],
52
+ imports: [
53
+ <%_ if (enableTranslation) { _%>
54
+ TranslateModule.forRoot(),
55
+ <%_ } _%>
56
+ HttpClientTestingModule
57
+ ],
56
58
  declarations: [SettingsComponent],
57
- providers: [FormBuilder<% if (enableTranslation) { %>, TranslateService<% } %>, AccountService],
59
+ providers: [FormBuilder, AccountService],
58
60
  })
59
61
  .overrideTemplate(SettingsComponent, '')
60
62
  .compileComponents();
@@ -45,14 +45,14 @@ export class HealthComponent implements OnInit {
45
45
  }
46
46
 
47
47
  refresh(): void {
48
- this.healthService.checkHealth().subscribe(
49
- health => (this.health = health),
50
- (error: HttpErrorResponse) => {
48
+ this.healthService.checkHealth().subscribe({
49
+ next: health => (this.health = health),
50
+ error: (error: HttpErrorResponse) => {
51
51
  if (error.status === 503) {
52
52
  this.health = error.error;
53
53
  }
54
54
  }
55
- );
55
+ });
56
56
  }
57
57
 
58
58
  showHealth(health: { key: string; value: HealthDetails }): void {
@@ -19,13 +19,13 @@
19
19
  <%_
20
20
  const tsKeyId = generateTestEntityId(user.primaryKey.type);
21
21
  _%>
22
- jest.mock('@angular/router');
23
22
  jest.mock('app/core/auth/account.service');
24
23
 
25
24
  import { ComponentFixture, TestBed, waitForAsync, inject, fakeAsync, tick } from '@angular/core/testing';
26
25
  import { HttpHeaders, HttpResponse } from '@angular/common/http';
27
26
  import { HttpClientTestingModule } from '@angular/common/http/testing';
28
- import { ActivatedRoute, Router } from '@angular/router';
27
+ import { ActivatedRoute } from '@angular/router';
28
+ import { RouterTestingModule } from '@angular/router/testing';
29
29
  import { of } from 'rxjs';
30
30
 
31
31
  import { UserManagementService } from '../service/user-management.service';
@@ -53,9 +53,9 @@ describe('User Management Component', () => {
53
53
  beforeEach(
54
54
  waitForAsync(() => {
55
55
  TestBed.configureTestingModule({
56
- imports: [HttpClientTestingModule],
56
+ imports: [HttpClientTestingModule, RouterTestingModule.withRoutes([])],
57
57
  declarations: [UserManagementComponent],
58
- providers: [Router, { provide: ActivatedRoute, useValue: { data, queryParamMap } }, AccountService],
58
+ providers: [{ provide: ActivatedRoute, useValue: { data, queryParamMap } }, AccountService],
59
59
  })
60
60
  .overrideTemplate(UserManagementComponent, '')
61
61
  .compileComponents();