generator-jhipster 8.4.0 → 8.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 (270) hide show
  1. package/dist/generators/angular/resources/package.json +10 -10
  2. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +2 -2
  3. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
  4. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +2 -2
  5. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
  6. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
  7. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
  8. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
  9. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
  10. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
  11. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
  12. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +2 -2
  13. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +3 -3
  14. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
  15. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +3 -3
  16. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
  17. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
  18. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
  19. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +10 -8
  20. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
  21. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
  22. package/dist/generators/app/generator.js +4 -13
  23. package/dist/generators/base/generator.js +15 -16
  24. package/dist/generators/base/priorities.js +12 -1
  25. package/dist/generators/base-application/generator.js +14 -2
  26. package/dist/generators/base-application/priorities.js +1 -0
  27. package/dist/generators/base-application/support/prepare-entity.js +7 -8
  28. package/dist/generators/base-application/support/prepare-relationship.js +3 -2
  29. package/dist/generators/base-core/generator.js +40 -9
  30. package/dist/generators/bootstrap-application-base/generator.js +7 -3
  31. package/dist/generators/bootstrap-application-server/generator.js +1 -0
  32. package/dist/generators/client/command.js +2 -2
  33. package/dist/generators/client/generators/common/command.js +5 -0
  34. package/dist/generators/client/generators/common/generator.js +79 -0
  35. package/dist/generators/client/generators/common/index.js +20 -0
  36. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
  37. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
  38. package/dist/generators/client/resources/package.json +4 -4
  39. package/dist/generators/common/generator.js +5 -0
  40. package/dist/generators/common/resources/package.json +2 -2
  41. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
  42. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
  43. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
  44. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
  45. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
  46. package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -1
  47. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
  48. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
  49. package/dist/generators/entity/generator.js +2 -10
  50. package/dist/generators/entity/prompts.js +6 -11
  51. package/dist/generators/gatling/README.md +15 -0
  52. package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
  53. package/dist/generators/generate-blueprint/command.js +16 -0
  54. package/dist/generators/generate-blueprint/files.js +8 -0
  55. package/dist/generators/generate-blueprint/generator.js +17 -10
  56. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  57. package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
  58. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
  59. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
  60. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
  61. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +24 -0
  62. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
  63. package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +2 -2
  64. package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
  65. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
  66. package/dist/generators/generator-constants.js +1 -1
  67. package/dist/generators/info/generator.js +1 -3
  68. package/dist/generators/init/generator.js +2 -2
  69. package/dist/generators/init/resources/.node-version +1 -1
  70. package/dist/generators/java/generators/build-tool/command.js +4 -1
  71. package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
  72. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
  73. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
  74. package/dist/generators/java/support/add-java-annotation.js +28 -7
  75. package/dist/generators/java/support/generated-annotation-transform.js +1 -1
  76. package/dist/generators/java/support/index.js +1 -1
  77. package/dist/generators/jdl/generator.js +1 -1
  78. package/dist/generators/kubernetes/files.js +1 -1
  79. package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +0 -1
  80. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
  81. package/dist/generators/languages/generator.js +4 -2
  82. package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
  83. package/dist/generators/maven/templates/mvnw +185 -243
  84. package/dist/generators/maven/templates/mvnw.cmd +121 -180
  85. package/dist/generators/react/generator.js +10 -0
  86. package/dist/generators/react/resources/package.json +24 -24
  87. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
  88. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
  89. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
  90. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
  91. package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
  92. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
  93. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
  94. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
  95. package/dist/generators/server/command.js +0 -11
  96. package/dist/generators/server/generator.js +9 -70
  97. package/dist/generators/server/jdl/application-definition.js +3 -1
  98. package/dist/generators/server/resources/Dockerfile +12 -12
  99. package/dist/generators/server/resources/gradle/libs.versions.toml +7 -5
  100. package/dist/generators/server/resources/pom.xml +7 -7
  101. package/dist/generators/server/support/config.js +4 -8
  102. package/dist/generators/server/support/prepare-entity.js +5 -6
  103. package/dist/generators/server/support/relationship.js +5 -2
  104. package/dist/generators/server/templates/build.gradle.ejs +5 -3
  105. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +1 -0
  106. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +1 -0
  107. package/dist/generators/server/templates/gradle.properties.ejs +1 -1
  108. package/dist/generators/server/templates/pom.xml.ejs +7 -5
  109. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
  110. package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
  111. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +1 -18
  112. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
  113. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -20
  114. package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
  115. package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +23 -0
  116. package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
  117. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +43 -9
  118. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +59 -21
  119. package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
  120. package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
  121. package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
  122. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
  123. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
  124. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
  125. package/dist/generators/spring-boot/command.js +117 -6
  126. package/dist/generators/spring-boot/files.js +0 -5
  127. package/dist/generators/spring-boot/generator.js +40 -7
  128. package/dist/generators/spring-boot/prompts.js +6 -70
  129. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +368 -576
  130. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
  131. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
  132. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
  133. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
  134. package/dist/generators/spring-cache/internal/dependencies.js +2 -2
  135. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  136. package/dist/generators/spring-cloud/generators/gateway/command.js +5 -1
  137. package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
  138. package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
  139. package/dist/generators/spring-data-cassandra/generator.js +2 -2
  140. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
  141. package/dist/generators/vue/resources/package.json +15 -15
  142. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
  143. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
  144. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +1 -1
  145. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
  146. package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
  147. package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
  148. package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
  149. package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
  150. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
  151. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
  152. package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
  153. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
  154. package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
  155. package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
  156. package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
  157. package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
  158. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
  159. package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
  160. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
  161. package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
  162. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
  163. package/dist/jdl/exporters/config.js +1 -0
  164. package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
  165. package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
  166. package/dist/jdl/jdl-importer.js +22 -20
  167. package/dist/jdl/jhipster/binary-options.js +12 -8
  168. package/dist/jdl/jhipster/json-entity.js +1 -1
  169. package/dist/jdl/models/abstract-jdl-option.js +2 -2
  170. package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
  171. package/dist/jdl/models/jdl-binary-option.js +2 -2
  172. package/dist/jdl/models/jdl-deployment.js +11 -0
  173. package/dist/jdl/models/jdl-entity.js +1 -1
  174. package/dist/jdl/models/jdl-enum.js +1 -1
  175. package/dist/jdl/models/jdl-enums.js +0 -18
  176. package/dist/jdl/models/jdl-field.js +2 -2
  177. package/dist/jdl/models/jdl-object-wrapper.js +1 -0
  178. package/dist/jdl/models/jdl-object.js +23 -45
  179. package/dist/jdl/models/jdl-options.js +0 -18
  180. package/dist/jdl/models/jdl-relationships.js +8 -16
  181. package/dist/jdl/models/jdl-unary-option.js +1 -1
  182. package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
  183. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
  184. package/dist/jdl/parsing/jdl-parser.js +14 -0
  185. package/dist/jdl/parsing/lexer/lexer.js +17 -11
  186. package/dist/jdl/parsing/validator.js +16 -2
  187. package/dist/jdl/readers/json-reader.js +1 -1
  188. package/dist/jdl/utils/array-utils.js +6 -0
  189. package/dist/jdl/utils/set-utils.js +3 -2
  190. package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
  191. package/dist/testing/helpers.js +4 -0
  192. package/dist/types/generators/base/api.d.ts +5 -1
  193. package/dist/types/generators/base/generator.d.ts +10 -4
  194. package/dist/types/generators/base/priorities.d.ts +4 -0
  195. package/dist/types/generators/base/shared-data.d.ts +1 -1
  196. package/dist/types/generators/base-application/priorities.d.ts +2 -0
  197. package/dist/types/generators/base-application/support/entity.d.ts +2 -2
  198. package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
  199. package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
  200. package/dist/types/generators/base-core/generator.d.ts +16 -1
  201. package/dist/types/generators/generator-constants.d.ts +1 -1
  202. package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
  203. package/dist/types/generators/java/support/doc.d.ts +1 -1
  204. package/dist/types/generators/java/support/index.d.ts +1 -1
  205. package/dist/types/generators/server/support/relationship.d.ts +2 -2
  206. package/dist/types/generators/server/types.d.ts +5 -0
  207. package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
  208. package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
  209. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
  210. package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
  211. package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
  212. package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
  213. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
  214. package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
  215. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
  216. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
  217. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
  218. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
  219. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
  220. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
  221. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
  222. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
  223. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
  224. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
  225. package/dist/types/jdl/converters/types.d.ts +102 -14
  226. package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
  227. package/dist/types/jdl/exporters/config.d.ts +2 -1
  228. package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
  229. package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
  230. package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
  231. package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
  232. package/dist/types/jdl/exporters/types.d.ts +61 -0
  233. package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
  234. package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
  235. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
  236. package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
  237. package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
  238. package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
  239. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
  240. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
  241. package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
  242. package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
  243. package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
  244. package/dist/types/jdl/models/jdl-application.d.ts +16 -13
  245. package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
  246. package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
  247. package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
  248. package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
  249. package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
  250. package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
  251. package/dist/types/jdl/models/jdl-field.d.ts +10 -8
  252. package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
  253. package/dist/types/jdl/models/jdl-object.d.ts +23 -19
  254. package/dist/types/jdl/models/jdl-options.d.ts +7 -24
  255. package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
  256. package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
  257. package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
  258. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
  259. package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
  260. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
  261. package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
  262. package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
  263. package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
  264. package/dist/types/jdl/parsing/validator.d.ts +1 -1
  265. package/dist/types/jdl/utils/array-utils.d.ts +1 -0
  266. package/dist/types/jdl/utils/set-utils.d.ts +1 -19
  267. package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
  268. package/dist/types/testing/helpers.d.ts +13 -3
  269. package/package.json +24 -23
  270. /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
@@ -188,6 +188,22 @@ spring:
188
188
  enabled: false
189
189
  <%_ } _%>
190
190
  <%_ if (applicationTypeGateway) { _%>
191
+ <%_ if (!serviceDiscoveryAny) { _%>
192
+ discovery:
193
+ client:
194
+ simple:
195
+ instances:
196
+ <%= lowercaseBaseName %>:
197
+ - instanceId: <%= lowercaseBaseName %>1
198
+ host: localhost
199
+ port: <%= serverPort %>
200
+ <%_ for (const ms of gatewayRoutes ?? []) { _%>
201
+ <%= ms.route %>:
202
+ - instanceId: <%= ms.route %>1
203
+ host: <%= ms.host %>
204
+ port: <%= ms.serverPort %>
205
+ <%_ } _%>
206
+ <%_ } _%>
191
207
  gateway:
192
208
  <%_ if (reactive) { _%>
193
209
  default-filters:
@@ -212,11 +228,22 @@ spring:
212
228
  mvc:
213
229
  routes:
214
230
  - id: <%= lowercaseBaseName %>_route
215
- uri: lb://<%= lowercaseBaseName %>:<%= serverPort %>
231
+ uri: lb://<%= lowercaseBaseName %>
216
232
  predicates:
217
233
  - Path=/services/<%= lowercaseBaseName %>/**
218
234
  filters:
219
- - RewritePath=/services/<%= lowercaseBaseName %>/?(?<segment>.*), /$\{segment}
235
+ - StripPrefix=2
236
+ <%_ for (const ms of gatewayRoutes ?? []) { _%>
237
+ - id: <%= ms.route %>_route
238
+ uri: lb://<%= ms.route %>
239
+ predicates:
240
+ - Path=/services/<%= ms.route %>/**
241
+ filters:
242
+ - StripPrefix=2
243
+ <%_ if (authenticationTypeOauth2) { _%>
244
+ - TokenRelay
245
+ <%_ } _%>
246
+ <%_ } _%>
220
247
  <%_ } _%>
221
248
  <%_ } _%>
222
249
  <%_ if (messageBrokerKafka) { _%>
@@ -308,14 +335,43 @@ spring:
308
335
  <% if (reactive) { %>webflux<% } else { %>mvc<% } %>:
309
336
  problemdetails:
310
337
  enabled: true
311
- <%_ if (generateInMemoryUserCredentials) { _%>
338
+ <%_ if (generateInMemoryUserCredentials || authenticationTypeOauth2 || authenticationTypeJwt) { _%>
312
339
  security:
340
+ <%_ if (generateInMemoryUserCredentials) { _%>
313
341
  user:
314
342
  name: admin
315
343
  password: admin
316
344
  roles:
317
345
  - ADMIN
318
346
  - USER
347
+ <%_ } _%>
348
+ <%_ if (authenticationTypeOauth2) { _%>
349
+ oauth2:
350
+ client:
351
+ provider:
352
+ oidc:
353
+ issuer-uri: http://localhost:9080/realms/jhipster
354
+ registration:
355
+ oidc:
356
+ <%_ if (applicationTypeMicroservice) { _%>
357
+ client-id: internal
358
+ client-secret: internal
359
+ <%_ } else { _%>
360
+ client-id: web_app
361
+ client-secret: web_app
362
+ <%_ } _%>
363
+ scope: openid, profile, email, offline_access # last one for refresh tokens
364
+ resourceserver:
365
+ jwt:
366
+ principal-claim-name: preferred_username
367
+ <%_ } _%>
368
+ <%_ if (authenticationTypeJwt) { _%>
369
+ oauth2:
370
+ resourceserver:
371
+ jwt:
372
+ authority-prefix: ''
373
+ authorities-claim-name: auth
374
+ <%_ } _%>
319
375
  <%_ } _%>
320
376
  task:
321
377
  execution:
@@ -333,24 +389,6 @@ spring:
333
389
  output:
334
390
  ansi:
335
391
  console-available: true
336
- <%_ if (authenticationTypeOauth2) { _%>
337
- security:
338
- oauth2:
339
- client:
340
- provider:
341
- oidc:
342
- issuer-uri: http://localhost:9080/realms/jhipster
343
- registration:
344
- oidc:
345
- <%_ if (applicationTypeMicroservice) { _%>
346
- client-id: internal
347
- client-secret: internal
348
- <%_ } else { _%>
349
- client-id: web_app
350
- client-secret: web_app
351
- <%_ } _%>
352
- scope: openid, profile, email, offline_access # last one for refresh tokens
353
- <%_ } _%>
354
392
 
355
393
  server:
356
394
  servlet:
@@ -45,7 +45,7 @@ components:
45
45
  it SHOULD provide human-readable documentation for the problem type
46
46
  (e.g., using HTML).
47
47
  default: 'about:blank'
48
- example: 'https://www.jhipster.tech/problem/constraint-violation'
48
+ example: 'https://www.jhipster.tech/problem/problem-with-message'
49
49
  title:
50
50
  type: string
51
51
  description: |
@@ -16,6 +16,10 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
+ <%_
20
+ const callBlock = reactive ? '.block()' : '';
21
+ const callBlockOptional = reactive ? '.blockOptional()' : '';
22
+ _%>
19
23
  package <%= packageName %>.security;
20
24
 
21
25
  import <%= packageName %>.IntegrationTest;
@@ -24,8 +28,10 @@ import <%= packageName %>.config.Constants;
24
28
  <%_ } _%>
25
29
  import <%= user.entityAbsoluteClass %>;
26
30
  import <%= packageName %>.repository.UserRepository;
31
+ import <%= packageName %>.service.UserService;
27
32
 
28
33
  import org.apache.commons.lang3.RandomStringUtils;
34
+ import org.junit.jupiter.api.AfterEach;
29
35
  import org.junit.jupiter.api.BeforeEach;
30
36
  import org.junit.jupiter.api.Test;
31
37
  import org.springframework.beans.factory.annotation.Autowired;
@@ -74,19 +80,14 @@ class DomainUserDetailsServiceIT {
74
80
  @Autowired
75
81
  private UserRepository userRepository;
76
82
 
83
+ @Autowired
84
+ private UserService userService;
85
+
77
86
  @Autowired
78
87
  @Qualifier("userDetailsService")
79
88
  private <% if (reactive) { %>Reactive<% } %>UserDetailsService domainUserDetailsService;
80
89
 
81
- @BeforeEach
82
- public void init() {
83
- <%_ if (databaseTypeSql && reactive) { _%>
84
- userRepository.deleteAllUserAuthorities().block();
85
- <%_ } _%>
86
- <%_ if (!databaseTypeSql || reactive) { _%>
87
- userRepository.deleteAll()<% if (reactive) { %>.block()<% } %>;
88
-
89
- <%_ } _%>
90
+ public <%= user.persistClass %> getUserOne() {
90
91
  <%= user.persistClass %> userOne = new <%= user.persistClass %>();
91
92
  <%_ if (databaseTypeCassandra) { _%>
92
93
  userOne.setId(UUID.randomUUID().toString());
@@ -101,8 +102,10 @@ class DomainUserDetailsServiceIT {
101
102
  <%_ if (databaseTypeSql && reactive) { _%>
102
103
  userOne.setCreatedBy(Constants.SYSTEM);
103
104
  <%_ } _%>
104
- userRepository.save(userOne)<% if (reactive) { %>.block()<% } %>;
105
+ return userOne;
106
+ }
105
107
 
108
+ public <%= user.persistClass %> getUserTwo() {
106
109
  <%= user.persistClass %> userTwo = new <%= user.persistClass %>();
107
110
  <%_ if (databaseTypeCassandra) { _%>
108
111
  userTwo.setId(UUID.randomUUID().toString());
@@ -117,8 +120,10 @@ class DomainUserDetailsServiceIT {
117
120
  <%_ if (databaseTypeSql && reactive) { _%>
118
121
  userTwo.setCreatedBy(Constants.SYSTEM);
119
122
  <%_ } _%>
120
- userRepository.save(userTwo)<% if (reactive) { %>.block()<% } %>;
123
+ return userTwo;
124
+ }
121
125
 
126
+ public <%= user.persistClass %> getUserThree() {
122
127
  <%= user.persistClass %> userThree = new <%= user.persistClass %>();
123
128
  <%_ if (databaseTypeCassandra) { _%>
124
129
  userThree.setId(UUID.randomUUID().toString());
@@ -133,7 +138,21 @@ class DomainUserDetailsServiceIT {
133
138
  <%_ if (databaseTypeSql && reactive) { _%>
134
139
  userThree.setCreatedBy(Constants.SYSTEM);
135
140
  <%_ } _%>
136
- userRepository.save(userThree)<% if (reactive) { %>.block()<% } %>;
141
+ return userThree;
142
+ }
143
+
144
+ @BeforeEach
145
+ public void init() {
146
+ userRepository.save(getUserOne())<%- callBlock %>;
147
+ userRepository.save(getUserTwo())<%- callBlock %>;
148
+ userRepository.save(getUserThree())<%- callBlock %>;
149
+ }
150
+
151
+ @AfterEach
152
+ public void cleanup () {
153
+ userService.deleteUser(USER_ONE_LOGIN)<%- callBlock %>;
154
+ userService.deleteUser(USER_TWO_LOGIN)<%- callBlock %>;
155
+ userService.deleteUser(USER_THREE_LOGIN)<%- callBlock %>;
137
156
  }
138
157
 
139
158
  @Test
@@ -176,5 +195,4 @@ class DomainUserDetailsServiceIT {
176
195
  assertThatExceptionOfType(UserNotActivatedException.class).isThrownBy(
177
196
  () -> domainUserDetailsService.<% if (reactive) { %>find<% } else { %>loadUser<% } %>ByUsername(USER_THREE_LOGIN)<% if (reactive) { %>.block()<% } %>);
178
197
  }
179
-
180
198
  }
@@ -19,14 +19,24 @@
19
19
  package <%= packageName %>.service.mapper;
20
20
 
21
21
  import <%= user.entityAbsoluteClass %>;
22
+ import <%= packageName %>.security.AuthoritiesConstants;
22
23
  import <%= packageName %>.service.dto.<%= user.adminUserDto %>;
23
24
  import <%= packageName %>.service.dto.<%= user.dtoClass %>;
25
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
26
+ import <%= packageName %>.domain.Authority;
27
+ <%_ } else { _%>
28
+ import java.util.stream.Stream;
29
+ import java.util.stream.Collectors;
30
+ <%_ } _%>
24
31
  <%_ if (!authenticationTypeOauth2) { _%>
25
32
  import org.apache.commons.lang3.RandomStringUtils;
26
33
  <%_ } _%>
27
34
  import org.junit.jupiter.api.BeforeEach;
28
35
  import org.junit.jupiter.api.Test;
29
36
 
37
+ <%_ if (generateSpringAuditor) { _%>
38
+ import java.time.Instant;
39
+ <%_ } _%>
30
40
  import java.util.ArrayList;
31
41
  import java.util.HashSet;
32
42
  import java.util.List;
@@ -67,12 +77,74 @@ class UserMapperTest {
67
77
  user.setLastName("doe");
68
78
  <%_ if (!databaseTypeCassandra) { _%>
69
79
  user.setImageUrl("image_url");
80
+ <%_ } _%>
81
+ <%_ if (generateSpringAuditor) { _%>
82
+ user.setCreatedBy(DEFAULT_LOGIN);
83
+ user.setCreatedDate(Instant.now());
84
+ user.setLastModifiedBy(DEFAULT_LOGIN);
85
+ user.setLastModifiedDate(Instant.now());
70
86
  <%_ } _%>
71
87
  user.setLangKey("en");
72
88
 
89
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
90
+ Set<Authority> authorities = new HashSet<>();
91
+ Authority authority = new Authority();
92
+ authority.setName(AuthoritiesConstants.USER);
93
+ authorities.add(authority);
94
+ user.setAuthorities(authorities);
95
+ <%_ } else { _%>
96
+ user.setAuthorities(Stream.of(AuthoritiesConstants.USER).collect(Collectors.toSet()));
97
+ <%_ } _%>
98
+
73
99
  userDto = new <%= user.adminUserDto %>(user);
74
100
  }
75
101
 
102
+ @Test
103
+ void testUserToUserDTO() {
104
+ <%= user.adminUserDto %> convertedUserDto = userMapper.userToAdminUserDTO(user);
105
+
106
+ assertThat(convertedUserDto.getId()).isEqualTo(user.getId());
107
+ assertThat(convertedUserDto.getLogin()).isEqualTo(user.getLogin());
108
+ assertThat(convertedUserDto.getFirstName()).isEqualTo(user.getFirstName());
109
+ assertThat(convertedUserDto.getLastName()).isEqualTo(user.getLastName());
110
+ assertThat(convertedUserDto.getEmail()).isEqualTo(user.getEmail());
111
+ assertThat(convertedUserDto.isActivated()).isEqualTo(user.isActivated());
112
+ <%_ if (!databaseTypeCassandra) { _%>
113
+ assertThat(convertedUserDto.getImageUrl()).isEqualTo(user.getImageUrl());
114
+ <%_ } _%>
115
+ <%_ if (generateSpringAuditor) { _%>
116
+ assertThat(convertedUserDto.getCreatedBy()).isEqualTo(user.getCreatedBy());
117
+ assertThat(convertedUserDto.getCreatedDate()).isEqualTo(user.getCreatedDate());
118
+ assertThat(convertedUserDto.getLastModifiedBy()).isEqualTo(user.getLastModifiedBy());
119
+ assertThat(convertedUserDto.getLastModifiedDate()).isEqualTo(user.getLastModifiedDate());
120
+ <%_ } _%>
121
+ assertThat(convertedUserDto.getLangKey()).isEqualTo(user.getLangKey());
122
+ assertThat(convertedUserDto.getAuthorities()).containsExactly(AuthoritiesConstants.USER);
123
+ }
124
+
125
+ @Test
126
+ void testUserDTOtoUser() {
127
+ <%= user.persistClass %> convertedUser = userMapper.userDTOToUser(userDto);
128
+
129
+ assertThat(convertedUser.getId()).isEqualTo(userDto.getId());
130
+ assertThat(convertedUser.getLogin()).isEqualTo(userDto.getLogin());
131
+ assertThat(convertedUser.getFirstName()).isEqualTo(userDto.getFirstName());
132
+ assertThat(convertedUser.getLastName()).isEqualTo(userDto.getLastName());
133
+ assertThat(convertedUser.getEmail()).isEqualTo(userDto.getEmail());
134
+ assertThat(convertedUser.isActivated()).isEqualTo(userDto.isActivated());
135
+ <%_ if (!databaseTypeCassandra) { _%>
136
+ assertThat(convertedUser.getImageUrl()).isEqualTo(userDto.getImageUrl());
137
+ <%_ } _%>
138
+ assertThat(convertedUser.getLangKey()).isEqualTo(userDto.getLangKey());
139
+ <%_ if (generateSpringAuditor) { _%>
140
+ assertThat(convertedUser.getCreatedBy()).isEqualTo(userDto.getCreatedBy());
141
+ assertThat(convertedUser.getCreatedDate()).isEqualTo(userDto.getCreatedDate());
142
+ assertThat(convertedUser.getLastModifiedBy()).isEqualTo(userDto.getLastModifiedBy());
143
+ assertThat(convertedUser.getLastModifiedDate()).isEqualTo(userDto.getLastModifiedDate());
144
+ <%_ } _%>
145
+ assertThat(convertedUser.getAuthorities())<% if (!databaseTypeCassandra && !databaseTypeCouchbase) { %>.extracting("name")<%_ } _%>.containsExactly(AuthoritiesConstants.USER);
146
+ }
147
+
76
148
  @Test
77
149
  void usersToUserDTOsShouldMapOnlyNonNullUsers() {
78
150
  List<<%= user.persistClass %>> users = new ArrayList<>();
@@ -141,20 +213,15 @@ class UserMapperTest {
141
213
 
142
214
  @Test
143
215
  void userDTOToUserMapWithAuthoritiesStringShouldReturnUserWithAuthorities() {
144
- Set<String> authoritiesAsString = new HashSet<>();
145
- authoritiesAsString.add("ADMIN");
146
- userDto.setAuthorities(authoritiesAsString);
147
-
148
- <%= user.persistClass %> user = userMapper.userDTOToUser(userDto);
216
+ <%= user.persistClass %> convertedUser = userMapper.userDTOToUser(userDto);
149
217
 
150
- assertThat(user).isNotNull();
151
- assertThat(user.getAuthorities()).isNotNull();
152
- assertThat(user.getAuthorities()).isNotEmpty();
153
- <%_ if (databaseTypeSql || databaseTypeMongodb) { _%>
154
- assertThat(user.getAuthorities().iterator().next().getName()).isEqualTo("ADMIN");
155
- <%_ } _%>
156
- <%_ if (databaseTypeCassandra || databaseTypeCouchbase) { _%>
157
- assertThat(user.getAuthorities().iterator().next()).isEqualTo("ADMIN");
218
+ assertThat(convertedUser).isNotNull();
219
+ assertThat(convertedUser.getAuthorities()).isNotNull();
220
+ assertThat(convertedUser.getAuthorities()).isNotEmpty();
221
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
222
+ assertThat(convertedUser.getAuthorities().iterator().next().getName()).isEqualTo(AuthoritiesConstants.USER);
223
+ <%_ } else { _%>
224
+ assertThat(convertedUser.getAuthorities().iterator().next()).isEqualTo(AuthoritiesConstants.USER);
158
225
  <%_ } _%>
159
226
  }
160
227
 
@@ -162,11 +229,11 @@ class UserMapperTest {
162
229
  void userDTOToUserMapWithNullAuthoritiesStringShouldReturnUserWithEmptyAuthorities() {
163
230
  userDto.setAuthorities(null);
164
231
 
165
- <%= user.persistClass %> user = userMapper.userDTOToUser(userDto);
232
+ <%= user.persistClass %> persistUser = userMapper.userDTOToUser(userDto);
166
233
 
167
- assertThat(user).isNotNull();
168
- assertThat(user.getAuthorities()).isNotNull();
169
- assertThat(user.getAuthorities()).isEmpty();
234
+ assertThat(persistUser).isNotNull();
235
+ assertThat(persistUser.getAuthorities()).isNotNull();
236
+ assertThat(persistUser.getAuthorities()).isEmpty();
170
237
  }
171
238
 
172
239
  @Test
@@ -44,9 +44,8 @@ import <%= packageName %>.web.rest.vm.ManagedUserVM;
44
44
 
45
45
  import com.fasterxml.jackson.databind.ObjectMapper;
46
46
  import org.apache.commons.lang3.RandomStringUtils;
47
- <%_ if (reactive && authenticationUsesCsrf || databaseTypeMongodb || databaseTypeNeo4j) { _%>
47
+ import org.junit.jupiter.api.AfterEach;
48
48
  import org.junit.jupiter.api.BeforeEach;
49
- <%_ } _%>
50
49
  import org.junit.jupiter.api.Test;
51
50
  import org.junit.jupiter.params.ParameterizedTest;
52
51
  import org.junit.jupiter.params.provider.MethodSource;
@@ -144,10 +143,12 @@ class AccountResourceIT {
144
143
  private MockMvc restAccountMockMvc;
145
144
  <%_ } _%>
146
145
 
147
- <%_ if (databaseTypeMongodb || databaseTypeNeo4j) { _%>
146
+ <%_ if (!databaseTypeCassandra && !requiresDeleteAllUsers) { _%>
147
+ private Long numberOfUsers;
148
+
148
149
  @BeforeEach
149
- public void setup() {
150
- userRepository.deleteAll()<% if (reactive) { %>.block()<% } %>;
150
+ public void countUsers() {
151
+ numberOfUsers = userRepository.count()<%- reactorBlock %>;
151
152
  }
152
153
 
153
154
  <%_ } _%>
@@ -158,6 +159,16 @@ class AccountResourceIT {
158
159
  }
159
160
 
160
161
  <%_ } _%>
162
+ @AfterEach
163
+ public void cleanupAndCheck() {
164
+ <%_ if (requiresDeleteAllUsers) { _%>
165
+ userRepository.deleteAll()<%- reactorBlock %>;
166
+ <%_ } else if (!databaseTypeCassandra) { _%>
167
+ assertThat(userRepository.count()<%- reactorBlock %>).isEqualTo(numberOfUsers);
168
+ numberOfUsers = null;
169
+ <%_ } _%>
170
+ }
171
+
161
172
  @Test
162
173
  @WithUnauthenticatedMockUser
163
174
  <%_ if (reactive) { _%>
@@ -246,6 +257,8 @@ class AccountResourceIT {
246
257
  .andExpect(jsonPath("$.authorities").value(AuthoritiesConstants.ADMIN));
247
258
 
248
259
  <%_ } _%>
260
+
261
+ userService.deleteUser(TEST_USER_LOGIN)<%- reactorBlock %>;
249
262
  }
250
263
 
251
264
  @Test
@@ -301,6 +314,8 @@ class AccountResourceIT {
301
314
  <%_ } _%>
302
315
 
303
316
  assertThat(userRepository.findOneByLogin("test-register-valid")<% if (reactive) { %>.blockOptional()<% } %>).isPresent();
317
+
318
+ userService.deleteUser("test-register-valid")<%- reactorBlock %>;
304
319
  }
305
320
 
306
321
  @Test
@@ -484,6 +499,8 @@ class AccountResourceIT {
484
499
  .with(csrf())<% } %>)
485
500
  .andExpect(status().is4xxClientError());
486
501
  <%_ } _%>
502
+
503
+ userService.deleteUser("alice")<%- reactorBlock %>;
487
504
  }
488
505
 
489
506
  @Test
@@ -610,6 +627,8 @@ class AccountResourceIT {
610
627
  .with(csrf())<% } %>)
611
628
  .andExpect(status().is4xxClientError());
612
629
  <%_ } _%>
630
+
631
+ userService.deleteUser("test-register-duplicate-email-3")<%- reactorBlock %>;
613
632
  }
614
633
 
615
634
  @Test
@@ -649,6 +668,8 @@ class AccountResourceIT {
649
668
  assertThat(userDup).isPresent();
650
669
  assertThat(userDup.orElseThrow().getAuthorities()).hasSize(1)
651
670
  .containsExactly(<% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { %>authorityRepository.findById(AuthoritiesConstants.USER).<% if (reactive) { %>block<% } else { %>orElseThrow<% } %>()<% } %><% if (databaseTypeCassandra || databaseTypeCouchbase) { %>AuthoritiesConstants.USER<% } %>);
671
+
672
+ userService.deleteUser("badguy")<%- reactorBlock %>;
652
673
  }
653
674
 
654
675
  @Test
@@ -683,6 +704,8 @@ class AccountResourceIT {
683
704
 
684
705
  user = userRepository.findOneByLogin(user.getLogin())<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
685
706
  assertThat(user.isActivated()).isTrue();
707
+
708
+ userService.deleteUser("activate-account")<%- reactorBlock %>;
686
709
  }
687
710
 
688
711
  @Test
@@ -757,6 +780,8 @@ class AccountResourceIT {
757
780
  <%_ } _%>
758
781
  assertThat(updatedUser.isActivated()).isTrue();
759
782
  assertThat(updatedUser.getAuthorities()).isEmpty();
783
+
784
+ userService.deleteUser("save-account")<%- reactorBlock %>;
760
785
  }
761
786
 
762
787
  @Test
@@ -810,6 +835,8 @@ class AccountResourceIT {
810
835
  <%_ } _%>
811
836
 
812
837
  assertThat(userRepository.findOneByEmailIgnoreCase("invalid email")<% if (reactive) { %>.blockOptional()<% } %>).isNotPresent();
838
+
839
+ userService.deleteUser("save-invalid-email")<%- reactorBlock %>;
813
840
  }
814
841
 
815
842
  @Test
@@ -872,8 +899,11 @@ class AccountResourceIT {
872
899
  .andExpect(status().isBadRequest());
873
900
  <%_ } _%>
874
901
 
875
- <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
902
+ <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (reactive) { _%>.block()<% } else { %>.orElseThrow()<% } %>;
876
903
  assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email@example.com");
904
+
905
+ userService.deleteUser("save-existing-email")<%- reactorBlock %>;
906
+ userService.deleteUser("save-existing-email2")<%- reactorBlock %>;
877
907
  }
878
908
 
879
909
  @Test
@@ -924,6 +954,8 @@ class AccountResourceIT {
924
954
 
925
955
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email-and-login")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
926
956
  assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email-and-login@example.com");
957
+
958
+ userService.deleteUser("save-existing-email-and-login")<%- reactorBlock %>;
927
959
  }
928
960
 
929
961
  @Test
@@ -963,6 +995,8 @@ class AccountResourceIT {
963
995
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-wrong-existing-password")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
964
996
  assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isFalse();
965
997
  assertThat(passwordEncoder.matches(currentPassword, updatedUser.getPassword())).isTrue();
998
+
999
+ userService.deleteUser("change-password-wrong-existing-password")<%- reactorBlock %>;
966
1000
  }
967
1001
 
968
1002
  @Test
@@ -1001,6 +1035,8 @@ class AccountResourceIT {
1001
1035
 
1002
1036
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1003
1037
  assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isTrue();
1038
+
1039
+ userService.deleteUser("change-password")<%- reactorBlock %>;
1004
1040
  }
1005
1041
 
1006
1042
  @Test
@@ -1041,6 +1077,8 @@ class AccountResourceIT {
1041
1077
 
1042
1078
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-too-small")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1043
1079
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1080
+
1081
+ userService.deleteUser("change-password-too-small")<%- reactorBlock %>;
1044
1082
  }
1045
1083
 
1046
1084
  @Test
@@ -1081,6 +1119,8 @@ class AccountResourceIT {
1081
1119
 
1082
1120
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-too-long")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1083
1121
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1122
+
1123
+ userService.deleteUser("change-password-too-long")<%- reactorBlock %>;
1084
1124
  }
1085
1125
 
1086
1126
  @Test
@@ -1119,6 +1159,8 @@ class AccountResourceIT {
1119
1159
 
1120
1160
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-empty")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1121
1161
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1162
+
1163
+ userService.deleteUser("change-password-empty")<%- reactorBlock %>;
1122
1164
  }
1123
1165
  <%_ if (authenticationTypeSession && !reactive) { _%>
1124
1166
 
@@ -1165,6 +1207,9 @@ class AccountResourceIT {
1165
1207
  .andExpect(jsonPath("$.[*].ipAddress").value(hasItem(token.getIpAddress())))
1166
1208
  .andExpect(jsonPath("$.[*].userAgent").value(hasItem(token.getUserAgent())))
1167
1209
  .andExpect(jsonPath("$.[*].tokenDate").value(hasItem(containsString(<% if (databaseTypeCassandra) { %>"2017-03-28T15:25:57.123Z"<% } else { %>token.getTokenDate().toString()<% } %>))));
1210
+
1211
+ persistentTokenRepository.delete(token);
1212
+ userService.deleteUser("current-sessions")<%- reactorBlock %>;
1168
1213
  }
1169
1214
 
1170
1215
  @Test
@@ -1210,6 +1255,9 @@ class AccountResourceIT {
1210
1255
  .andExpect(status().isOk());
1211
1256
 
1212
1257
  assertThat(persistentTokenRepository.findByUser(user)).isEmpty();
1258
+
1259
+ persistentTokenRepository.delete(token);
1260
+ userService.deleteUser("invalidate-session")<%- reactorBlock %>;
1213
1261
  }
1214
1262
  <%_ } _%>
1215
1263
 
@@ -1244,6 +1292,8 @@ class AccountResourceIT {
1244
1292
  .with(csrf())<%_ } _%>)
1245
1293
  .andExpect(status().isOk());
1246
1294
  <%_ } _%>
1295
+
1296
+ userService.deleteUser("password-reset")<%- reactorBlock %>;
1247
1297
  }
1248
1298
 
1249
1299
  @Test
@@ -1277,6 +1327,8 @@ class AccountResourceIT {
1277
1327
  .with(csrf())<%_ } _%>)
1278
1328
  .andExpect(status().isOk());
1279
1329
  <%_ } _%>
1330
+
1331
+ userService.deleteUser("password-reset-upper-case")<%- reactorBlock %>;
1280
1332
  }
1281
1333
 
1282
1334
  @Test
@@ -1336,6 +1388,8 @@ class AccountResourceIT {
1336
1388
 
1337
1389
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1338
1390
  assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isTrue();
1391
+
1392
+ userService.deleteUser("finish-password-reset")<%- reactorBlock %>;
1339
1393
  }
1340
1394
 
1341
1395
  @Test
@@ -1378,6 +1432,8 @@ class AccountResourceIT {
1378
1432
 
1379
1433
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1380
1434
  assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isFalse();
1435
+
1436
+ userService.deleteUser("finish-password-reset-too-small")<%- reactorBlock %>;
1381
1437
  }
1382
1438
 
1383
1439
  @Test
@@ -34,11 +34,17 @@ import static org.mockito.Mockito.*;
34
34
 
35
35
  import <%= packageName %>.IntegrationTest;
36
36
  import <%= packageName %>.security.AuthoritiesConstants;
37
+ <%_ if (syncUserWithIdp) { _%>
38
+ import <%= packageName %>.repository.UserRepository;
39
+ <%_ } _%>
37
40
 
38
41
  import org.junit.jupiter.api.Test;
39
42
  import org.springframework.beans.factory.annotation.Autowired;
40
43
  import org.springframework.http.MediaType;
41
44
  import org.springframework.security.test.context.support.WithMockUser;
45
+ <%_ if (authenticationTypeOauth2) { _%>
46
+ import org.junit.jupiter.api.AfterEach;
47
+ <%_ } _%>
42
48
  <%_ if (reactive) { _%>
43
49
  import org.junit.jupiter.api.BeforeEach;
44
50
  import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
@@ -74,6 +80,11 @@ import org.springframework.transaction.annotation.Transactional;
74
80
  <%_ } _%>
75
81
  @IntegrationTest
76
82
  class AccountResourceIT {
83
+ <%_ if (syncUserWithIdp) { _%>
84
+
85
+ @Autowired
86
+ private UserRepository userRepository;
87
+ <%_ } _%>
77
88
 
78
89
  <%_ if (reactive) { _%>
79
90
  private Map<String, Object> claims;
@@ -106,6 +117,17 @@ class AccountResourceIT {
106
117
  claims.put("email", "jane.doe@jhipster.com");
107
118
  }
108
119
 
120
+ <%_ } _%>
121
+ <%_ if (syncUserWithIdp) { _%>
122
+ @AfterEach
123
+ public void cleanup() {
124
+ // Remove syncUserWithIdp users
125
+ <%_ if (databaseTypeSql && reactive) { _%>
126
+ userRepository.deleteAllUserAuthorities()<%- reactorBlock %>;
127
+ <%_ } _%>
128
+ userRepository.deleteAll()<%- reactorBlock %>;
129
+ }
130
+
109
131
  <%_ } _%>
110
132
  @Test
111
133
  <%_ if (databaseTypeSql && !reactive) { _%>