generator-jhipster 7.3.0 → 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 (340) hide show
  1. package/cli/import-jdl.js +3 -2
  2. package/cli/jhipster-command.js +2 -2
  3. package/cli/program.js +32 -29
  4. package/generators/app/index.js +46 -27
  5. package/generators/aws/index.js +8 -8
  6. package/generators/aws/lib/eb.js +1 -1
  7. package/generators/azure-app-service/index.js +16 -9
  8. package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +2 -2
  9. package/generators/azure-spring-cloud/index.js +16 -9
  10. package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +2 -2
  11. package/generators/bootstrap/index.js +57 -62
  12. package/generators/ci-cd/index.js +11 -8
  13. package/generators/ci-cd/templates/github-actions.yml.ejs +1 -1
  14. package/generators/ci-cd/templates/travis.yml.ejs +9 -4
  15. package/generators/cleanup.js +27 -171
  16. package/generators/client/files-angular.js +12 -1
  17. package/generators/client/files-common.js +6 -2
  18. package/generators/client/files-react.js +13 -2
  19. package/generators/client/files-vue.js +59 -7
  20. package/generators/client/index.js +46 -32
  21. package/generators/client/needle-api/needle-client-angular.js +1 -1
  22. package/generators/client/needle-api/needle-client-vue.js +57 -7
  23. package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
  24. package/generators/client/templates/angular/angular.json.ejs +5 -0
  25. package/generators/client/templates/angular/jest.conf.js.ejs +2 -0
  26. package/generators/client/templates/angular/package.json +29 -29
  27. package/generators/client/templates/angular/package.json.ejs +3 -1
  28. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
  29. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.ts.ejs +4 -4
  30. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
  31. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
  32. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
  33. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.spec.ts.ejs +78 -80
  34. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +4 -4
  35. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
  36. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
  37. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +4 -4
  38. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
  39. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
  40. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
  41. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +122 -123
  42. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
  43. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
  44. package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
  45. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +80 -80
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +4 -4
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
  56. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +89 -91
  57. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +4 -4
  58. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
  59. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +8 -8
  60. package/generators/client/templates/angular/src/main/webapp/app/app-routing.module.ts.ejs +14 -3
  61. package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +8 -29
  62. package/generators/client/templates/angular/src/main/webapp/app/config/datepicker-adapter.ts.ejs +1 -1
  63. package/generators/client/templates/angular/src/main/webapp/app/config/dayjs.ts.ejs +4 -4
  64. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +14 -9
  65. package/generators/client/templates/angular/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +6 -6
  66. package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
  67. package/generators/client/templates/angular/src/main/webapp/app/entities/entity-navbar-items.ts.ejs +29 -0
  68. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +106 -98
  69. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
  70. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
  71. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +20 -0
  72. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +74 -70
  73. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +41 -2
  74. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
  75. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +114 -115
  76. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +4 -4
  77. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
  78. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
  79. package/generators/client/templates/angular/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +4 -4
  80. package/generators/client/templates/angular/src/main/webapp/app/shared/date/duration.pipe.ts.ejs +1 -1
  81. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.spec.ts.ejs +1 -1
  82. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.ts.ejs +1 -1
  83. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.spec.ts.ejs +1 -1
  84. package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.ts.ejs +1 -1
  85. package/generators/client/templates/angular/src/main/webapp/app/shared/language/translate.directive.ts.ejs +6 -6
  86. package/generators/client/templates/angular/src/main/webapp/app/shared/language/translation.module.ts.ejs +83 -0
  87. package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +16 -2
  88. package/generators/client/templates/angular/tsconfig.json.ejs +2 -0
  89. package/generators/client/templates/angular/tsconfig.spec.json.ejs +0 -1
  90. package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +0 -2
  91. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +0 -16
  92. package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +12 -5
  93. package/generators/client/templates/common/package.json +6 -6
  94. package/generators/client/templates/common/src/main/webapp/robots.txt.ejs +0 -1
  95. package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +86 -56
  96. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
  97. package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
  98. package/generators/client/templates/react/package.json +54 -53
  99. package/generators/client/templates/react/package.json.ejs +6 -1
  100. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
  101. package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +3 -2
  102. package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
  103. package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +2 -2
  104. package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
  105. package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
  106. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
  107. package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
  108. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.scss.ejs +9 -0
  109. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +2 -2
  110. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
  111. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
  112. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
  113. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -1
  114. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +17 -3
  115. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +13 -1
  116. package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
  117. package/generators/client/templates/vue/package.json +40 -49
  118. package/generators/client/templates/vue/package.json.ejs +13 -17
  119. package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +23 -12
  120. package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
  121. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
  122. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
  123. package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +16 -6
  124. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +27 -8
  125. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
  126. package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
  127. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
  128. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
  129. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +20 -0
  130. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
  131. package/generators/client/templates/vue/src/main/webapp/app/entities/user/{user.oauth2.service.ts.ejs → user.service.ts.ejs} +1 -1
  132. package/generators/client/templates/vue/{webpack/utils.js.ejs → src/main/webapp/app/index.ts.ejs} +1 -12
  133. package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -9
  134. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +20 -18
  135. package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +45 -3
  136. package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +19 -3
  137. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +0 -2
  138. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +3 -1
  139. package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +17 -3
  140. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +25 -10
  141. package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +2 -2
  142. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +6 -4
  143. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +4 -2
  144. package/generators/client/templates/vue/src/test/javascript/spec/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +10 -4
  145. package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
  146. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
  147. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
  148. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
  149. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +0 -1
  150. package/generators/client/templates/vue/tsconfig.json.ejs +6 -10
  151. package/generators/client/templates/vue/tsconfig.spec.json.ejs +37 -0
  152. package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
  153. package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
  154. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +150 -126
  155. package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -76
  156. package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
  157. package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -41
  158. package/generators/cloudfoundry/index.js +9 -9
  159. package/generators/common/index.js +12 -10
  160. package/generators/common/templates/.prettierrc.ejs +1 -1
  161. package/generators/common/templates/README.md.jhi.ejs +19 -0
  162. package/generators/common/templates/package.json +4 -4
  163. package/generators/cypress/index.js +12 -9
  164. package/generators/cypress/templates/cypress.json.ejs +16 -2
  165. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +3 -14
  166. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +33 -39
  167. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +52 -62
  168. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +2 -10
  169. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +25 -34
  170. package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -22
  171. package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +4 -4
  172. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +67 -7
  173. package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
  174. package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -6
  175. package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
  176. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +8 -8
  177. package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +0 -9
  178. package/generators/database-changelog/index.js +33 -22
  179. package/generators/database-changelog-liquibase/index.js +12 -8
  180. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +1 -1
  181. package/generators/docker-compose/index.js +11 -12
  182. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +1 -1
  183. package/generators/entities/index.js +35 -26
  184. package/generators/entities-client/index.js +10 -7
  185. package/generators/entity/index.js +81 -32
  186. package/generators/entity-client/files.js +7 -16
  187. package/generators/entity-client/index.js +22 -12
  188. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
  189. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +1 -1
  190. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +58 -60
  191. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -35
  192. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  193. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +4 -4
  194. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +110 -112
  195. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +9 -2
  196. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +8 -8
  197. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +8 -8
  198. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +8 -8
  199. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +15 -6
  200. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
  201. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +1 -1
  202. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +1 -1
  203. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +203 -198
  204. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +5 -5
  205. package/generators/entity-client/templates/angular/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
  206. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +264 -127
  207. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +17 -14
  208. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +5 -4
  209. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +11 -13
  210. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +32 -25
  211. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
  212. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +2 -1
  213. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  214. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
  215. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +10 -7
  216. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +5 -1
  217. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
  218. package/generators/entity-i18n/index.js +7 -4
  219. package/generators/entity-server/files.js +14 -0
  220. package/generators/entity-server/index.js +12 -8
  221. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +2 -2
  222. package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
  223. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +9 -8
  224. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +16 -29
  225. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +3 -3
  226. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
  227. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +1 -1
  228. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +18 -2
  229. package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +24 -0
  230. package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +8 -6
  231. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +5 -1
  232. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +41 -43
  233. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +3 -3
  234. package/generators/gae/index.js +10 -10
  235. package/generators/generator-base-blueprint.js +14 -46
  236. package/generators/generator-base-private.js +44 -23
  237. package/generators/generator-base.js +58 -18
  238. package/generators/generator-constants.js +30 -23
  239. package/generators/generator-transforms.js +39 -27
  240. package/generators/heroku/index.js +14 -33
  241. package/generators/init/constants.cjs +1 -1
  242. package/generators/java/constants.cjs +1 -1
  243. package/generators/kubernetes/files.js +3 -0
  244. package/generators/kubernetes/index.js +10 -10
  245. package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -1
  246. package/generators/kubernetes/templates/deployment.yml.ejs +8 -3
  247. package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
  248. package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
  249. package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
  250. package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
  251. package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
  252. package/generators/kubernetes/templates/istio/gateway.yml.ejs +7 -5
  253. package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
  254. package/generators/kubernetes-base.js +1 -0
  255. package/generators/kubernetes-helm/files.js +3 -8
  256. package/generators/kubernetes-helm/index.js +10 -10
  257. package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +0 -1
  258. package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +5 -0
  259. package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +0 -11
  260. package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +5 -0
  261. package/generators/kubernetes-helm/templates/app/values.yml.ejs +68 -5
  262. package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +1 -1
  263. package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +1 -1
  264. package/generators/kubernetes-knative/index.js +10 -10
  265. package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +6 -4
  266. package/generators/kubernetes-knative/templates/service.yml.ejs +1 -1
  267. package/generators/languages/index.js +13 -13
  268. package/generators/languages/templates/src/main/webapp/i18n/vi/login.json +1 -1
  269. package/generators/openapi-client/index.js +13 -10
  270. package/generators/openshift/index.js +10 -11
  271. package/generators/openshift/templates/deployment.yml.ejs +1 -1
  272. package/generators/page/index.js +12 -10
  273. package/generators/server/__snapshots__/generator.spec.mjs.snap +28 -15
  274. package/generators/server/cleanup.js +151 -0
  275. package/generators/server/files-sql.js +52 -0
  276. package/generators/server/files.js +31 -14
  277. package/generators/server/index.js +86 -33
  278. package/generators/server/templates/build.gradle.ejs +231 -189
  279. package/generators/server/templates/gradle.properties.ejs +12 -12
  280. package/generators/server/templates/npmw +8 -6
  281. package/generators/server/templates/npmw.cmd +13 -8
  282. package/generators/server/templates/pom.xml.ejs +425 -217
  283. package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
  284. package/generators/server/templates/src/main/docker/app.yml.ejs +1 -1
  285. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -2
  286. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +3 -2
  287. package/generators/server/templates/src/main/java/package/config/OpenApiConfiguration.java.ejs +17 -54
  288. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +5 -5
  289. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +4 -6
  290. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -3
  291. package/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs +19 -9
  292. package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
  293. package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +2 -2
  294. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -25
  295. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +31 -4
  296. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +23 -11
  297. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +16 -8
  298. package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +6 -6
  299. package/generators/server/templates/src/main/java/package/web/filter/ModifyServersOpenApiFilter.java.ejs +3 -2
  300. package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.java.ejs +1 -1
  301. package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
  302. package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +2 -2
  303. package/generators/server/templates/src/main/resources/config/application.yml.ejs +22 -8
  304. package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +1 -2
  305. package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
  306. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +2 -6
  307. package/generators/server/templates/src/test/java/package/cucumber/CucumberTestContextConfiguration.java.ejs +2 -3
  308. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +41 -6
  309. package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
  310. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +6 -1
  311. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
  312. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
  313. package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +17 -3
  314. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +63 -0
  315. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +1 -1
  316. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +2 -3
  317. package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +9 -0
  318. package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +2 -0
  319. package/generators/server/templates/src/test/resources/logback.xml.ejs +1 -1
  320. package/generators/server/templates/src/test/{features → resources/package/features}/gitkeep +0 -0
  321. package/generators/server/templates/src/test/{features → resources/package/features}/user/user.feature.ejs +0 -0
  322. package/generators/spring-controller/index.js +9 -7
  323. package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +1 -1
  324. package/generators/spring-service/index.js +10 -7
  325. package/generators/upgrade/index.js +4 -5
  326. package/generators/utils.js +2 -2
  327. package/generators/workspaces/index.js +16 -7
  328. package/jdl/jhipster/default-application-options.js +9 -7
  329. package/package.json +22 -22
  330. package/utils/entity.js +17 -4
  331. package/utils/field.js +11 -1
  332. package/utils/multi-step-transform/index.js +8 -8
  333. package/generators/client/templates/react/.npmrc.ejs +0 -1
  334. package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -17
  335. package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
  336. package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
  337. package/generators/client/templates/vue/webpack/prod.env.js.ejs +0 -15
  338. package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +0 -91
  339. package/generators/server/templates/src/test/java/package/config/apidocs/GatewaySwaggerResourcesProviderTest.java.ejs +0 -79
  340. package/generators/server/templates/src/test/resources/cucumber.properties.ejs +0 -1
@@ -25,8 +25,6 @@ const prettierConfigFiles = require('./files').prettierConfigFiles;
25
25
  const constants = require('../generator-constants');
26
26
  const packageJson = require('../../package.json');
27
27
 
28
- let useBlueprints;
29
-
30
28
  module.exports = class JHipsterCommonGenerator extends BaseBlueprintGenerator {
31
29
  constructor(args, options, features) {
32
30
  super(args, options, { unique: 'namespace', ...features });
@@ -37,8 +35,12 @@ module.exports = class JHipsterCommonGenerator extends BaseBlueprintGenerator {
37
35
 
38
36
  this.loadStoredAppOptions();
39
37
  this.loadRuntimeOptions();
38
+ }
40
39
 
41
- useBlueprints = !this.fromBlueprint && this.instantiateBlueprints('common');
40
+ async _postConstruct() {
41
+ if (!this.fromBlueprint) {
42
+ await this.composeWithBlueprints('common');
43
+ }
42
44
  }
43
45
 
44
46
  // Public API method used by the getter and also by Blueprints
@@ -64,7 +66,7 @@ module.exports = class JHipsterCommonGenerator extends BaseBlueprintGenerator {
64
66
  }
65
67
 
66
68
  get initializing() {
67
- if (useBlueprints) return;
69
+ if (this.delegateToBlueprint) return {};
68
70
  return this._initializing();
69
71
  }
70
72
 
@@ -88,7 +90,7 @@ module.exports = class JHipsterCommonGenerator extends BaseBlueprintGenerator {
88
90
  }
89
91
 
90
92
  get configuring() {
91
- if (useBlueprints) return;
93
+ if (this.delegateToBlueprint) return {};
92
94
  return this._configuring();
93
95
  }
94
96
 
@@ -122,7 +124,7 @@ module.exports = class JHipsterCommonGenerator extends BaseBlueprintGenerator {
122
124
  }
123
125
 
124
126
  get loading() {
125
- if (useBlueprints) return;
127
+ if (this.delegateToBlueprint) return {};
126
128
  return this._loading();
127
129
  }
128
130
 
@@ -137,7 +139,7 @@ module.exports = class JHipsterCommonGenerator extends BaseBlueprintGenerator {
137
139
  }
138
140
 
139
141
  get preparing() {
140
- if (useBlueprints) return;
142
+ if (this.delegateToBlueprint) return {};
141
143
  return this._preparing();
142
144
  }
143
145
 
@@ -149,7 +151,7 @@ module.exports = class JHipsterCommonGenerator extends BaseBlueprintGenerator {
149
151
  }
150
152
 
151
153
  get default() {
152
- if (useBlueprints) return;
154
+ if (this.delegateToBlueprint) return {};
153
155
  return this._default();
154
156
  }
155
157
 
@@ -173,7 +175,7 @@ module.exports = class JHipsterCommonGenerator extends BaseBlueprintGenerator {
173
175
  }
174
176
 
175
177
  get writing() {
176
- if (useBlueprints) return;
178
+ if (this.delegateToBlueprint) return {};
177
179
  return this._writing();
178
180
  }
179
181
 
@@ -195,7 +197,7 @@ module.exports = class JHipsterCommonGenerator extends BaseBlueprintGenerator {
195
197
  }
196
198
 
197
199
  get postWriting() {
198
- if (useBlueprints) return;
200
+ if (this.delegateToBlueprint) return {};
199
201
  return this._postWriting();
200
202
  }
201
203
  };
@@ -9,7 +9,7 @@ useTabs: false
9
9
  arrowParens: avoid
10
10
 
11
11
  # jsx and tsx rules:
12
- jsxBracketSameLine: false
12
+ bracketSameLine: false
13
13
  <%_ if (!skipServer) { _%>
14
14
 
15
15
  # java rules:
@@ -46,6 +46,25 @@ This is a "<%= applicationType %>" application intended to be part of a microser
46
46
  This application is configured for Service Discovery and Configuration with <% if (serviceDiscoveryEureka) { %>the JHipster-Registry<% } %><% if (serviceDiscoveryConsul) { %>Consul<% } %>. On launch, it will refuse to start if it is not able to connect to <% if (serviceDiscoveryEureka) { %>the JHipster-Registry at [http://localhost:8761](http://localhost:8761)<% } %><% if (serviceDiscoveryConsul) { %>Consul at [http://localhost:8500](http://localhost:8500)<% } %>.<% if (serviceDiscoveryEureka) { %> For more information, read our documentation on [Service Discovery and Configuration with the JHipster-Registry][].<% } %><% if (serviceDiscoveryConsul) { %> For more information, read our documentation on [Service Discovery and Configuration with Consul][].<% } %>
47
47
  <%_ } _%>
48
48
 
49
+ ## Project Structure
50
+
51
+ Node is required for generation and recommended for development. `package.json` is always generated for a better development experience with prettier, commit hooks, scripts and so on.
52
+
53
+ In the project root, JHipster generates configuration files for tools like git, prettier, eslint, husk, and others that are well known and you can find references in the web.
54
+
55
+ <%_ if (configOptions.backendName === 'Java') { %>
56
+ `/src/*` structure follows default <%= configOptions.backendName %> structure.
57
+
58
+ <%_ } _%>
59
+ - `.yo-rc.json` - Yeoman configuration file
60
+ JHipster configuration is stored in this file at `generator-jhipster` key. You may find `generator-jhipster-*` for specific blueprints configuration.
61
+ - `.yo-resolve` (optional) - Yeoman conflict resolver
62
+ Allows to use a specific action when conflicts are found skipping prompts for files that matches a pattern. Each line should match `[pattern] [action]` with pattern been a [Minimatch](https://github.com/isaacs/minimatch#minimatch) pattern and action been one of skip (default if ommited) or force. Lines starting with `#` are considered comments and are ignored.
63
+ - `.jhipster/*.json` - JHipster entity configuration files
64
+ - `npmw` - wrapper to use locally installed npm.
65
+ JHipster installs Node and npm locally using the build tool by default. This wrapper makes sure npm is installed locally and uses it avoiding some differences different versions can cause. By using `./npmw` instead of the traditional `npm` you can configure a Node-less environment to develop or test your application.
66
+ - `/src/main/docker` - Docker configurations for the application and services that the application depends on
67
+
49
68
  ## Development
50
69
 
51
70
  <%_ if (skipClient) { _%>
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "devDependencies": {
3
- "concurrently": "6.3.0",
4
- "husky": "7.0.2",
5
- "lint-staged": "11.2.0",
6
- "npm": "7.24.2",
3
+ "concurrently": "6.5.1",
4
+ "husky": "7.0.4",
5
+ "lint-staged": "12.1.4",
6
+ "npm": "8.3.0",
7
7
  "wait-on": "6.0.0"
8
8
  }
9
9
  }
@@ -23,7 +23,6 @@ const constants = require('../generator-constants');
23
23
  const { GENERATOR_CYPRESS } = require('../generator-list');
24
24
  const { CYPRESS } = require('../../jdl/jhipster/test-framework-types');
25
25
 
26
- let useBlueprints;
27
26
  /* eslint-disable consistent-return */
28
27
  module.exports = class extends BaseBlueprintGenerator {
29
28
  constructor(args, options, features) {
@@ -34,8 +33,12 @@ module.exports = class extends BaseBlueprintGenerator {
34
33
  }
35
34
 
36
35
  this.loadRuntimeOptions();
36
+ }
37
37
 
38
- useBlueprints = !this.fromBlueprint && this.instantiateBlueprints(GENERATOR_CYPRESS);
38
+ async _postConstruct() {
39
+ if (!this.fromBlueprint) {
40
+ await this.composeWithBlueprints(GENERATOR_CYPRESS);
41
+ }
39
42
  }
40
43
 
41
44
  // Public API method used by the getter and also by Blueprints
@@ -48,7 +51,7 @@ module.exports = class extends BaseBlueprintGenerator {
48
51
  }
49
52
 
50
53
  get initializing() {
51
- if (useBlueprints) return;
54
+ if (this.delegateToBlueprint) return {};
52
55
  return this._initializing();
53
56
  }
54
57
 
@@ -75,7 +78,7 @@ module.exports = class extends BaseBlueprintGenerator {
75
78
  }
76
79
 
77
80
  get prompting() {
78
- if (useBlueprints) return;
81
+ if (this.delegateToBlueprint) return {};
79
82
  return this._prompting();
80
83
  }
81
84
 
@@ -95,7 +98,7 @@ module.exports = class extends BaseBlueprintGenerator {
95
98
  }
96
99
 
97
100
  get loading() {
98
- if (useBlueprints) return;
101
+ if (this.delegateToBlueprint) return {};
99
102
  return this._loading();
100
103
  }
101
104
 
@@ -110,7 +113,7 @@ module.exports = class extends BaseBlueprintGenerator {
110
113
  }
111
114
 
112
115
  get preparing() {
113
- if (useBlueprints) return;
116
+ if (this.delegateToBlueprint) return {};
114
117
  return this._preparing();
115
118
  }
116
119
 
@@ -120,7 +123,7 @@ module.exports = class extends BaseBlueprintGenerator {
120
123
  }
121
124
 
122
125
  get default() {
123
- if (useBlueprints) return;
126
+ if (this.delegateToBlueprint) return {};
124
127
  return this._default();
125
128
  }
126
129
 
@@ -139,7 +142,7 @@ module.exports = class extends BaseBlueprintGenerator {
139
142
  }
140
143
 
141
144
  get writing() {
142
- if (useBlueprints) return;
145
+ if (this.delegateToBlueprint) return {};
143
146
  return this._writing();
144
147
  }
145
148
 
@@ -227,7 +230,7 @@ module.exports = class extends BaseBlueprintGenerator {
227
230
  }
228
231
 
229
232
  get postWriting() {
230
- if (useBlueprints) return;
233
+ if (this.delegateToBlueprint) return {};
231
234
  return this._postWriting();
232
235
  }
233
236
  };
@@ -17,7 +17,7 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  {
20
- "baseUrl": "http://localhost:<%= serverPort %>/",
20
+ "baseUrl": "http://localhost:<%= gatewayServerPort || serverPort %>/",
21
21
  "testFiles": "**/*.spec.ts",
22
22
  "supportFile": "<%= CLIENT_TEST_SRC_DIR %>cypress/support/index.ts",
23
23
  "video": false,
@@ -26,7 +26,21 @@
26
26
  "pluginsFile": "<%= CLIENT_TEST_SRC_DIR %>cypress/plugins/index.ts",
27
27
  "screenshotsFolder": "<%= BUILD_DIR %>cypress/screenshots",
28
28
  "chromeWebSecurity": <% if(authenticationTypeOauth2) { %>false<% } else { %>true<% } %>,
29
+ <%_ if (clientFrameworkReact) { _%>
30
+ "scrollBehavior": "center",
31
+ <%_ } _%>
29
32
  "viewportWidth": 1200,
30
33
  "viewportHeight": 720,
31
- "retries": 2
34
+ "retries": 2,
35
+ <%_ if (authenticationTypeJwt) { _%>
36
+ "env": {
37
+ "authenticationUrl": "/api/authenticate",
38
+ "jwtStorageName": "<%= jhiPrefixDashed %>-authenticationToken"
39
+ },
40
+ <%_ } else if (authenticationTypeSession) { _%>
41
+ "env": {
42
+ "authenticationUrl": "/api/authentication"
43
+ },
44
+ <%_ } _%>
45
+ "experimentalSessionSupport": true,
32
46
  }
@@ -25,17 +25,10 @@ import {
25
25
  } from '../../support/commands';
26
26
 
27
27
  describe('login modal', () => {
28
- const username = Cypress.env('E2E_USERNAME') ?? 'admin';
29
- const password = Cypress.env('E2E_PASSWORD') ?? 'admin';
28
+ const username = Cypress.env('E2E_USERNAME') ?? 'user';
29
+ const password = Cypress.env('E2E_PASSWORD') ?? 'user';
30
30
 
31
- before(() => {
32
- cy.window().then(win => {
33
- win.sessionStorage.clear();
34
- });
35
- <%_ if (authenticationTypeSession) { _%>
36
- cy.clearCookie('SESSION');
37
- <%_ } _%>
38
- cy.clearCookies();
31
+ beforeEach(() => {
39
32
  cy.visit('');
40
33
  cy.clickOnLoginItem();
41
34
  });
@@ -56,7 +49,6 @@ describe('login modal', () => {
56
49
  <%_ } _%>
57
50
  // login page should stay open when login fails
58
51
  cy.get(titleLoginSelector).should('be.visible');
59
- cy.get(passwordLoginSelector).clear();
60
52
  });
61
53
 
62
54
  it('requires password', () => {
@@ -69,7 +61,6 @@ describe('login modal', () => {
69
61
  // login page should stay open when login fails
70
62
  cy.get(titleLoginSelector).should('be.visible');
71
63
  <%_ } _%>
72
- cy.get(usernameLoginSelector).clear();
73
64
  });
74
65
 
75
66
  it('errors when password is incorrect', () => {
@@ -78,8 +69,6 @@ describe('login modal', () => {
78
69
  cy.get(submitLoginSelector).click();
79
70
  cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(401));
80
71
  cy.get(errorLoginSelector).should('be.visible');
81
- cy.get(usernameLoginSelector).clear();
82
- cy.get(passwordLoginSelector).clear();
83
72
  });
84
73
 
85
74
  it('go to login page when successfully logs in', () => {
@@ -26,77 +26,71 @@ import {
26
26
  } from '../../support/commands';
27
27
 
28
28
  describe('/account/password', () => {
29
- before(() => {
30
- cy.window().then((win) => {
31
- win.sessionStorage.clear()
32
- });
33
- <%_ if (authenticationTypeSession) { _%>
34
- cy.clearCookie('SESSION');
35
- <%_ } _%>
36
- cy.clearCookies();
37
- cy.visit('');
38
- cy.login('user', 'user');
39
- cy.clickOnPasswordItem();
29
+ const username = Cypress.env('E2E_USERNAME') ?? 'user';
30
+ const password = Cypress.env('E2E_PASSWORD') ?? 'user';
31
+
32
+ beforeEach(() => {
33
+ cy.login(username, password);
34
+ cy.visit('/account/password');
40
35
  });
41
36
 
42
37
  beforeEach(() => {
43
38
  cy.intercept('POST', '/api/account/change-password').as('passwordSave');
44
39
  });
45
40
 
41
+ it('should be accessible through menu', () => {
42
+ cy.visit('');
43
+ cy.clickOnPasswordItem();
44
+ cy.url().should('match', /\/account\/password$/);
45
+ });
46
+
46
47
  it("requires current password", () => {
47
48
  <%_ if (clientFrameworkReact) { _%>
48
- cy.get(submitPasswordSelector).click({ force: true });
49
+ cy.get(submitPasswordSelector).click();
49
50
  <%_ } _%>
50
51
  cy.get(currentPasswordSelector)
51
52
  .should('have.class', classInvalid)
52
- .type('wrong-current-password');
53
- <%_ if (clientFrameworkReact) { _%>
54
- cy.get(submitPasswordSelector).click({ force: true });
55
- <%_ } _%>
56
- cy.get(currentPasswordSelector).should('have.class', classValid);
57
- cy.get(currentPasswordSelector).clear();
53
+ .type('wrong-current-password')
54
+ .blur()
55
+ .should('have.class', classValid);
58
56
  });
59
57
 
60
58
  it("requires new password", () => {
61
- cy.get(newPasswordSelector)
62
- .should('have.class', classInvalid)
63
- .type('jhipster');
64
59
  <%_ if (clientFrameworkReact) { _%>
65
- cy.get(submitPasswordSelector).click({ force: true });
60
+ cy.get(submitPasswordSelector).click();
66
61
  <%_ } _%>
67
- cy.get(newPasswordSelector).should('have.class', classValid);
68
- cy.get(newPasswordSelector).clear();
62
+ cy.get(newPasswordSelector)
63
+ .should('have.class', classInvalid)
64
+ .type('jhipster')
65
+ .blur()
66
+ .should('have.class', classValid);
69
67
  });
70
68
 
71
69
  it("requires confirm new password", () => {
70
+ <%_ if (clientFrameworkReact) { _%>
71
+ cy.get(submitPasswordSelector).click();
72
+ <%_ } _%>
72
73
  cy.get(newPasswordSelector).type('jhipster');
73
74
  cy.get(confirmPasswordSelector)
74
75
  .should('have.class', classInvalid)
75
- .type('jhipster');
76
- <%_ if (clientFrameworkReact) { _%>
77
- cy.get(submitPasswordSelector).click({ force: true });
78
- <%_ } _%>
79
- cy.get(confirmPasswordSelector).should('have.class', classValid);
80
- cy.get(newPasswordSelector).clear();
81
- cy.get(confirmPasswordSelector).clear();
76
+ .type('jhipster')
77
+ .blur()
78
+ .should('have.class', classValid);
82
79
  });
83
80
 
84
81
  it("should fail to update password when using incorrect current password", () => {
85
82
  cy.get(currentPasswordSelector).type('wrong-current-password');
86
83
  cy.get(newPasswordSelector).type('jhipster');
87
84
  cy.get(confirmPasswordSelector).type('jhipster');
88
- cy.get(submitPasswordSelector).click({force: true});
85
+ cy.get(submitPasswordSelector).click();
89
86
  cy.wait('@passwordSave').then(({ response }) => expect(response.statusCode).to.equal(400));
90
- cy.get(currentPasswordSelector).clear();
91
- cy.get(newPasswordSelector).clear();
92
- cy.get(confirmPasswordSelector).clear();
93
87
  });
94
88
 
95
89
  it("should be able to update password", () => {
96
- cy.get(currentPasswordSelector).type('user');
97
- cy.get(newPasswordSelector).type('user');
98
- cy.get(confirmPasswordSelector).type('user');
99
- cy.get(submitPasswordSelector).click({force: true});
90
+ cy.get(currentPasswordSelector).type(password);
91
+ cy.get(newPasswordSelector).type(password);
92
+ cy.get(confirmPasswordSelector).type(password);
93
+ cy.get(submitPasswordSelector).click();
100
94
  cy.wait('@passwordSave').then(({ response }) => expect(response.statusCode).to.equal(200));
101
95
  });
102
96
  });
@@ -26,101 +26,95 @@ import {
26
26
  classValid,
27
27
  } from '../../support/commands';
28
28
 
29
- describe('/account/register', () => {
30
- before(() => {
31
- cy.window().then((win) => {
32
- win.sessionStorage.clear()
33
- });
34
- <%_ if (authenticationTypeSession) { _%>
35
- cy.clearCookie('SESSION');
36
- <%_ } _%>
37
- cy.clearCookies();
38
- cy.visit('');
39
- cy.clickOnRegisterItem();
29
+ <% const registerPage = clientFrameworkVue ? '/register' : '/account/register'; _%>
30
+ describe('<%= registerPage %>', () => {
31
+ beforeEach(() => {
32
+ cy.visit('<%= registerPage %>');
40
33
  });
41
34
 
42
35
  beforeEach(() => {
43
36
  cy.intercept('POST', '/api/register').as('registerSave');
44
37
  });
45
38
 
39
+ it('should be accessible through menu', () => {
40
+ cy.visit('');
41
+ cy.clickOnRegisterItem();
42
+ cy.url().should('match', /<%= registerPage.replaceAll('/', '\\/') %>$/);
43
+ });
44
+
46
45
  it('should load the register page', () => {
47
46
  cy.get(submitRegisterSelector).should('be.visible');
48
47
  });
49
48
 
50
49
  it('requires username', () => {
51
50
  <%_ if (clientFrameworkReact) { _%>
52
- cy.get(submitRegisterSelector).click({ force: true });
51
+ cy.get(submitRegisterSelector).click();
53
52
  <%_ } _%>
54
53
  cy.get(usernameRegisterSelector)
55
54
  .should('have.class', classInvalid)
56
- .type('test');
57
- <%_ if (clientFrameworkReact) { _%>
58
- cy.get(submitRegisterSelector).click({ force: true });
59
- <%_ } _%>
60
- cy.get(usernameRegisterSelector).should('have.class', classValid)
61
- .clear();
55
+ .type('test')
56
+ .blur()
57
+ .should('have.class', classValid);
62
58
  });
63
59
 
64
- it('requires email', () => {
65
- cy.get(emailRegisterSelector)
66
- .should('have.class', classInvalid)
67
- .type('testtest.fr');
60
+ it('should not accept invalid email', () => {
68
61
  <%_ if (clientFrameworkReact) { _%>
69
- cy.get(submitRegisterSelector).click({ force: true });
62
+ cy.get(submitRegisterSelector).click();
70
63
  <%_ } _%>
71
- cy.get(emailRegisterSelector).should('have.class', classInvalid)
72
- .clear();
64
+ cy.get(emailRegisterSelector)
65
+ .should('have.class', classInvalid)
66
+ .type('testtest.fr')
67
+ .blur()
68
+ .should('have.class', classInvalid);
73
69
  });
74
70
 
75
71
  it('requires email in correct format', () => {
76
- cy.get(emailRegisterSelector)
77
- .should('have.class', classInvalid)
78
- .type('test@test.fr');
79
72
  <%_ if (clientFrameworkReact) { _%>
80
- cy.get(submitRegisterSelector).click({ force: true });
73
+ cy.get(submitRegisterSelector).click();
81
74
  <%_ } _%>
82
- cy.get(emailRegisterSelector).should('have.class', classValid)
83
- .clear();
75
+ cy.get(emailRegisterSelector)
76
+ .should('have.class', classInvalid)
77
+ .type('test@test.fr')
78
+ .blur()
79
+ .should('have.class', classValid);
84
80
  });
85
81
 
86
82
  it('requires first password', () => {
87
- cy.get(firstPasswordRegisterSelector)
88
- .should('have.class', classInvalid)
89
- .type('test@test.fr');
90
83
  <%_ if (clientFrameworkReact) { _%>
91
- cy.get(submitRegisterSelector).click({ force: true });
84
+ cy.get(submitRegisterSelector).click();
92
85
  <%_ } _%>
93
- cy.get(firstPasswordRegisterSelector).should('have.class', classValid)
94
- .clear();
86
+ cy.get(firstPasswordRegisterSelector)
87
+ .should('have.class', classInvalid)
88
+ .type('test@test.fr')
89
+ .blur()
90
+ .should('have.class', classValid);
95
91
  });
96
92
 
97
93
  it('requires password and confirm password to be same', () => {
98
- cy.get(firstPasswordRegisterSelector)
99
- .should('have.class', classInvalid)
100
- .type('test');
101
94
  <%_ if (clientFrameworkReact) { _%>
102
- cy.get(submitRegisterSelector).click({ force: true });
95
+ cy.get(submitRegisterSelector).click();
103
96
  <%_ } _%>
104
- cy.get(firstPasswordRegisterSelector).should('have.class', classValid);
97
+ cy.get(firstPasswordRegisterSelector)
98
+ .should('have.class', classInvalid)
99
+ .type('test')
100
+ .blur()
101
+ .should('have.class', classValid);
105
102
  cy.get(secondPasswordRegisterSelector)
106
103
  .should('have.class', classInvalid)
107
- .type('test');
108
- <%_ if (clientFrameworkReact) { _%>
109
- cy.get(submitRegisterSelector).click({ force: true });
110
- <%_ } _%>
111
- cy.get(secondPasswordRegisterSelector).should('have.class', classValid);
112
- cy.get(firstPasswordRegisterSelector).clear();
113
- cy.get(secondPasswordRegisterSelector).clear();
104
+ .type('test')
105
+ .blur()
106
+ .should('have.class', classValid);
114
107
  });
115
108
 
116
109
  it('requires password and confirm password have not the same value', () => {
117
- cy.get(firstPasswordRegisterSelector)
118
- .should('have.class', classInvalid)
119
- .type('test');
120
110
  <%_ if (clientFrameworkReact) { _%>
121
- cy.get(submitRegisterSelector).click({ force: true });
111
+ cy.get(submitRegisterSelector).click();
122
112
  <%_ } _%>
123
- cy.get(firstPasswordRegisterSelector).should('have.class', classValid);
113
+ cy.get(firstPasswordRegisterSelector)
114
+ .should('have.class', classInvalid)
115
+ .type('test')
116
+ .blur()
117
+ .should('have.class', classValid);
124
118
  <%_ if (clientFrameworkAngular) { _%>
125
119
  cy.get(secondPasswordRegisterSelector)
126
120
  .should('have.class', classInvalid)
@@ -129,14 +123,10 @@ describe('/account/register', () => {
129
123
  <%_ } else { _%>
130
124
  cy.get(secondPasswordRegisterSelector)
131
125
  .should('have.class', classInvalid)
132
- .type('otherPassword');
133
- <%_ if (clientFrameworkReact) { _%>
134
- cy.get(submitRegisterSelector).click({ force: true });
135
- <%_ } _%>
136
- cy.get(secondPasswordRegisterSelector).should('have.class', classInvalid);
126
+ .type('otherPassword')
127
+ .blur()
128
+ .should('have.class', classInvalid);
137
129
  <%_ } _%>
138
- cy.get(firstPasswordRegisterSelector).clear();
139
- cy.get(secondPasswordRegisterSelector).clear();
140
130
  });
141
131
 
142
132
  it('register a valid user', () => {
@@ -146,7 +136,7 @@ describe('/account/register', () => {
146
136
  cy.get(emailRegisterSelector).type(randomEmail);
147
137
  cy.get(firstPasswordRegisterSelector).type('jondoe');
148
138
  cy.get(secondPasswordRegisterSelector).type('jondoe');
149
- cy.get(submitRegisterSelector).click({force: true});
139
+ cy.get(submitRegisterSelector).click();
150
140
  cy.wait('@registerSave').then(({ response }) => expect(response.statusCode).to.equal(201));
151
141
  });
152
142
  });
@@ -26,16 +26,9 @@ import {
26
26
  } from '../../support/commands';
27
27
 
28
28
  describe('forgot your password', () => {
29
- const username = Cypress.env('E2E_USERNAME') ?? 'admin';
29
+ const username = Cypress.env('E2E_USERNAME') ?? 'user';
30
30
 
31
- before(() => {
32
- cy.window().then((win) => {
33
- win.sessionStorage.clear()
34
- });
35
- <%_ if (authenticationTypeSession) { _%>
36
- cy.clearCookie('SESSION');
37
- <%_ } _%>
38
- cy.clearCookies();
31
+ beforeEach(() => {
39
32
  cy.visit('');
40
33
  cy.clickOnLoginItem();
41
34
  cy.get(usernameLoginSelector).type(username);
@@ -57,7 +50,6 @@ describe('forgot your password', () => {
57
50
  cy.get(submitInitResetPasswordSelector).click({ force: true });
58
51
  <%_ } _%>
59
52
  cy.get(emailResetPasswordSelector).should('have.class', classValid);
60
- cy.get(emailResetPasswordSelector).clear();
61
53
  });
62
54
 
63
55
  it('should be able to init reset password', () => {