generator-jhipster 8.9.0 → 8.11.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.
- package/README.md +1 -1
- package/dist/cli/cli.mjs +0 -13
- package/dist/cli/download.mjs +2 -3
- package/dist/cli/environment-builder.mjs +5 -3
- package/dist/generators/angular/generator.d.ts +10 -1
- package/dist/generators/angular/resources/package.json +27 -27
- package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
- package/dist/generators/angular/templates/eslint.config.js.jhi.angular.ejs +4 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +6 -4
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +8 -13
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -3
- package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.ts.ejs +1 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.spec.ts.ejs +0 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +4 -5
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +7 -7
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +8 -6
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +8 -8
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/pagination/item-count.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.service.ts.ejs +3 -3
- package/dist/generators/app/generator.d.ts +4 -1
- package/dist/generators/base/api.d.ts +3 -1
- package/dist/generators/base/shared-data.js +1 -0
- package/dist/generators/base/support/contents.d.ts +10 -1
- package/dist/generators/base/support/contents.js +9 -0
- package/dist/generators/base/support/index.d.ts +1 -0
- package/dist/generators/base/support/index.js +1 -0
- package/dist/generators/base/support/needles.d.ts +14 -5
- package/dist/generators/base/support/needles.js +21 -17
- package/dist/generators/base/support/os.d.ts +1 -0
- package/dist/generators/base/support/os.js +20 -0
- package/dist/generators/base/support/write-files.d.ts +18 -0
- package/dist/generators/base/support/write-files.js +0 -26
- package/dist/generators/base-application/support/prepare-entity.js +14 -26
- package/dist/generators/base-application/support/update-application-entities-transform.js +3 -2
- package/dist/generators/base-application/types.d.ts +5 -0
- package/dist/generators/base-core/generator.js +7 -4
- package/dist/generators/bootstrap/generator.d.ts +6 -1
- package/dist/generators/bootstrap/generator.js +31 -2
- package/dist/generators/bootstrap/support/auto-crlf-transform.js +2 -2
- package/dist/generators/bootstrap/support/eslint-worker.js +5 -2
- package/dist/generators/bootstrap-application/generator.d.ts +4 -1
- package/dist/generators/bootstrap-application-base/generator.d.ts +12 -2
- package/dist/generators/bootstrap-application-base/generator.js +4 -3
- package/dist/generators/bootstrap-application-client/generator.d.ts +3 -1
- package/dist/generators/bootstrap-application-server/generator.d.ts +8 -1
- package/dist/generators/bootstrap-workspaces/generator.d.ts +9 -1
- package/dist/generators/ci-cd/generator.d.ts +6 -1
- package/dist/generators/client/generator.d.ts +13 -1
- package/dist/generators/client/generators/common/generator.d.ts +1 -1
- package/dist/generators/client/resources/package.json +5 -5
- package/dist/generators/client/templates/src/main/webapp/swagger-ui/index.html.ejs +8 -6
- package/dist/generators/common/generator.d.ts +8 -1
- package/dist/generators/common/resources/package.json +2 -2
- package/dist/generators/cucumber/generator.d.ts +2 -1
- package/dist/generators/cypress/generator.d.ts +7 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/logout.cy.ts.ejs +11 -3
- package/dist/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +4 -4
- package/dist/generators/docker/generator.d.ts +4 -1
- package/dist/generators/docker-compose/generator.d.ts +23 -1
- package/dist/generators/entities/generator.d.ts +4 -1
- package/dist/generators/entity/generator.d.ts +5 -1
- package/dist/generators/export-jdl/generator.d.ts +3 -1
- package/dist/generators/feign-client/generator.d.ts +2 -1
- package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +1 -1
- package/dist/generators/gatling/generator.d.ts +3 -1
- package/dist/generators/generate-blueprint/constants.d.ts +1 -1
- package/dist/generators/generate-blueprint/constants.js +1 -1
- package/dist/generators/generate-blueprint/files.js +2 -2
- package/dist/generators/generate-blueprint/generator.d.ts +10 -1
- package/dist/generators/generate-blueprint/generator.js +16 -16
- package/dist/generators/generate-blueprint/resources/package.json +3 -3
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +1 -1
- package/dist/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +1 -0
- package/dist/generators/generator-constants.d.ts +1 -1
- package/dist/generators/generator-constants.js +2 -2
- package/dist/generators/git/generator.d.ts +5 -1
- package/dist/generators/gradle/generator.d.ts +5 -1
- package/dist/generators/gradle/generators/code-quality/generator.d.ts +2 -1
- package/dist/generators/gradle/generators/jib/generator.d.ts +2 -1
- package/dist/generators/gradle/generators/node-gradle/generator.d.ts +2 -1
- package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/dist/generators/heroku/generator.d.ts +6 -1
- package/dist/generators/info/generator.d.ts +1 -1
- package/dist/generators/init/generator.d.ts +2 -1
- package/dist/generators/init/resources/.node-version +1 -1
- package/dist/generators/java/generators/bootstrap/generator.d.ts +8 -2
- package/dist/generators/java/generators/bootstrap/generator.js +17 -3
- package/dist/generators/java/generators/build-tool/generator.d.ts +2 -1
- package/dist/generators/java/generators/code-quality/generator.d.ts +2 -1
- package/dist/generators/java/generators/domain/generator.d.ts +6 -1
- package/dist/generators/java/generators/graalvm/generator.d.ts +6 -1
- package/dist/generators/java/generators/graalvm/internal/constants.d.ts +1 -1
- package/dist/generators/java/generators/graalvm/internal/constants.js +2 -2
- package/dist/generators/java/generators/graalvm/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/java/generators/jib/generator.d.ts +2 -1
- package/dist/generators/java/generators/node/generator.d.ts +4 -1
- package/dist/generators/java/generators/node/generator.js +2 -1
- package/dist/generators/java/generators/openapi-generator/generator.d.ts +2 -1
- package/dist/generators/java/generators/server/generator.d.ts +1 -1
- package/dist/generators/java/support/index.d.ts +2 -0
- package/dist/generators/java/support/index.js +2 -0
- package/dist/generators/java/support/java-enum.d.ts +8 -0
- package/dist/generators/java/support/java-enum.js +20 -0
- package/dist/generators/java/support/java-file-edit.d.ts +18 -0
- package/dist/generators/java/support/java-file-edit.js +94 -0
- package/dist/generators/java/types.d.ts +37 -1
- package/dist/generators/javascript/generators/bootstrap/generator.d.ts +4 -1
- package/dist/generators/javascript/generators/eslint/generator.d.ts +4 -1
- package/dist/generators/javascript/generators/eslint/templates/eslint.config.js.jhi.ejs +8 -0
- package/dist/generators/javascript/generators/husky/generator.d.ts +3 -1
- package/dist/generators/javascript/generators/prettier/generator.d.ts +4 -1
- package/dist/generators/javascript/resources/package.json +3 -3
- package/dist/generators/jdl/generator.d.ts +3 -1
- package/dist/generators/kubernetes/generator.d.ts +25 -19
- package/dist/generators/kubernetes-helm/generator.d.ts +18 -12
- package/dist/generators/kubernetes-knative/generator.d.ts +14 -8
- package/dist/generators/languages/generator.d.ts +9 -1
- package/dist/generators/languages/support/languages.js +1 -0
- package/dist/generators/languages/templates/entity/i18n/entity_he.json.ejs +78 -0
- package/dist/generators/languages/templates/src/main/resources/i18n/messages_he.properties.ejs +41 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/activate.json.ejs +27 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/configuration.json +11 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/error.json +15 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/gateway.json +16 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/global.json.ejs +172 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/health.json.ejs +75 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/home.json.ejs +20 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/login.json +20 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/logs.json +12 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/metrics.json +103 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/password.json +13 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/register.json +25 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/reset.json.ejs +45 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/sessions.json +16 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/settings.json +33 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/tracker.json +13 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/user-management.json +32 -0
- package/dist/generators/languages/templates/src/test/resources/i18n/messages_he.properties.ejs +4 -0
- package/dist/generators/liquibase/generator.d.ts +9 -1
- package/dist/generators/liquibase/generator.js +3 -19
- package/dist/generators/maven/generator.d.ts +6 -1
- package/dist/generators/maven/generators/code-quality/generator.d.ts +1 -1
- package/dist/generators/maven/generators/frontend-plugin/generator.d.ts +1 -1
- package/dist/generators/maven/generators/jib/generator.d.ts +1 -1
- package/dist/generators/project-name/generator.d.ts +3 -1
- package/dist/generators/react/generator.d.ts +15 -1
- package/dist/generators/react/resources/package.json +34 -34
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-delete-dialog.tsx.ejs +2 -1
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +4 -4
- package/dist/generators/react/templates/src/main/webapp/app/entities/menu.tsx.ejs +2 -2
- package/dist/generators/react/templates/src/main/webapp/app/entities/routes.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/modules/administration/administration.reducer.spec.ts.ejs +0 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/application-profile.spec.ts.ejs +0 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +0 -47
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/util/entity-utils.ts.ejs +1 -1
- package/dist/generators/server/generator.d.ts +7 -1
- package/dist/generators/server/resources/Dockerfile +17 -17
- package/dist/generators/server/resources/gradle/libs.versions.toml +15 -15
- package/dist/generators/server/resources/pom.xml +16 -16
- package/dist/generators/server/types.d.ts +22 -0
- package/dist/generators/spring-boot/generator.d.ts +14 -2
- package/dist/generators/spring-boot/generator.js +35 -4
- package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +158 -148
- package/dist/generators/spring-boot/templates/src/main/java/_package_/Application.java.ejs +11 -0
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +12 -23
- package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +61 -5
- package/dist/generators/spring-boot/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +29 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +7 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs +8 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +8 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +17 -11
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs +8 -3
- package/dist/generators/spring-boot/templates/src/main/resources/config/application.yml.ejs +3 -0
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +3 -3
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +4 -4
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +4 -4
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +3 -3
- package/dist/generators/spring-boot/templates/src/test/java/_package_/config/JHipsterBlockHoundIntegration.java.ejs +0 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/config/WebConfigurerTest.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/management/SecurityMetersServiceTests.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +2 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_imperative.java.ejs +35 -11
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_reactive.java.ejs +35 -6
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs +3 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TestAuthenticationResource.java.ejs +5 -5
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationIT.java.ejs +2 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.java.ejs +1 -4
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/service/MailServiceIT.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_reactive.java.ejs +1 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +9 -15
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +8 -17
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_skipUserManagement.java.ejs +6 -15
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/LogoutResourceIT.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -1
- package/dist/generators/spring-cache/cleanup.d.ts +2 -20
- package/dist/generators/spring-cache/cleanup.js +24 -2
- package/dist/generators/spring-cache/files.js +0 -6
- package/dist/generators/spring-cache/generator.d.ts +5 -1
- package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +0 -14
- package/dist/generators/spring-cloud/generators/gateway/generator.d.ts +5 -1
- package/dist/generators/spring-cloud-stream/generator.d.ts +2 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/generator.d.ts +2 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/generators/pulsar/generator.d.ts +2 -1
- package/dist/generators/spring-data-cassandra/generator.d.ts +4 -1
- package/dist/generators/spring-data-couchbase/generator.d.ts +9 -1
- package/dist/generators/spring-data-elasticsearch/generator.d.ts +10 -1
- package/dist/generators/spring-data-mongodb/generator.d.ts +9 -1
- package/dist/generators/spring-data-neo4j/generator.d.ts +11 -1
- package/dist/generators/spring-data-relational/generator.d.ts +11 -1
- package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/timezone/HibernateTimeZoneIT.java.ejs +2 -2
- package/dist/generators/spring-websocket/generator.d.ts +2 -1
- package/dist/generators/upgrade/generator.d.ts +3 -1
- package/dist/generators/vue/cleanup.js +7 -1
- package/dist/generators/vue/files-vue.js +3 -8
- package/dist/generators/vue/generator.d.ts +9 -1
- package/dist/generators/vue/resources/package.json +31 -31
- package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +9 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +21 -7
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +23 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/change-password/change-password.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.component.spec.ts.ejs +22 -10
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.component.ts.ejs +24 -5
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-modal.ts.ejs +38 -0
- package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.spec.ts.ejs +0 -4
- package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.ts.ejs +3 -25
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +24 -8
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.ts.ejs +23 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.spec.ts.ejs +20 -4
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.ts.ejs +23 -13
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/settings/settings.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/gateway/gateway.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/health/health.service.ts.ejs +10 -10
- package/dist/generators/vue/templates/src/main/webapp/app/admin/logs/logs.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics-modal.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -5
- package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management.service.ts.ejs +6 -6
- package/dist/generators/vue/templates/src/main/webapp/app/app.component.ts.ejs +29 -7
- package/dist/generators/vue/templates/src/main/webapp/app/app.vue.ejs +19 -1
- package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.spec.ts.ejs +66 -51
- package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.ts.ejs +30 -8
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.spec.ts.ejs +41 -11
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.ts.ejs +10 -11
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +43 -16
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +14 -9
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.ts.ejs +7 -7
- package/dist/generators/vue/templates/src/main/webapp/app/entities/user/user.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/locale/translation.service.ts.ejs +5 -5
- package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +18 -14
- package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.ts.ejs +4 -4
- package/dist/generators/workspaces/generator.d.ts +7 -1
- package/dist/generators/workspaces/support/applications-lookup.js +2 -2
- package/dist/lib/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +1 -1
- package/dist/lib/jdl/core/built-in-options/binary-options.d.ts +12 -1
- package/dist/lib/testing/apply-patch-to-template.d.ts +13 -0
- package/dist/lib/testing/apply-patch-to-template.js +90 -0
- package/dist/lib/testing/github.js +6 -3
- package/dist/lib/testing/helpers.d.ts +1 -0
- package/dist/lib/testing/helpers.js +15 -0
- package/dist/lib/utils/yo-rc.d.ts +3 -219
- package/package.json +36 -37
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +0 -49
|
@@ -7,27 +7,27 @@ import { type IUser } from '@/shared/model/user.model';
|
|
|
7
7
|
|
|
8
8
|
export default class UserManagementService {
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
get(userId: string): Promise<any> {
|
|
11
11
|
return axios.get(`api/admin/users/${userId}`);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
create(user: IUser): Promise<any> {
|
|
15
15
|
return axios.post('api/admin/users', user);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
update(user: IUser): Promise<any> {
|
|
19
19
|
return axios.put('api/admin/users', user);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
remove(userId: <%- user.primaryKey.tsType %>): Promise<any> {
|
|
23
23
|
return axios.delete(`api/admin/users/${userId}`);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
retrieve(<%_ if (!databaseTypeCassandra) { _%>req?: any <%_ } _%>): Promise<any> {
|
|
27
27
|
return axios.get(`api/admin/users<%_ if (!databaseTypeCassandra) { _%>?${buildPaginationQueryOpts(req)}<%_ } _%>`);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
retrieveAuthorities(): Promise<any> {
|
|
31
31
|
<%_ if (!databaseTypeCassandra) { _%>
|
|
32
32
|
return axios.get('api/authorities').then(response => {
|
|
33
33
|
response.data = response.data.map(authority => authority.name);
|
|
@@ -1,15 +1,33 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2025 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
1
19
|
import { defineComponent, provide } from 'vue';
|
|
2
|
-
<%_ if (enableTranslation) { _%>
|
|
3
20
|
import { useI18n } from 'vue-i18n';
|
|
21
|
+
import { storeToRefs } from 'pinia';
|
|
22
|
+
|
|
23
|
+
<%_ if (!authenticationTypeOauth2) { _%>
|
|
24
|
+
import { useLoginModal } from '@/account/login-modal';
|
|
25
|
+
import LoginForm from '@/account/login-form/login-form.vue';
|
|
4
26
|
<%_ } _%>
|
|
5
27
|
import Ribbon from '@/core/ribbon/ribbon.vue';
|
|
6
28
|
import JhiFooter from '@/core/jhi-footer/jhi-footer.vue';
|
|
7
29
|
import JhiNavbar from '@/core/jhi-navbar/jhi-navbar.vue';
|
|
8
|
-
<%_ if (!authenticationTypeOauth2) { _%>
|
|
9
|
-
import LoginForm from '@/account/login-form/login-form.vue';
|
|
10
|
-
<%_ } %>
|
|
11
30
|
import { useAlertService } from '@/shared/alert/alert.service';
|
|
12
|
-
|
|
13
31
|
import '@/shared/config/dayjs';
|
|
14
32
|
|
|
15
33
|
export default defineComponent({
|
|
@@ -25,11 +43,15 @@ export default defineComponent({
|
|
|
25
43
|
},
|
|
26
44
|
setup() {
|
|
27
45
|
provide('alertService', useAlertService());
|
|
46
|
+
<%_ if (!authenticationTypeOauth2) { _%>
|
|
47
|
+
const { loginModalOpen } = storeToRefs(useLoginModal());
|
|
48
|
+
<%_ } _%>
|
|
28
49
|
|
|
29
50
|
return {
|
|
30
|
-
<%_ if (
|
|
31
|
-
|
|
51
|
+
<%_ if (!authenticationTypeOauth2) { _%>
|
|
52
|
+
loginModalOpen,
|
|
32
53
|
<%_ } _%>
|
|
54
|
+
t$: useI18n().t,
|
|
33
55
|
};
|
|
34
56
|
},
|
|
35
57
|
});
|
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2025 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
1
19
|
<template>
|
|
2
20
|
<div id="app">
|
|
3
21
|
<ribbon></ribbon>
|
|
@@ -9,7 +27,7 @@
|
|
|
9
27
|
<router-view></router-view>
|
|
10
28
|
</div>
|
|
11
29
|
<%_ if (!authenticationTypeOauth2) { _%>
|
|
12
|
-
<b-modal id="login-page" hide-footer lazy>
|
|
30
|
+
<b-modal id="login-page" v-model="loginModalOpen" hide-footer lazy>
|
|
13
31
|
<template #modal-title>
|
|
14
32
|
<span data-cy="loginTitle" id="login-title" v-text="t$('login.title')">Sign in</span>
|
|
15
33
|
</template>
|
package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.spec.ts.ejs
CHANGED
|
@@ -1,11 +1,32 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2025 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
1
19
|
import { vitest } from 'vitest';
|
|
2
20
|
import { type Ref, ref } from 'vue';
|
|
3
|
-
import { shallowMount } from '@vue/test-utils';
|
|
21
|
+
import { shallowMount, type ComponentMountingOptions } from '@vue/test-utils';
|
|
4
22
|
import { type RouteLocation } from 'vue-router';
|
|
23
|
+
import { createTestingPinia } from '@pinia/testing';
|
|
5
24
|
|
|
6
|
-
|
|
25
|
+
<%_ if (generateUserManagement) { _%>
|
|
26
|
+
import { useLoginModal } from '@/account/login-modal';
|
|
7
27
|
|
|
8
|
-
|
|
28
|
+
<%_ } _%>
|
|
29
|
+
import Error from './error.vue';
|
|
9
30
|
|
|
10
31
|
type ErrorComponentType = InstanceType<typeof Error>;
|
|
11
32
|
|
|
@@ -19,22 +40,32 @@ const customErrorMsg = 'An error occurred.';
|
|
|
19
40
|
|
|
20
41
|
describe('Error component', () => {
|
|
21
42
|
let error: ErrorComponentType;
|
|
43
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
22
44
|
let loginService: LoginService;
|
|
45
|
+
<%_ } _%>
|
|
46
|
+
<%_ if (generateUserManagement) { _%>
|
|
47
|
+
let login: ReturnType<typeof useLoginModal>;
|
|
48
|
+
<%_ } _%>
|
|
23
49
|
let authenticated: Ref<boolean>;
|
|
50
|
+
let mountOptions: ComponentMountingOptions<ErrorComponentType>;
|
|
24
51
|
|
|
25
52
|
beforeEach(() => {
|
|
26
53
|
route = {};
|
|
27
54
|
authenticated = ref(false);
|
|
28
|
-
<%_ if (
|
|
29
|
-
loginService = new LoginService({ emit: vitest.fn() });
|
|
30
|
-
vitest.spyOn(loginService, 'openLogin');
|
|
31
|
-
<%_ } else if (authenticationTypeSession) { _%>
|
|
32
|
-
loginService = new LoginService({ emit: vitest.fn() });
|
|
33
|
-
vitest.spyOn(loginService, 'openLogin');
|
|
34
|
-
vitest.spyOn(loginService, 'logout');
|
|
35
|
-
<%_ } else if (authenticationTypeOauth2) { _%>
|
|
55
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
36
56
|
loginService = { login: vitest.fn(), logout: vitest.fn() };
|
|
37
57
|
<%_ } _%>
|
|
58
|
+
mountOptions = {
|
|
59
|
+
global: {
|
|
60
|
+
plugins: [createTestingPinia()],
|
|
61
|
+
provide: {
|
|
62
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
63
|
+
loginService,
|
|
64
|
+
<%_ } _%>
|
|
65
|
+
authenticated,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
};
|
|
38
69
|
});
|
|
39
70
|
|
|
40
71
|
it('should have retrieve custom error on routing', () => {
|
|
@@ -43,21 +74,17 @@ describe('Error component', () => {
|
|
|
43
74
|
name: 'CustomMessage',
|
|
44
75
|
meta: { errorMessage: customErrorMsg },
|
|
45
76
|
};
|
|
46
|
-
const wrapper = shallowMount(Error,
|
|
47
|
-
global: {
|
|
48
|
-
provide: {
|
|
49
|
-
loginService,
|
|
50
|
-
authenticated,
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
});
|
|
77
|
+
const wrapper = shallowMount(Error, mountOptions);
|
|
54
78
|
error = wrapper.vm;
|
|
79
|
+
<%_ if (generateUserManagement) { _%>
|
|
80
|
+
login = useLoginModal();
|
|
81
|
+
<%_ } _%>
|
|
55
82
|
|
|
56
83
|
expect(error.errorMessage).toBe(customErrorMsg);
|
|
57
84
|
expect(error.error403).toBeFalsy();
|
|
58
85
|
expect(error.error404).toBeFalsy();
|
|
59
|
-
<%_ if (
|
|
60
|
-
expect(
|
|
86
|
+
<%_ if (generateUserManagement) { _%>
|
|
87
|
+
expect(login.showLogin).not.toHaveBeenCalled();
|
|
61
88
|
<%_ } else { _%>
|
|
62
89
|
expect(loginService.login).toHaveBeenCalledTimes(0);
|
|
63
90
|
<%_ } _%>
|
|
@@ -67,21 +94,17 @@ describe('Error component', () => {
|
|
|
67
94
|
route = {
|
|
68
95
|
meta: { error403: true },
|
|
69
96
|
};
|
|
70
|
-
const wrapper = shallowMount(Error,
|
|
71
|
-
global: {
|
|
72
|
-
provide: {
|
|
73
|
-
loginService,
|
|
74
|
-
authenticated,
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
});
|
|
97
|
+
const wrapper = shallowMount(Error, mountOptions);
|
|
78
98
|
error = wrapper.vm;
|
|
99
|
+
<%_ if (generateUserManagement) { _%>
|
|
100
|
+
login = useLoginModal();
|
|
101
|
+
<%_ } _%>
|
|
79
102
|
|
|
80
103
|
expect(error.errorMessage).toBeNull();
|
|
81
104
|
expect(error.error403).toBeTruthy();
|
|
82
105
|
expect(error.error404).toBeFalsy();
|
|
83
|
-
<%_ if (
|
|
84
|
-
expect(
|
|
106
|
+
<%_ if (generateUserManagement) { _%>
|
|
107
|
+
expect(login.showLogin).toHaveBeenCalled();
|
|
85
108
|
<%_ } else { _%>
|
|
86
109
|
expect(loginService.login).toHaveBeenCalled();
|
|
87
110
|
<%_ } _%>
|
|
@@ -91,42 +114,34 @@ describe('Error component', () => {
|
|
|
91
114
|
route = {
|
|
92
115
|
meta: { error404: true },
|
|
93
116
|
};
|
|
94
|
-
const wrapper = shallowMount(Error,
|
|
95
|
-
global: {
|
|
96
|
-
provide: {
|
|
97
|
-
loginService,
|
|
98
|
-
authenticated,
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
});
|
|
117
|
+
const wrapper = shallowMount(Error, mountOptions);
|
|
102
118
|
error = wrapper.vm;
|
|
119
|
+
<%_ if (generateUserManagement) { _%>
|
|
120
|
+
login = useLoginModal();
|
|
121
|
+
<%_ } _%>
|
|
103
122
|
|
|
104
123
|
expect(error.errorMessage).toBeNull();
|
|
105
124
|
expect(error.error403).toBeFalsy();
|
|
106
125
|
expect(error.error404).toBeTruthy();
|
|
107
|
-
<%_ if (
|
|
108
|
-
expect(
|
|
126
|
+
<%_ if (generateUserManagement) { _%>
|
|
127
|
+
expect(login.showLogin).not.toHaveBeenCalled();
|
|
109
128
|
<%_ } else { _%>
|
|
110
129
|
expect(loginService.login).toHaveBeenCalledTimes(0);
|
|
111
130
|
<%_ } _%>
|
|
112
131
|
});
|
|
113
132
|
|
|
114
133
|
it('should have set default on no error', () => {
|
|
115
|
-
const wrapper = shallowMount(Error,
|
|
116
|
-
global: {
|
|
117
|
-
provide: {
|
|
118
|
-
loginService,
|
|
119
|
-
authenticated,
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
});
|
|
134
|
+
const wrapper = shallowMount(Error, mountOptions);
|
|
123
135
|
error = wrapper.vm;
|
|
136
|
+
<%_ if (generateUserManagement) { _%>
|
|
137
|
+
login = useLoginModal();
|
|
138
|
+
<%_ } _%>
|
|
124
139
|
|
|
125
140
|
expect(error.errorMessage).toBeNull();
|
|
126
141
|
expect(error.error403).toBeFalsy();
|
|
127
142
|
expect(error.error404).toBeFalsy();
|
|
128
|
-
<%_ if (
|
|
129
|
-
expect(
|
|
143
|
+
<%_ if (generateUserManagement) { _%>
|
|
144
|
+
expect(login.showLogin).not.toHaveBeenCalled();
|
|
130
145
|
<%_ } else { _%>
|
|
131
146
|
expect(loginService.login).toHaveBeenCalledTimes(0);
|
|
132
147
|
<%_ } _%>
|
|
@@ -1,15 +1,41 @@
|
|
|
1
|
-
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2025 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
import { type ComputedRef, type Ref, defineComponent, inject, ref } from 'vue';
|
|
2
20
|
<%_ if (enableTranslation) { _%>
|
|
3
21
|
import { useI18n } from 'vue-i18n';
|
|
4
22
|
<%_ } _%>
|
|
5
|
-
import type LoginService from '@/account/login.service';
|
|
6
23
|
import { useRoute } from 'vue-router';
|
|
24
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
25
|
+
import type LoginService from '@/account/login.service';
|
|
26
|
+
<%_ } else { _%>
|
|
27
|
+
import { useLoginModal } from '@/account/login-modal';
|
|
28
|
+
<%_ } _%>
|
|
7
29
|
|
|
8
30
|
export default defineComponent({
|
|
9
31
|
compatConfig: { MODE: 3 },
|
|
10
32
|
name: 'Error',
|
|
11
33
|
setup() {
|
|
12
|
-
|
|
34
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
35
|
+
const { login } = inject<LoginService>('loginService');
|
|
36
|
+
<%_ } else { _%>
|
|
37
|
+
const { showLogin } = useLoginModal();
|
|
38
|
+
<%_ } _%>
|
|
13
39
|
const authenticated = inject<ComputedRef<boolean>>('authenticated');
|
|
14
40
|
const errorMessage: Ref<string> = ref(null);
|
|
15
41
|
const error403: Ref<boolean> = ref(false);
|
|
@@ -21,11 +47,7 @@ export default defineComponent({
|
|
|
21
47
|
error403.value = route.meta.error403 ?? false;
|
|
22
48
|
error404.value = route.meta.error404 ?? false;
|
|
23
49
|
if (!authenticated.value && error403.value) {
|
|
24
|
-
<%
|
|
25
|
-
loginService.openLogin();
|
|
26
|
-
<%_ } else { %>
|
|
27
|
-
loginService.login();
|
|
28
|
-
<%_ } %>
|
|
50
|
+
<% if (authenticationTypeOauth2) { %>login<% } else { %>showLogin<% } %>();
|
|
29
51
|
}
|
|
30
52
|
}
|
|
31
53
|
|
package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.spec.ts.ejs
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2025 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
2
20
|
import { ref } from 'vue';
|
|
3
21
|
import { shallowMount } from '@vue/test-utils';
|
|
22
|
+
<%_ if (!authenticationTypeOauth2) { _%>
|
|
23
|
+
import { createTestingPinia } from '@pinia/testing';
|
|
24
|
+
import { useLoginModal } from '@/account/login-modal';
|
|
25
|
+
<%_ } _%>
|
|
4
26
|
import Home from './home.vue';
|
|
5
27
|
|
|
6
28
|
type HomeComponentType = InstanceType<typeof Home>;
|
|
@@ -9,30 +31,37 @@ describe('Home', () => {
|
|
|
9
31
|
let home: HomeComponentType;
|
|
10
32
|
let authenticated;
|
|
11
33
|
let currentUsername;
|
|
12
|
-
<%_ if (
|
|
13
|
-
|
|
14
|
-
<%_ } else if (authenticationTypeSession) { _%>
|
|
15
|
-
const loginService = { openLogin: vitest.fn(), logout: vitest.fn() };
|
|
16
|
-
<%_ } else if (authenticationTypeOauth2) { _%>
|
|
17
|
-
const loginService = { login: vitest.fn(), logout: vitest.fn() };
|
|
34
|
+
<%_ if (!authenticationTypeOauth2) { _%>
|
|
35
|
+
let login: ReturnType<typeof useLoginModal>;
|
|
18
36
|
<%_ } _%>
|
|
19
37
|
|
|
38
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
39
|
+
const loginService = { login: vitest.fn(), logout: vitest.fn() };
|
|
40
|
+
<%_ } _%>
|
|
20
41
|
beforeEach(() => {
|
|
21
42
|
authenticated = ref(false);
|
|
22
43
|
currentUsername = ref('');
|
|
23
44
|
const wrapper = shallowMount(Home, {
|
|
24
45
|
global: {
|
|
46
|
+
<%_ if (!authenticationTypeOauth2) { _%>
|
|
47
|
+
plugins: [createTestingPinia()],
|
|
48
|
+
<%_ } _%>
|
|
25
49
|
stubs: {
|
|
26
50
|
'router-link': true,
|
|
27
51
|
},
|
|
28
52
|
provide: {
|
|
53
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
29
54
|
loginService,
|
|
55
|
+
<%_ } _%>
|
|
30
56
|
authenticated,
|
|
31
57
|
currentUsername,
|
|
32
58
|
},
|
|
33
59
|
},
|
|
34
60
|
});
|
|
35
61
|
home = wrapper.vm;
|
|
62
|
+
<%_ if (!authenticationTypeOauth2) { _%>
|
|
63
|
+
login = useLoginModal();
|
|
64
|
+
<%_ } _%>
|
|
36
65
|
});
|
|
37
66
|
|
|
38
67
|
it('should not have user data set', () => {
|
|
@@ -49,12 +78,13 @@ describe('Home', () => {
|
|
|
49
78
|
});
|
|
50
79
|
|
|
51
80
|
it('should use login service', () => {
|
|
52
|
-
home.openLogin();
|
|
53
81
|
|
|
54
|
-
<%_ if (
|
|
55
|
-
|
|
56
|
-
<%_ } else { %>
|
|
82
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
83
|
+
home.login();
|
|
57
84
|
expect(loginService.login).toHaveBeenCalled();
|
|
85
|
+
<%_ } else { %>
|
|
86
|
+
home.showLogin();
|
|
87
|
+
expect(login.showLogin).toHaveBeenCalled();
|
|
58
88
|
<%_ } %>
|
|
59
89
|
});
|
|
60
90
|
});
|
|
@@ -3,28 +3,27 @@ import { type ComputedRef, defineComponent, inject } from 'vue';
|
|
|
3
3
|
import { useI18n } from 'vue-i18n';
|
|
4
4
|
<%_ } _%>
|
|
5
5
|
|
|
6
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
6
7
|
import type LoginService from '@/account/login.service';
|
|
8
|
+
<%_ } else { _%>
|
|
9
|
+
import { useLoginModal } from '@/account/login-modal';
|
|
10
|
+
<%_ } _%>
|
|
7
11
|
|
|
8
12
|
export default defineComponent({
|
|
9
13
|
compatConfig: { MODE: 3 },
|
|
10
14
|
setup() {
|
|
11
|
-
|
|
12
|
-
|
|
15
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
16
|
+
const { login } = inject<LoginService>('loginService');
|
|
17
|
+
<%_ } else { _%>
|
|
18
|
+
const { showLogin } = useLoginModal();
|
|
19
|
+
<%_ } _%>
|
|
13
20
|
const authenticated = inject<ComputedRef<boolean>>('authenticated');
|
|
14
21
|
const username = inject<ComputedRef<string>>('currentUsername');
|
|
15
22
|
|
|
16
|
-
const openLogin = () => {
|
|
17
|
-
<%_ if (!authenticationTypeOauth2) { _%>
|
|
18
|
-
loginService.openLogin();
|
|
19
|
-
<%_ } else { %>
|
|
20
|
-
loginService.login();
|
|
21
|
-
<%_ } _%>
|
|
22
|
-
};
|
|
23
|
-
|
|
24
23
|
return {
|
|
25
24
|
authenticated,
|
|
26
25
|
username,
|
|
27
|
-
|
|
26
|
+
<% if (authenticationTypeOauth2) { %>login<% } else { %>showLogin<% } %>,
|
|
28
27
|
<%_ if (enableTranslation) { _%>
|
|
29
28
|
t$: useI18n().t,
|
|
30
29
|
<%_ } _%>
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
|
|
10
10
|
<div>
|
|
11
11
|
<div class="alert alert-success" v-if="authenticated">
|
|
12
|
-
<span v-if="username" v-text="t$('home.logged.message', { username
|
|
12
|
+
<span v-if="username" v-text="t$('home.logged.message', { username })">You are logged in as user "{{ username }}"</span>
|
|
13
13
|
</div>
|
|
14
14
|
|
|
15
15
|
<div class="alert alert-warning" v-if="!authenticated">
|
|
16
16
|
<span v-text="t$('global.messages.info.authenticated.prefix')">If you want to </span>
|
|
17
|
-
<a class="alert-link" @click="
|
|
17
|
+
<a class="alert-link" @click="<% if (authenticationTypeOauth2) { %>login<% } else { %>showLogin<% } %>()" v-text="t$('global.messages.info.authenticated.link')">sign in</a
|
|
18
18
|
><span v-html="t$('global.messages.info.authenticated.suffix')"
|
|
19
19
|
>, you can try the default accounts:<br />- Administrator (login="admin" and password="admin") <br />- User (login="user" and
|
|
20
20
|
password="user").</span
|
|
@@ -1,14 +1,36 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2025 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
1
19
|
import { vitest } from 'vitest';
|
|
2
20
|
import { computed } from 'vue';
|
|
3
21
|
import { shallowMount } from '@vue/test-utils';
|
|
4
|
-
import JhiNavbar from './jhi-navbar.vue';
|
|
5
22
|
import { type Router } from 'vue-router';
|
|
6
23
|
import { createTestingPinia } from '@pinia/testing';
|
|
7
24
|
|
|
8
25
|
import { useStore } from '@/store';
|
|
9
26
|
import { createRouter } from '@/router';
|
|
10
|
-
|
|
11
|
-
|
|
27
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
28
|
+
import type LoginService from '@/account/login.service';
|
|
29
|
+
<%_ } _%>
|
|
30
|
+
<%_ if (generateUserManagement) { _%>
|
|
31
|
+
import { useLoginModal } from '@/account/login-modal';
|
|
32
|
+
<%_ } _%>
|
|
33
|
+
import JhiNavbar from './jhi-navbar.vue';
|
|
12
34
|
<%_ if (applicationTypeGateway && microfrontend) { _%>
|
|
13
35
|
|
|
14
36
|
vitest.mock('@module-federation/enhanced/runtime', () => ({
|
|
@@ -23,7 +45,12 @@ const store = useStore();
|
|
|
23
45
|
|
|
24
46
|
describe('JhiNavbar', () => {
|
|
25
47
|
let jhiNavbar: JhiNavbarComponentType;
|
|
48
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
26
49
|
let loginService: LoginService;
|
|
50
|
+
<%_ } _%>
|
|
51
|
+
<%_ if (generateUserManagement) { _%>
|
|
52
|
+
let login: ReturnType<typeof useLoginModal>;
|
|
53
|
+
<%_ } _%>
|
|
27
54
|
const accountService = { hasAnyAuthorityAndCheckAuth: vitest.fn().mockImplementation(() => Promise.resolve(true)) };
|
|
28
55
|
<%_ if (enableTranslation) { _%>
|
|
29
56
|
const changeLanguage = vitest.fn();
|
|
@@ -32,14 +59,7 @@ describe('JhiNavbar', () => {
|
|
|
32
59
|
|
|
33
60
|
beforeEach(() => {
|
|
34
61
|
router = createRouter();
|
|
35
|
-
<%_ if (
|
|
36
|
-
loginService = new LoginService({ emit: vitest.fn() });
|
|
37
|
-
vitest.spyOn(loginService, 'openLogin');
|
|
38
|
-
<%_ } else if (authenticationTypeSession) { _%>
|
|
39
|
-
loginService = new LoginService({ emit: vitest.fn() });
|
|
40
|
-
vitest.spyOn(loginService, 'openLogin');
|
|
41
|
-
vitest.spyOn(loginService, 'logout');
|
|
42
|
-
<%_ } else if (authenticationTypeOauth2) { _%>
|
|
62
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
43
63
|
loginService = { login: vitest.fn(), logout: vitest.fn() };
|
|
44
64
|
<%_ } _%>
|
|
45
65
|
const wrapper = shallowMount(JhiNavbar, {
|
|
@@ -57,7 +77,9 @@ describe('JhiNavbar', () => {
|
|
|
57
77
|
'b-navbar-brand': true,
|
|
58
78
|
},
|
|
59
79
|
provide: {
|
|
80
|
+
<%_ if (authenticationUsesCsrf) { _%>
|
|
60
81
|
loginService,
|
|
82
|
+
<%_ } _%>
|
|
61
83
|
currentLanguage: computed(() => 'foo'),
|
|
62
84
|
<%_ if (enableTranslation) { _%>
|
|
63
85
|
changeLanguage,
|
|
@@ -67,6 +89,9 @@ describe('JhiNavbar', () => {
|
|
|
67
89
|
},
|
|
68
90
|
});
|
|
69
91
|
jhiNavbar = wrapper.vm;
|
|
92
|
+
<%_ if (generateUserManagement) { _%>
|
|
93
|
+
login = useLoginModal();
|
|
94
|
+
<%_ } _%>
|
|
70
95
|
});
|
|
71
96
|
|
|
72
97
|
it('should not have user data set', () => {
|
|
@@ -89,11 +114,12 @@ describe('JhiNavbar', () => {
|
|
|
89
114
|
});
|
|
90
115
|
|
|
91
116
|
it('should use login service', () => {
|
|
92
|
-
jhiNavbar
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
<%_ } else { _%>
|
|
117
|
+
jhiNavbar.<% if (authenticationTypeOauth2) { %>login<% } else { %>showLogin<% } %>();
|
|
118
|
+
|
|
119
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
96
120
|
expect(loginService.login).toHaveBeenCalled();
|
|
121
|
+
<%_ } else { _%>
|
|
122
|
+
expect(login.showLogin).toHaveBeenCalled();
|
|
97
123
|
<%_ } _%>
|
|
98
124
|
});
|
|
99
125
|
|
|
@@ -108,9 +134,10 @@ describe('JhiNavbar', () => {
|
|
|
108
134
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
109
135
|
const logoutUrl = '/to-match';
|
|
110
136
|
(loginService.logout as any).mockReturnValue(Promise.resolve({ data: { logoutUrl } }));
|
|
111
|
-
<%_ } else if (
|
|
137
|
+
<%_ } else if (authenticationUsesCsrf) { _%>
|
|
112
138
|
(loginService.logout as any).mockReturnValue(Promise.resolve({}));
|
|
113
139
|
<%_ } _%>
|
|
140
|
+
|
|
114
141
|
await jhiNavbar.logout();
|
|
115
142
|
|
|
116
143
|
<%_ if (!authenticationTypeJwt) { _%>
|