generator-jhipster 7.4.1 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/generators/app/index.js +11 -1
- package/generators/cleanup.js +27 -171
- package/generators/client/files-angular.js +6 -1
- package/generators/client/files-vue.js +5 -1
- package/generators/client/index.js +2 -1
- package/generators/client/templates/angular/angular.json.ejs +5 -0
- package/generators/client/templates/angular/jest.conf.js.ejs +2 -0
- package/generators/client/templates/angular/package.json +24 -24
- package/generators/client/templates/angular/package.json.ejs +3 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +10 -9
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +8 -6
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/app-routing.module.ts.ejs +14 -3
- package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +8 -29
- package/generators/client/templates/angular/src/main/webapp/app/config/datepicker-adapter.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/config/dayjs.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +14 -9
- package/generators/client/templates/angular/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/entities/entity-navbar-items.ts.ejs +29 -0
- package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +14 -4
- package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +20 -0
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +10 -4
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +41 -2
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +3 -2
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/duration.pipe.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.spec.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.spec.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/language/translate.directive.ts.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/shared/language/translation.module.ts.ejs +83 -0
- package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +16 -2
- package/generators/client/templates/angular/tsconfig.json.ejs +2 -0
- package/generators/client/templates/angular/tsconfig.spec.json.ejs +0 -1
- package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +0 -2
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +0 -16
- package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +12 -5
- package/generators/client/templates/common/package.json +2 -2
- package/generators/client/templates/common/src/main/webapp/robots.txt.ejs +0 -1
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +86 -56
- package/generators/client/templates/react/package.json +27 -27
- package/generators/client/templates/react/package.json.ejs +2 -0
- package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +3 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.scss.ejs +9 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -1
- package/generators/client/templates/react/webpack/webpack.dev.js.ejs +0 -2
- package/generators/client/templates/vue/package.json +22 -22
- package/generators/client/templates/vue/package.json.ejs +3 -3
- package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +19 -9
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +6 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/user/{user.oauth2.service.ts.ejs → user.service.ts.ejs} +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +0 -8
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +4 -4
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +2 -2
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +0 -2
- package/generators/common/templates/README.md.jhi.ejs +1 -3
- package/generators/common/templates/package.json +3 -3
- package/generators/cypress/templates/cypress.json.ejs +9 -2
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +3 -14
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +33 -39
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +52 -62
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +2 -10
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +25 -34
- package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -22
- package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +38 -6
- package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -6
- package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +7 -7
- package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +0 -9
- package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +1 -1
- package/generators/entity/index.js +45 -3
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -35
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +4 -4
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +15 -6
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +12 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +5 -5
- package/generators/entity-client/templates/angular/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +14 -37
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +5 -4
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +23 -19
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +4 -6
- package/generators/entity-server/files.js +10 -0
- package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +5 -8
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +18 -2
- package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +24 -0
- package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +4 -6
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +2 -2
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +2 -2
- package/generators/generator-base-private.js +2 -1
- package/generators/generator-base.js +13 -3
- package/generators/generator-constants.js +7 -7
- package/generators/server/__snapshots__/generator.spec.mjs.snap +16 -15
- package/generators/server/cleanup.js +151 -0
- package/generators/server/files.js +16 -14
- package/generators/server/index.js +34 -23
- package/generators/server/templates/build.gradle.ejs +214 -188
- package/generators/server/templates/gradle.properties.ejs +8 -8
- package/generators/server/templates/npmw +7 -5
- package/generators/server/templates/npmw.cmd +12 -7
- package/generators/server/templates/pom.xml.ejs +419 -329
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -2
- package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +3 -2
- package/generators/server/templates/src/main/java/package/config/OpenApiConfiguration.java.ejs +17 -54
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +5 -5
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +3 -5
- package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -2
- package/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs +19 -9
- package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -2
- package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +6 -4
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +3 -3
- package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +6 -6
- package/generators/server/templates/src/main/java/package/web/filter/ModifyServersOpenApiFilter.java.ejs +3 -2
- package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +2 -2
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +17 -3
- package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +1 -2
- package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +2 -6
- package/generators/server/templates/src/test/java/package/cucumber/CucumberTestContextConfiguration.java.ejs +2 -3
- package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +41 -6
- package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +7 -7
- package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +10 -10
- package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +2 -3
- package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +9 -0
- package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +2 -0
- package/generators/server/templates/src/test/resources/logback.xml.ejs +1 -1
- package/generators/server/templates/src/test/{features → resources/package/features}/gitkeep +0 -0
- package/generators/server/templates/src/test/{features → resources/package/features}/user/user.feature.ejs +0 -0
- package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +1 -1
- package/package.json +9 -9
- package/utils/entity.js +1 -5
- package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +0 -91
- package/generators/server/templates/src/test/java/package/config/apidocs/GatewaySwaggerResourcesProviderTest.java.ejs +0 -79
- package/generators/server/templates/src/test/resources/cucumber.properties.ejs +0 -1
|
@@ -7,39 +7,39 @@
|
|
|
7
7
|
"bootstrap": "4.6.1",
|
|
8
8
|
"bootstrap-vue": "2.21.2",
|
|
9
9
|
"bootswatch": "5.1.3",
|
|
10
|
-
"swagger-ui-dist": "4.1.
|
|
10
|
+
"swagger-ui-dist": "4.1.3",
|
|
11
11
|
"vue": "2.6.14",
|
|
12
12
|
"vue-class-component": "7.2.6",
|
|
13
13
|
"vue-cookie": "1.1.4",
|
|
14
14
|
"vue-infinite-loading": "2.4.5",
|
|
15
15
|
"vue-router": "3.5.3",
|
|
16
|
-
"vue-i18n": "8.26.
|
|
16
|
+
"vue-i18n": "8.26.8",
|
|
17
17
|
"vue-property-decorator": "9.1.2",
|
|
18
|
-
"vuelidate": "0.7.
|
|
18
|
+
"vuelidate": "0.7.7",
|
|
19
19
|
"vuex": "3.6.2",
|
|
20
|
-
"vue2-filters": "0.
|
|
20
|
+
"vue2-filters": "0.14.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@types/jest": "27.0
|
|
24
|
-
"@types/node": "16.11.
|
|
23
|
+
"@types/jest": "27.4.0",
|
|
24
|
+
"@types/node": "16.11.17",
|
|
25
25
|
"@types/sinon": "10.0.6",
|
|
26
26
|
"@types/vuelidate": "0.7.15",
|
|
27
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
28
|
-
"@typescript-eslint/parser": "5.
|
|
27
|
+
"@typescript-eslint/eslint-plugin": "5.8.1",
|
|
28
|
+
"@typescript-eslint/parser": "5.8.1",
|
|
29
29
|
"@vue/eslint-config-prettier": "6.0.0",
|
|
30
30
|
"@vue/eslint-config-typescript": "9.1.0",
|
|
31
31
|
"@vue/vue2-jest": "27.0.0-alpha.3",
|
|
32
32
|
"@vue/test-utils": "1.3.0",
|
|
33
33
|
"axios-mock-adapter": "1.20.0",
|
|
34
|
-
"autoprefixer": "10.4.
|
|
34
|
+
"autoprefixer": "10.4.1",
|
|
35
35
|
"browser-sync-webpack-plugin": "2.3.0",
|
|
36
|
-
"copy-webpack-plugin": "10.
|
|
36
|
+
"copy-webpack-plugin": "10.2.0",
|
|
37
37
|
"css-loader": "6.5.1",
|
|
38
|
-
"css-minimizer-webpack-plugin": "3.
|
|
38
|
+
"css-minimizer-webpack-plugin": "3.3.1",
|
|
39
39
|
"folder-hash": "4.0.1",
|
|
40
40
|
"fork-ts-checker-webpack-plugin": "6.5.0",
|
|
41
41
|
"html-webpack-plugin": "5.5.0",
|
|
42
|
-
"jest": "27.4.
|
|
42
|
+
"jest": "27.4.5",
|
|
43
43
|
"jest-junit": "13.0.0",
|
|
44
44
|
"jest-serializer-vue": "2.0.2",
|
|
45
45
|
"jest-sonar-reporter": "2.0.0",
|
|
@@ -51,22 +51,22 @@
|
|
|
51
51
|
"postcss-loader": "6.2.1",
|
|
52
52
|
"postcss-url": "10.1.3",
|
|
53
53
|
"rimraf": "3.0.2",
|
|
54
|
-
"sass": "1.
|
|
55
|
-
"sass-loader": "12.
|
|
54
|
+
"sass": "1.45.2",
|
|
55
|
+
"sass-loader": "12.4.0",
|
|
56
56
|
"sinon": "12.0.1",
|
|
57
|
-
"terser-webpack-plugin": "5.
|
|
58
|
-
"ts-jest": "27.
|
|
57
|
+
"terser-webpack-plugin": "5.3.0",
|
|
58
|
+
"ts-jest": "27.1.2",
|
|
59
59
|
"ts-loader": "9.2.6",
|
|
60
|
-
"eslint": "8.
|
|
60
|
+
"eslint": "8.5.0",
|
|
61
61
|
"eslint-plugin-prettier": "3.4.1",
|
|
62
|
-
"eslint-plugin-vue": "8.
|
|
63
|
-
"typescript": "4.5.
|
|
64
|
-
"webpack": "5.
|
|
62
|
+
"eslint-plugin-vue": "8.2.0",
|
|
63
|
+
"typescript": "4.5.4",
|
|
64
|
+
"webpack": "5.65.0",
|
|
65
65
|
"webpack-bundle-analyzer": "4.5.0",
|
|
66
66
|
"webpack-cli": "4.9.1",
|
|
67
|
-
"webpack-dev-server": "4.
|
|
67
|
+
"webpack-dev-server": "4.7.2",
|
|
68
68
|
"webpack-merge": "5.8.0",
|
|
69
|
-
"workbox-webpack-plugin": "6.4.
|
|
69
|
+
"workbox-webpack-plugin": "6.4.2",
|
|
70
70
|
"vue-jest": "3.0.7",
|
|
71
71
|
"vue-loader": "15.9.8"
|
|
72
72
|
}
|
|
@@ -183,9 +183,9 @@
|
|
|
183
183
|
"test:watch": "<%= clientPackageManager %> run jest -- --watch",
|
|
184
184
|
"watch": "concurrently npm:start<% if(!skipServer) { %> npm:backend:start<% } %>",
|
|
185
185
|
"webapp:build": "<%= clientPackageManager %> run clean-www && <%= clientPackageManager %> run webapp:build:dev --",
|
|
186
|
-
"webapp:build:dev": "<%= clientPackageManager %> run webpack -- --mode development --
|
|
187
|
-
"webapp:build:prod": "<%= clientPackageManager %> run webpack -- --mode production --
|
|
188
|
-
"webapp:dev": "<%= clientPackageManager %> run webpack-dev-server -- --mode development --
|
|
186
|
+
"webapp:build:dev": "<%= clientPackageManager %> run webpack -- --mode development --env stats=minimal",
|
|
187
|
+
"webapp:build:prod": "<%= clientPackageManager %> run webpack -- --mode production --env stats=minimal",
|
|
188
|
+
"webapp:dev": "<%= clientPackageManager %> run webpack-dev-server -- --mode development --env stats=normal",
|
|
189
189
|
"webapp:prod": "<%= clientPackageManager %> run clean-www && <%= clientPackageManager %> run webapp:build:prod --",
|
|
190
190
|
"webapp:test": "<%= clientPackageManager %> run test --",
|
|
191
191
|
"webpack-dev-server": "webpack serve --config webpack/webpack.common.js",
|
|
@@ -89,18 +89,17 @@ export default class AccountService {
|
|
|
89
89
|
if (!this.authenticated || !this.userAuthorities) {
|
|
90
90
|
const token = <%_ if (authenticationTypeJwt) { _%> localStorage.getItem('<%=jhiPrefixDashed %>-authenticationToken') || sessionStorage.getItem('<%=jhiPrefixDashed %>-authenticationToken'); <%_ } else { _%> this.cookie.get('JSESSIONID') || this.cookie.get('XSRF-TOKEN'); <%_ } _%>
|
|
91
91
|
if (!this.store.getters.account && !this.store.getters.logon && token) {
|
|
92
|
-
return this.retrieveAccount()
|
|
92
|
+
return this.retrieveAccount().then(resp => {
|
|
93
|
+
if (resp) {
|
|
94
|
+
return this.checkAuthorities(authorities);
|
|
95
|
+
}
|
|
96
|
+
return Promise.resolve(false);
|
|
97
|
+
});
|
|
93
98
|
}
|
|
94
99
|
return Promise.resolve(false);
|
|
95
100
|
}
|
|
96
101
|
|
|
97
|
-
|
|
98
|
-
if (this.userAuthorities.includes(authority)) {
|
|
99
|
-
return Promise.resolve(true);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return Promise.resolve(false);
|
|
102
|
+
return this.checkAuthorities(authorities);
|
|
104
103
|
}
|
|
105
104
|
|
|
106
105
|
public get authenticated(): boolean {
|
|
@@ -108,6 +107,17 @@ export default class AccountService {
|
|
|
108
107
|
}
|
|
109
108
|
|
|
110
109
|
public get userAuthorities(): any {
|
|
111
|
-
return this.store.getters.account
|
|
110
|
+
return this.store.getters.account?.authorities;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
private checkAuthorities(authorities: any): Promise<boolean> {
|
|
114
|
+
if (this.userAuthorities) {
|
|
115
|
+
for (const authority of authorities) {
|
|
116
|
+
if (this.userAuthorities.includes(authority)) {
|
|
117
|
+
return Promise.resolve(true);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return Promise.resolve(false);
|
|
112
122
|
}
|
|
113
123
|
}
|
package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Component, Provide, Vue } from 'vue-property-decorator';
|
|
2
2
|
|
|
3
|
+
<%_ if (!skipUserManagement || authenticationTypeOauth2) { %>
|
|
4
|
+
import UserService from '@/entities/user/user.service';
|
|
5
|
+
<%_ } _%>
|
|
3
6
|
<%_ for (entity of this.localEntities.filter(entity => !entity.embedded)) { _%>
|
|
4
7
|
import <%= entity.entityAngularName %>Service from './<%= entity.entityFolderName %>/<%= entity.entityFileName %>.service';
|
|
5
8
|
<%_ } _%>
|
|
@@ -7,6 +10,9 @@ import <%= entity.entityAngularName %>Service from './<%= entity.entityFolderNam
|
|
|
7
10
|
|
|
8
11
|
@Component
|
|
9
12
|
export default class Entities extends Vue {
|
|
13
|
+
<%_ if (!skipUserManagement || authenticationTypeOauth2) { %>
|
|
14
|
+
@Provide('userService') private userService = () => new UserService();
|
|
15
|
+
<%_ } _%>
|
|
10
16
|
<%_ for (entity of this.localEntities.filter(entity => !entity.embedded)) { _%>
|
|
11
17
|
@Provide('<%= entity.entityInstance %>Service') private <%= entity.entityInstance %>Service = () => new <%= entity.entityAngularName %>Service();
|
|
12
18
|
<%_ } _%>
|
|
@@ -20,7 +20,6 @@ import ConfigurationService from '@/admin/configuration/configuration.service';
|
|
|
20
20
|
<%_ if (!skipUserManagement) { _%>
|
|
21
21
|
import ActivateService from './account/activate/activate.service';
|
|
22
22
|
import RegisterService from './account/register/register.service';
|
|
23
|
-
import UserManagementService from '@/admin/user-management/user-management.service';
|
|
24
23
|
<%_ } _%>
|
|
25
24
|
import LoginService from './account/login.service';
|
|
26
25
|
import AccountService from './account/account.service';
|
|
@@ -37,9 +36,6 @@ import GatewayService from '@/admin/gateway/gateway.service';
|
|
|
37
36
|
<%_ if (communicationSpringWebsocket) { _%>
|
|
38
37
|
import TrackerService from './admin/tracker/tracker.service';
|
|
39
38
|
<%_ } _%>
|
|
40
|
-
<%_ if (!skipUserManagement || authenticationTypeOauth2) { %>
|
|
41
|
-
import UserOAuth2Service from '@/entities/user/user.oauth2.service';
|
|
42
|
-
<%_ } _%>
|
|
43
39
|
/* tslint:disable */
|
|
44
40
|
|
|
45
41
|
// jhipster-needle-add-entity-service-to-main-import - JHipster will import entities services here
|
|
@@ -106,7 +102,6 @@ new Vue({
|
|
|
106
102
|
<%_ if (!skipUserManagement) { _%>
|
|
107
103
|
activateService: () => new ActivateService(),
|
|
108
104
|
registerService: () => new RegisterService(),
|
|
109
|
-
userService: () => new UserManagementService(),
|
|
110
105
|
<%_ } _%>
|
|
111
106
|
<%_ if (applicationTypeGateway && serviceDiscoveryType) { %>
|
|
112
107
|
gatewayService: () => new GatewayService(),
|
|
@@ -120,9 +115,6 @@ new Vue({
|
|
|
120
115
|
<%_ if (communicationSpringWebsocket) { _%>
|
|
121
116
|
trackerService: () => trackerService,
|
|
122
117
|
<%_ } %>
|
|
123
|
-
<%_ if (!skipUserManagement || authenticationTypeOauth2) { %>
|
|
124
|
-
userOAuth2Service: () => new UserOAuth2Service(),
|
|
125
|
-
<%_ } _%>
|
|
126
118
|
<%_ if (enableTranslation) { _%>
|
|
127
119
|
translationService: () => translationService,
|
|
128
120
|
<%_ } _%>
|
|
@@ -87,8 +87,8 @@ describe('UserManagementEdit Component', () => {
|
|
|
87
87
|
// GIVEN
|
|
88
88
|
axiosStub.put.resolves({
|
|
89
89
|
headers: {
|
|
90
|
-
'x
|
|
91
|
-
'x
|
|
90
|
+
'x-<%= frontendAppName.toLowerCase() %>-alert': '',
|
|
91
|
+
'x-<%= frontendAppName.toLowerCase() %>-params': '',
|
|
92
92
|
},
|
|
93
93
|
});
|
|
94
94
|
userManagementEdit.userAccount = { id: <%- tsKeyId %>, authorities: [] };
|
|
@@ -106,8 +106,8 @@ describe('UserManagementEdit Component', () => {
|
|
|
106
106
|
// GIVEN
|
|
107
107
|
axiosStub.post.resolves({
|
|
108
108
|
headers: {
|
|
109
|
-
'x
|
|
110
|
-
'x
|
|
109
|
+
'x-<%= frontendAppName.toLowerCase() %>-alert': '',
|
|
110
|
+
'x-<%= frontendAppName.toLowerCase() %>-params': '',
|
|
111
111
|
},
|
|
112
112
|
});
|
|
113
113
|
userManagementEdit.userAccount = { authorities: [] };
|
|
@@ -98,8 +98,8 @@ describe('UserManagement Component', () => {
|
|
|
98
98
|
// GIVEN
|
|
99
99
|
axiosStub.delete.resolves({
|
|
100
100
|
headers: {
|
|
101
|
-
'x
|
|
102
|
-
'x
|
|
101
|
+
'x-<%= frontendAppName.toLowerCase() %>-alert': '',
|
|
102
|
+
'x-<%= frontendAppName.toLowerCase() %>-params': '',
|
|
103
103
|
},
|
|
104
104
|
});
|
|
105
105
|
|
|
@@ -61,10 +61,8 @@ JHipster configuration is stored in this file at `generator-jhipster` key. You m
|
|
|
61
61
|
- `.yo-resolve` (optional) - Yeoman conflict resolver
|
|
62
62
|
Allows to use a specific action when conflicts are found skipping prompts for files that matches a pattern. Each line should match `[pattern] [action]` with pattern been a [Minimatch](https://github.com/isaacs/minimatch#minimatch) pattern and action been one of skip (default if ommited) or force. Lines starting with `#` are considered comments and are ignored.
|
|
63
63
|
- `.jhipster/*.json` - JHipster entity configuration files
|
|
64
|
-
<%_ if (buildToolMaven) { _%>
|
|
65
64
|
- `npmw` - wrapper to use locally installed npm.
|
|
66
|
-
JHipster installs Node and npm locally using the build tool by default. This wrapper makes sure npm is installed locally and uses it avoiding some differences different versions can cause. By using `./npmw` instead of the traditional `npm` you can configure a Node-less environment to develop your application.
|
|
67
|
-
<%_ } _%>
|
|
65
|
+
JHipster installs Node and npm locally using the build tool by default. This wrapper makes sure npm is installed locally and uses it avoiding some differences different versions can cause. By using `./npmw` instead of the traditional `npm` you can configure a Node-less environment to develop or test your application.
|
|
68
66
|
- `/src/main/docker` - Docker configurations for the application and services that the application depends on
|
|
69
67
|
|
|
70
68
|
## Development
|
|
@@ -31,9 +31,16 @@
|
|
|
31
31
|
<%_ } _%>
|
|
32
32
|
"viewportWidth": 1200,
|
|
33
33
|
"viewportHeight": 720,
|
|
34
|
-
"retries": 2
|
|
34
|
+
"retries": 2,
|
|
35
|
+
<%_ if (authenticationTypeJwt) { _%>
|
|
35
36
|
"env": {
|
|
37
|
+
"authenticationUrl": "/api/authenticate",
|
|
36
38
|
"jwtStorageName": "<%= jhiPrefixDashed %>-authenticationToken"
|
|
37
|
-
}
|
|
39
|
+
},
|
|
40
|
+
<%_ } else if (authenticationTypeSession) { _%>
|
|
41
|
+
"env": {
|
|
42
|
+
"authenticationUrl": "/api/authentication"
|
|
43
|
+
},
|
|
38
44
|
<%_ } _%>
|
|
45
|
+
"experimentalSessionSupport": true,
|
|
39
46
|
}
|
|
@@ -25,17 +25,10 @@ import {
|
|
|
25
25
|
} from '../../support/commands';
|
|
26
26
|
|
|
27
27
|
describe('login modal', () => {
|
|
28
|
-
const username = Cypress.env('E2E_USERNAME') ?? '
|
|
29
|
-
const password = Cypress.env('E2E_PASSWORD') ?? '
|
|
28
|
+
const username = Cypress.env('E2E_USERNAME') ?? 'user';
|
|
29
|
+
const password = Cypress.env('E2E_PASSWORD') ?? 'user';
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
cy.window().then(win => {
|
|
33
|
-
win.sessionStorage.clear();
|
|
34
|
-
});
|
|
35
|
-
<%_ if (authenticationTypeSession) { _%>
|
|
36
|
-
cy.clearCookie('SESSION');
|
|
37
|
-
<%_ } _%>
|
|
38
|
-
cy.clearCookies();
|
|
31
|
+
beforeEach(() => {
|
|
39
32
|
cy.visit('');
|
|
40
33
|
cy.clickOnLoginItem();
|
|
41
34
|
});
|
|
@@ -56,7 +49,6 @@ describe('login modal', () => {
|
|
|
56
49
|
<%_ } _%>
|
|
57
50
|
// login page should stay open when login fails
|
|
58
51
|
cy.get(titleLoginSelector).should('be.visible');
|
|
59
|
-
cy.get(passwordLoginSelector).clear();
|
|
60
52
|
});
|
|
61
53
|
|
|
62
54
|
it('requires password', () => {
|
|
@@ -69,7 +61,6 @@ describe('login modal', () => {
|
|
|
69
61
|
// login page should stay open when login fails
|
|
70
62
|
cy.get(titleLoginSelector).should('be.visible');
|
|
71
63
|
<%_ } _%>
|
|
72
|
-
cy.get(usernameLoginSelector).clear();
|
|
73
64
|
});
|
|
74
65
|
|
|
75
66
|
it('errors when password is incorrect', () => {
|
|
@@ -78,8 +69,6 @@ describe('login modal', () => {
|
|
|
78
69
|
cy.get(submitLoginSelector).click();
|
|
79
70
|
cy.wait('@authenticate').then(({ response }) => expect(response.statusCode).to.equal(401));
|
|
80
71
|
cy.get(errorLoginSelector).should('be.visible');
|
|
81
|
-
cy.get(usernameLoginSelector).clear();
|
|
82
|
-
cy.get(passwordLoginSelector).clear();
|
|
83
72
|
});
|
|
84
73
|
|
|
85
74
|
it('go to login page when successfully logs in', () => {
|
|
@@ -26,77 +26,71 @@ import {
|
|
|
26
26
|
} from '../../support/commands';
|
|
27
27
|
|
|
28
28
|
describe('/account/password', () => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
cy.
|
|
35
|
-
<%_ } _%>
|
|
36
|
-
cy.clearCookies();
|
|
37
|
-
cy.visit('');
|
|
38
|
-
cy.login('user', 'user');
|
|
39
|
-
cy.clickOnPasswordItem();
|
|
29
|
+
const username = Cypress.env('E2E_USERNAME') ?? 'user';
|
|
30
|
+
const password = Cypress.env('E2E_PASSWORD') ?? 'user';
|
|
31
|
+
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
cy.login(username, password);
|
|
34
|
+
cy.visit('/account/password');
|
|
40
35
|
});
|
|
41
36
|
|
|
42
37
|
beforeEach(() => {
|
|
43
38
|
cy.intercept('POST', '/api/account/change-password').as('passwordSave');
|
|
44
39
|
});
|
|
45
40
|
|
|
41
|
+
it('should be accessible through menu', () => {
|
|
42
|
+
cy.visit('');
|
|
43
|
+
cy.clickOnPasswordItem();
|
|
44
|
+
cy.url().should('match', /\/account\/password$/);
|
|
45
|
+
});
|
|
46
|
+
|
|
46
47
|
it("requires current password", () => {
|
|
47
48
|
<%_ if (clientFrameworkReact) { _%>
|
|
48
|
-
cy.get(submitPasswordSelector).click(
|
|
49
|
+
cy.get(submitPasswordSelector).click();
|
|
49
50
|
<%_ } _%>
|
|
50
51
|
cy.get(currentPasswordSelector)
|
|
51
52
|
.should('have.class', classInvalid)
|
|
52
|
-
.type('wrong-current-password')
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
<%_ } _%>
|
|
56
|
-
cy.get(currentPasswordSelector).should('have.class', classValid);
|
|
57
|
-
cy.get(currentPasswordSelector).clear();
|
|
53
|
+
.type('wrong-current-password')
|
|
54
|
+
.blur()
|
|
55
|
+
.should('have.class', classValid);
|
|
58
56
|
});
|
|
59
57
|
|
|
60
58
|
it("requires new password", () => {
|
|
61
|
-
cy.get(newPasswordSelector)
|
|
62
|
-
.should('have.class', classInvalid)
|
|
63
|
-
.type('jhipster');
|
|
64
59
|
<%_ if (clientFrameworkReact) { _%>
|
|
65
|
-
cy.get(submitPasswordSelector).click(
|
|
60
|
+
cy.get(submitPasswordSelector).click();
|
|
66
61
|
<%_ } _%>
|
|
67
|
-
cy.get(newPasswordSelector)
|
|
68
|
-
|
|
62
|
+
cy.get(newPasswordSelector)
|
|
63
|
+
.should('have.class', classInvalid)
|
|
64
|
+
.type('jhipster')
|
|
65
|
+
.blur()
|
|
66
|
+
.should('have.class', classValid);
|
|
69
67
|
});
|
|
70
68
|
|
|
71
69
|
it("requires confirm new password", () => {
|
|
70
|
+
<%_ if (clientFrameworkReact) { _%>
|
|
71
|
+
cy.get(submitPasswordSelector).click();
|
|
72
|
+
<%_ } _%>
|
|
72
73
|
cy.get(newPasswordSelector).type('jhipster');
|
|
73
74
|
cy.get(confirmPasswordSelector)
|
|
74
75
|
.should('have.class', classInvalid)
|
|
75
|
-
.type('jhipster')
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<%_ } _%>
|
|
79
|
-
cy.get(confirmPasswordSelector).should('have.class', classValid);
|
|
80
|
-
cy.get(newPasswordSelector).clear();
|
|
81
|
-
cy.get(confirmPasswordSelector).clear();
|
|
76
|
+
.type('jhipster')
|
|
77
|
+
.blur()
|
|
78
|
+
.should('have.class', classValid);
|
|
82
79
|
});
|
|
83
80
|
|
|
84
81
|
it("should fail to update password when using incorrect current password", () => {
|
|
85
82
|
cy.get(currentPasswordSelector).type('wrong-current-password');
|
|
86
83
|
cy.get(newPasswordSelector).type('jhipster');
|
|
87
84
|
cy.get(confirmPasswordSelector).type('jhipster');
|
|
88
|
-
cy.get(submitPasswordSelector).click(
|
|
85
|
+
cy.get(submitPasswordSelector).click();
|
|
89
86
|
cy.wait('@passwordSave').then(({ response }) => expect(response.statusCode).to.equal(400));
|
|
90
|
-
cy.get(currentPasswordSelector).clear();
|
|
91
|
-
cy.get(newPasswordSelector).clear();
|
|
92
|
-
cy.get(confirmPasswordSelector).clear();
|
|
93
87
|
});
|
|
94
88
|
|
|
95
89
|
it("should be able to update password", () => {
|
|
96
|
-
cy.get(currentPasswordSelector).type(
|
|
97
|
-
cy.get(newPasswordSelector).type(
|
|
98
|
-
cy.get(confirmPasswordSelector).type(
|
|
99
|
-
cy.get(submitPasswordSelector).click(
|
|
90
|
+
cy.get(currentPasswordSelector).type(password);
|
|
91
|
+
cy.get(newPasswordSelector).type(password);
|
|
92
|
+
cy.get(confirmPasswordSelector).type(password);
|
|
93
|
+
cy.get(submitPasswordSelector).click();
|
|
100
94
|
cy.wait('@passwordSave').then(({ response }) => expect(response.statusCode).to.equal(200));
|
|
101
95
|
});
|
|
102
96
|
});
|
|
@@ -26,101 +26,95 @@ import {
|
|
|
26
26
|
classValid,
|
|
27
27
|
} from '../../support/commands';
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
});
|
|
34
|
-
<%_ if (authenticationTypeSession) { _%>
|
|
35
|
-
cy.clearCookie('SESSION');
|
|
36
|
-
<%_ } _%>
|
|
37
|
-
cy.clearCookies();
|
|
38
|
-
cy.visit('');
|
|
39
|
-
cy.clickOnRegisterItem();
|
|
29
|
+
<% const registerPage = clientFrameworkVue ? '/register' : '/account/register'; _%>
|
|
30
|
+
describe('<%= registerPage %>', () => {
|
|
31
|
+
beforeEach(() => {
|
|
32
|
+
cy.visit('<%= registerPage %>');
|
|
40
33
|
});
|
|
41
34
|
|
|
42
35
|
beforeEach(() => {
|
|
43
36
|
cy.intercept('POST', '/api/register').as('registerSave');
|
|
44
37
|
});
|
|
45
38
|
|
|
39
|
+
it('should be accessible through menu', () => {
|
|
40
|
+
cy.visit('');
|
|
41
|
+
cy.clickOnRegisterItem();
|
|
42
|
+
cy.url().should('match', /<%= registerPage.replaceAll('/', '\\/') %>$/);
|
|
43
|
+
});
|
|
44
|
+
|
|
46
45
|
it('should load the register page', () => {
|
|
47
46
|
cy.get(submitRegisterSelector).should('be.visible');
|
|
48
47
|
});
|
|
49
48
|
|
|
50
49
|
it('requires username', () => {
|
|
51
50
|
<%_ if (clientFrameworkReact) { _%>
|
|
52
|
-
cy.get(submitRegisterSelector).click(
|
|
51
|
+
cy.get(submitRegisterSelector).click();
|
|
53
52
|
<%_ } _%>
|
|
54
53
|
cy.get(usernameRegisterSelector)
|
|
55
54
|
.should('have.class', classInvalid)
|
|
56
|
-
.type('test')
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
<%_ } _%>
|
|
60
|
-
cy.get(usernameRegisterSelector).should('have.class', classValid)
|
|
61
|
-
.clear();
|
|
55
|
+
.type('test')
|
|
56
|
+
.blur()
|
|
57
|
+
.should('have.class', classValid);
|
|
62
58
|
});
|
|
63
59
|
|
|
64
|
-
it('
|
|
65
|
-
cy.get(emailRegisterSelector)
|
|
66
|
-
.should('have.class', classInvalid)
|
|
67
|
-
.type('testtest.fr');
|
|
60
|
+
it('should not accept invalid email', () => {
|
|
68
61
|
<%_ if (clientFrameworkReact) { _%>
|
|
69
|
-
cy.get(submitRegisterSelector).click(
|
|
62
|
+
cy.get(submitRegisterSelector).click();
|
|
70
63
|
<%_ } _%>
|
|
71
|
-
cy.get(emailRegisterSelector)
|
|
72
|
-
.
|
|
64
|
+
cy.get(emailRegisterSelector)
|
|
65
|
+
.should('have.class', classInvalid)
|
|
66
|
+
.type('testtest.fr')
|
|
67
|
+
.blur()
|
|
68
|
+
.should('have.class', classInvalid);
|
|
73
69
|
});
|
|
74
70
|
|
|
75
71
|
it('requires email in correct format', () => {
|
|
76
|
-
cy.get(emailRegisterSelector)
|
|
77
|
-
.should('have.class', classInvalid)
|
|
78
|
-
.type('test@test.fr');
|
|
79
72
|
<%_ if (clientFrameworkReact) { _%>
|
|
80
|
-
cy.get(submitRegisterSelector).click(
|
|
73
|
+
cy.get(submitRegisterSelector).click();
|
|
81
74
|
<%_ } _%>
|
|
82
|
-
cy.get(emailRegisterSelector)
|
|
83
|
-
.
|
|
75
|
+
cy.get(emailRegisterSelector)
|
|
76
|
+
.should('have.class', classInvalid)
|
|
77
|
+
.type('test@test.fr')
|
|
78
|
+
.blur()
|
|
79
|
+
.should('have.class', classValid);
|
|
84
80
|
});
|
|
85
81
|
|
|
86
82
|
it('requires first password', () => {
|
|
87
|
-
cy.get(firstPasswordRegisterSelector)
|
|
88
|
-
.should('have.class', classInvalid)
|
|
89
|
-
.type('test@test.fr');
|
|
90
83
|
<%_ if (clientFrameworkReact) { _%>
|
|
91
|
-
cy.get(submitRegisterSelector).click(
|
|
84
|
+
cy.get(submitRegisterSelector).click();
|
|
92
85
|
<%_ } _%>
|
|
93
|
-
cy.get(firstPasswordRegisterSelector)
|
|
94
|
-
.
|
|
86
|
+
cy.get(firstPasswordRegisterSelector)
|
|
87
|
+
.should('have.class', classInvalid)
|
|
88
|
+
.type('test@test.fr')
|
|
89
|
+
.blur()
|
|
90
|
+
.should('have.class', classValid);
|
|
95
91
|
});
|
|
96
92
|
|
|
97
93
|
it('requires password and confirm password to be same', () => {
|
|
98
|
-
cy.get(firstPasswordRegisterSelector)
|
|
99
|
-
.should('have.class', classInvalid)
|
|
100
|
-
.type('test');
|
|
101
94
|
<%_ if (clientFrameworkReact) { _%>
|
|
102
|
-
cy.get(submitRegisterSelector).click(
|
|
95
|
+
cy.get(submitRegisterSelector).click();
|
|
103
96
|
<%_ } _%>
|
|
104
|
-
cy.get(firstPasswordRegisterSelector)
|
|
97
|
+
cy.get(firstPasswordRegisterSelector)
|
|
98
|
+
.should('have.class', classInvalid)
|
|
99
|
+
.type('test')
|
|
100
|
+
.blur()
|
|
101
|
+
.should('have.class', classValid);
|
|
105
102
|
cy.get(secondPasswordRegisterSelector)
|
|
106
103
|
.should('have.class', classInvalid)
|
|
107
|
-
.type('test')
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
<%_ } _%>
|
|
111
|
-
cy.get(secondPasswordRegisterSelector).should('have.class', classValid);
|
|
112
|
-
cy.get(firstPasswordRegisterSelector).clear();
|
|
113
|
-
cy.get(secondPasswordRegisterSelector).clear();
|
|
104
|
+
.type('test')
|
|
105
|
+
.blur()
|
|
106
|
+
.should('have.class', classValid);
|
|
114
107
|
});
|
|
115
108
|
|
|
116
109
|
it('requires password and confirm password have not the same value', () => {
|
|
117
|
-
cy.get(firstPasswordRegisterSelector)
|
|
118
|
-
.should('have.class', classInvalid)
|
|
119
|
-
.type('test');
|
|
120
110
|
<%_ if (clientFrameworkReact) { _%>
|
|
121
|
-
cy.get(submitRegisterSelector).click(
|
|
111
|
+
cy.get(submitRegisterSelector).click();
|
|
122
112
|
<%_ } _%>
|
|
123
|
-
cy.get(firstPasswordRegisterSelector)
|
|
113
|
+
cy.get(firstPasswordRegisterSelector)
|
|
114
|
+
.should('have.class', classInvalid)
|
|
115
|
+
.type('test')
|
|
116
|
+
.blur()
|
|
117
|
+
.should('have.class', classValid);
|
|
124
118
|
<%_ if (clientFrameworkAngular) { _%>
|
|
125
119
|
cy.get(secondPasswordRegisterSelector)
|
|
126
120
|
.should('have.class', classInvalid)
|
|
@@ -129,14 +123,10 @@ describe('/account/register', () => {
|
|
|
129
123
|
<%_ } else { _%>
|
|
130
124
|
cy.get(secondPasswordRegisterSelector)
|
|
131
125
|
.should('have.class', classInvalid)
|
|
132
|
-
.type('otherPassword')
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
<%_ } _%>
|
|
136
|
-
cy.get(secondPasswordRegisterSelector).should('have.class', classInvalid);
|
|
126
|
+
.type('otherPassword')
|
|
127
|
+
.blur()
|
|
128
|
+
.should('have.class', classInvalid);
|
|
137
129
|
<%_ } _%>
|
|
138
|
-
cy.get(firstPasswordRegisterSelector).clear();
|
|
139
|
-
cy.get(secondPasswordRegisterSelector).clear();
|
|
140
130
|
});
|
|
141
131
|
|
|
142
132
|
it('register a valid user', () => {
|
|
@@ -146,7 +136,7 @@ describe('/account/register', () => {
|
|
|
146
136
|
cy.get(emailRegisterSelector).type(randomEmail);
|
|
147
137
|
cy.get(firstPasswordRegisterSelector).type('jondoe');
|
|
148
138
|
cy.get(secondPasswordRegisterSelector).type('jondoe');
|
|
149
|
-
cy.get(submitRegisterSelector).click(
|
|
139
|
+
cy.get(submitRegisterSelector).click();
|
|
150
140
|
cy.wait('@registerSave').then(({ response }) => expect(response.statusCode).to.equal(201));
|
|
151
141
|
});
|
|
152
142
|
});
|