graphdb-workbench-tests 3.5.0-TR2 → 3.5.0-TR3
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/e2e-legacy/setup/aclmanagement/create-rule.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/delete-rule.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/edit-rule.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/render-rules.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/reorder-rules.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/revert-rules.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/scopes.spec.js +2 -2
- package/e2e-legacy/setup/aclmanagement/update-rules.spec.js +2 -2
- package/e2e-legacy/setup/jdbc/jdbc-create.spec.js +1 -1
- package/e2e-legacy/setup/users-and-access/user-and-access.spec.js +550 -343
- package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +15 -15
- package/e2e-security/setup/users-and-access/graphql-user.spec.js +3 -3
- package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +2 -2
- package/eslint.config.js +1 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
- package/steps/application-steps.js +1 -1
- package/steps/main-menu-steps.js +5 -1
- package/steps/setup/user-and-access-steps.js +81 -53
- package/stubs/security-stubs.js +4 -0
|
@@ -38,8 +38,8 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
|
|
|
38
38
|
it('should show error when username is empty', () => {
|
|
39
39
|
UserAndAccessSteps.typePassword(testPassword);
|
|
40
40
|
UserAndAccessSteps.typeConfirmPasswordField(testPassword);
|
|
41
|
-
UserAndAccessSteps.
|
|
42
|
-
UserAndAccessSteps.
|
|
41
|
+
UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
|
|
42
|
+
UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
|
|
43
43
|
UserAndAccessSteps.confirmUserCreate();
|
|
44
44
|
UserAndAccessSteps.getUserFieldError('username').should('be.visible').and('contain.text', 'Enter username!');
|
|
45
45
|
});
|
|
@@ -55,8 +55,8 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
|
|
|
55
55
|
UserAndAccessSteps.typeUsername(testUsername);
|
|
56
56
|
UserAndAccessSteps.typePassword(testPassword);
|
|
57
57
|
UserAndAccessSteps.typeConfirmPasswordField('Different123!');
|
|
58
|
-
UserAndAccessSteps.
|
|
59
|
-
UserAndAccessSteps.
|
|
58
|
+
UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
|
|
59
|
+
UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
|
|
60
60
|
UserAndAccessSteps.confirmUserCreate();
|
|
61
61
|
UserAndAccessSteps.getUserFieldError('confirmPassword').should('be.visible').and('contain.text', 'Confirm password!');
|
|
62
62
|
});
|
|
@@ -65,8 +65,8 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
|
|
|
65
65
|
UserAndAccessSteps.typeUsername('user');
|
|
66
66
|
UserAndAccessSteps.typePassword(testPassword);
|
|
67
67
|
UserAndAccessSteps.typeConfirmPasswordField(testPassword);
|
|
68
|
-
UserAndAccessSteps.
|
|
69
|
-
UserAndAccessSteps.
|
|
68
|
+
UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
|
|
69
|
+
UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
|
|
70
70
|
UserAndAccessSteps.confirmUserCreate();
|
|
71
71
|
|
|
72
72
|
cy.url().should('include', '/users');
|
|
@@ -74,7 +74,7 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
|
|
|
74
74
|
UserAndAccessSteps.typeUsername('user');
|
|
75
75
|
UserAndAccessSteps.typePassword(testPassword);
|
|
76
76
|
UserAndAccessSteps.typeConfirmPasswordField(testPassword);
|
|
77
|
-
UserAndAccessSteps.
|
|
77
|
+
UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
|
|
78
78
|
UserAndAccessSteps.confirmUserCreate();
|
|
79
79
|
|
|
80
80
|
// Using the toaster from the shared components which has different class names
|
|
@@ -96,8 +96,8 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
|
|
|
96
96
|
UserAndAccessSteps.typePassword(testPassword);
|
|
97
97
|
UserAndAccessSteps.typeConfirmPasswordField(testPassword);
|
|
98
98
|
UserAndAccessSteps.addTextToCustomRoleField('a');
|
|
99
|
-
UserAndAccessSteps.
|
|
100
|
-
UserAndAccessSteps.
|
|
99
|
+
UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
|
|
100
|
+
UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
|
|
101
101
|
UserAndAccessSteps.getCustomRoleFieldError().should('be.visible').and('contain.text', 'Must be at least 2 symbols long');
|
|
102
102
|
});
|
|
103
103
|
});
|
|
@@ -116,9 +116,9 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
|
|
|
116
116
|
UserAndAccessSteps.typeUsername(rwUsername);
|
|
117
117
|
UserAndAccessSteps.typePassword(testPassword);
|
|
118
118
|
UserAndAccessSteps.typeConfirmPasswordField(testPassword);
|
|
119
|
-
UserAndAccessSteps.
|
|
120
|
-
UserAndAccessSteps.
|
|
121
|
-
UserAndAccessSteps.
|
|
119
|
+
UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
|
|
120
|
+
UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
|
|
121
|
+
UserAndAccessSteps.validateWriteAccessForRepo(repositoryId, {checked: true});
|
|
122
122
|
UserAndAccessSteps.confirmUserCreate();
|
|
123
123
|
UserAndAccessSteps.toggleSecurity();
|
|
124
124
|
|
|
@@ -159,9 +159,9 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
|
|
|
159
159
|
UserAndAccessSteps.typeUsername(roUsername);
|
|
160
160
|
UserAndAccessSteps.typePassword(testPassword);
|
|
161
161
|
UserAndAccessSteps.typeConfirmPasswordField(testPassword);
|
|
162
|
-
UserAndAccessSteps.
|
|
163
|
-
UserAndAccessSteps.
|
|
164
|
-
UserAndAccessSteps.
|
|
162
|
+
UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
|
|
163
|
+
UserAndAccessSteps.validateReadAccessForRepo(repositoryId, {checked: true});
|
|
164
|
+
UserAndAccessSteps.validateWriteAccessForRepo(repositoryId, {checked: false});
|
|
165
165
|
UserAndAccessSteps.confirmUserCreate();
|
|
166
166
|
UserAndAccessSteps.toggleSecurity();
|
|
167
167
|
|
|
@@ -51,7 +51,7 @@ describe('GraphQL-only User – Playground Access & Mutation Restriction', () =>
|
|
|
51
51
|
UserAndAccessSteps.typeUsername(gqlUsername);
|
|
52
52
|
UserAndAccessSteps.typePassword(testPassword);
|
|
53
53
|
UserAndAccessSteps.typeConfirmPasswordField(testPassword);
|
|
54
|
-
UserAndAccessSteps.
|
|
54
|
+
UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
|
|
55
55
|
UserAndAccessSteps.clickGraphqlAccessRepo(repositoryId);
|
|
56
56
|
UserAndAccessSteps.confirmUserCreate();
|
|
57
57
|
|
|
@@ -88,8 +88,8 @@ describe('GraphQL-only User – Playground Access & Mutation Restriction', () =>
|
|
|
88
88
|
UserAndAccessSteps.typeUsername(gqlUsername);
|
|
89
89
|
UserAndAccessSteps.typePassword(testPassword);
|
|
90
90
|
UserAndAccessSteps.typeConfirmPasswordField(testPassword);
|
|
91
|
-
UserAndAccessSteps.
|
|
92
|
-
UserAndAccessSteps.
|
|
91
|
+
UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
|
|
92
|
+
UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
|
|
93
93
|
UserAndAccessSteps.clickGraphqlAccessRepo(repositoryId);
|
|
94
94
|
UserAndAccessSteps.confirmUserCreate();
|
|
95
95
|
|
|
@@ -24,8 +24,8 @@ describe('Repository Admin – Permissions and Access Control', () => {
|
|
|
24
24
|
UserAndAccessSteps.typeConfirmPasswordField(password);
|
|
25
25
|
UserAndAccessSteps.selectRoleRadioButton('#roleRepoAdmin');
|
|
26
26
|
|
|
27
|
-
UserAndAccessSteps.
|
|
28
|
-
UserAndAccessSteps.
|
|
27
|
+
UserAndAccessSteps.validateReadAccessForRepo('*', {checked: true, disabled: true});
|
|
28
|
+
UserAndAccessSteps.validateWriteAccessForRepo('*', {checked: true, disabled: true});
|
|
29
29
|
|
|
30
30
|
UserAndAccessSteps.confirmUserCreate();
|
|
31
31
|
UserAndAccessSteps.toggleSecurity();
|
package/eslint.config.js
CHANGED
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "graphdb-workbench-tests",
|
|
3
|
-
"version": "3.5.0-
|
|
3
|
+
"version": "3.5.0-TR3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "graphdb-workbench-tests",
|
|
9
|
-
"version": "3.5.0-
|
|
9
|
+
"version": "3.5.0-TR3",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@bahmutov/cypress-code-coverage": "^2.7.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "graphdb-workbench-tests",
|
|
3
|
-
"version": "3.5.0-
|
|
3
|
+
"version": "3.5.0-TR3",
|
|
4
4
|
"description": "Cypress tests for GraphDB workbench",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"cy:open-flaky": "cypress open --config-file cypress-flaky.config.js",
|
|
13
13
|
"cy:guides": "cypress run --config-file cypress-legacy.config.js --spec \"e2e-legacy/guides/**/*.spec.js\" --browser chrome",
|
|
14
14
|
"cy:run": "npm run cy:run-legacy && cypress run",
|
|
15
|
-
"cy:run:partial": "cypress run --config-file cypress-legacy.config.js --spec \"e2e-legacy
|
|
15
|
+
"cy:run:partial": "cypress run --config-file cypress-legacy.config.js --spec \"e2e-legacy/ttyg/**/*.spec.js\" --browser chrome",
|
|
16
16
|
"cy:run-legacy": "cypress run --config-file cypress-legacy.config.js --browser chrome",
|
|
17
17
|
"cy:run-security": "cypress run --config-file cypress-security.config.js --browser chrome",
|
|
18
18
|
"cy:run-legacy:coverage": "cypress run --config-file cypress-legacy.config.js --browser chrome",
|
package/steps/main-menu-steps.js
CHANGED
|
@@ -53,7 +53,11 @@ export class MainMenuSteps {
|
|
|
53
53
|
|
|
54
54
|
static clickOnMenu(menuName) {
|
|
55
55
|
// Forced it because some element as "Explore" for example has CSS pointer-events: none
|
|
56
|
-
MainMenuSteps.getMenuButton(menuName).
|
|
56
|
+
MainMenuSteps.getMenuButton(menuName).realClick();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static getSubmenuFor(menuName) {
|
|
60
|
+
return MainMenuSteps.getMainMenu().contains('.menu-element', menuName).find('.sub-menu');
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
static clickOnSubmenuTriggerElement(menuName) {
|
|
@@ -169,8 +169,12 @@ export class UserAndAccessSteps {
|
|
|
169
169
|
return cy.get('#user-repos');
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
-
static
|
|
173
|
-
|
|
172
|
+
static getRepositoryRightsLine(repoName) {
|
|
173
|
+
if (repoName === '*') {
|
|
174
|
+
return this.getRepositoryRightsList().find('.any-repo');
|
|
175
|
+
} else {
|
|
176
|
+
return this.getRepositoryRightsList().contains(repoName).parent('tr');
|
|
177
|
+
}
|
|
174
178
|
}
|
|
175
179
|
|
|
176
180
|
static getCustomRoleFieldError() {
|
|
@@ -186,7 +190,7 @@ export class UserAndAccessSteps {
|
|
|
186
190
|
}
|
|
187
191
|
|
|
188
192
|
static getRepositoryRightsError() {
|
|
189
|
-
return
|
|
193
|
+
return this.getRepositoryRightsList().find('[ng-show="repositoryCheckError"].form-control-feedback');
|
|
190
194
|
}
|
|
191
195
|
|
|
192
196
|
static getError() {
|
|
@@ -230,53 +234,17 @@ export class UserAndAccessSteps {
|
|
|
230
234
|
}
|
|
231
235
|
|
|
232
236
|
static clickGraphqlAccessAny() {
|
|
233
|
-
|
|
234
|
-
.contains('Any data repository')
|
|
235
|
-
.parent('tr')
|
|
237
|
+
this.getRepositoryRightsLine('*')
|
|
236
238
|
.find('.graphql')
|
|
237
239
|
.realClick();
|
|
238
240
|
}
|
|
239
241
|
|
|
240
242
|
static clickGraphqlAccessRepo(repoName) {
|
|
241
|
-
|
|
242
|
-
.contains(repoName)
|
|
243
|
-
.parent('tr')
|
|
243
|
+
this.getRepositoryRightsLine(repoName)
|
|
244
244
|
.find('.graphql')
|
|
245
245
|
.realClick();
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
static clickReadAccessAny() {
|
|
249
|
-
cy.get('#user-repos')
|
|
250
|
-
.contains('Any data repository')
|
|
251
|
-
.parent('tr')
|
|
252
|
-
.find('.read')
|
|
253
|
-
.realClick();
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
static clickReadAccessRepo(repoName) {
|
|
257
|
-
cy.get('#user-repos')
|
|
258
|
-
.contains(repoName)
|
|
259
|
-
.parent('tr')
|
|
260
|
-
.find('.read')
|
|
261
|
-
.realClick();
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
static clickWriteAccessAny() {
|
|
265
|
-
cy.get('#user-repos')
|
|
266
|
-
.contains('Any data repository')
|
|
267
|
-
.parent('tr')
|
|
268
|
-
.find('.write')
|
|
269
|
-
.realClick();
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
static clickWriteAccessRepo(repoName) {
|
|
273
|
-
cy.get('#user-repos')
|
|
274
|
-
.contains(repoName)
|
|
275
|
-
.parent('tr')
|
|
276
|
-
.find('.write')
|
|
277
|
-
.realClick();
|
|
278
|
-
}
|
|
279
|
-
|
|
280
248
|
static findUserRowAlias(username, aliasName = 'userRow') {
|
|
281
249
|
this.findUserInTable(username);
|
|
282
250
|
cy.get('@user').as(aliasName);
|
|
@@ -301,6 +269,10 @@ export class UserAndAccessSteps {
|
|
|
301
269
|
return cy.get(repoLineAlias).find('.ri-edit-line');
|
|
302
270
|
}
|
|
303
271
|
|
|
272
|
+
static findManageIconAlias(repoLineAlias) {
|
|
273
|
+
return cy.get(repoLineAlias).find('.ri-folder-settings-line');
|
|
274
|
+
}
|
|
275
|
+
|
|
304
276
|
static findGraphqlIconAlias(repoLineAlias) {
|
|
305
277
|
return cy.get(repoLineAlias).find('.icon-graphql');
|
|
306
278
|
}
|
|
@@ -308,41 +280,92 @@ export class UserAndAccessSteps {
|
|
|
308
280
|
static openEditUserPage(username) {
|
|
309
281
|
this.findUserInTable(username); // sets @user
|
|
310
282
|
cy.get('@user').find('.edit-user-btn').click();
|
|
283
|
+
cy.url().should('include', `/user/${username}`);
|
|
284
|
+
UserAndAccessSteps.getUsernameField().should('be.visible');
|
|
311
285
|
}
|
|
312
286
|
|
|
313
287
|
static confirmUserEdit() {
|
|
314
288
|
cy.get('#wb-user-submit').click();
|
|
315
289
|
}
|
|
316
290
|
|
|
291
|
+
static validateRightsForRepo(repoName, checkbox, expectedState) {
|
|
292
|
+
const {checked, disabled} = expectedState;
|
|
293
|
+
if (checked === true) {
|
|
294
|
+
checkbox.should('be.checked');
|
|
295
|
+
} else if (checked === false) {
|
|
296
|
+
checkbox.should('not.be.checked');
|
|
297
|
+
}
|
|
298
|
+
if (disabled === true) {
|
|
299
|
+
checkbox.should('be.disabled');
|
|
300
|
+
} else if (disabled === false) {
|
|
301
|
+
checkbox.should('not.be.disabled');
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
// ============= Read Access Toggles and Validations =============
|
|
306
|
+
|
|
317
307
|
static getReadAccessForRepo(repoName) {
|
|
318
|
-
|
|
319
|
-
return cy.get('#user-repos')
|
|
320
|
-
.contains(matchText)
|
|
321
|
-
.parent('tr')
|
|
308
|
+
return this.getRepositoryRightsLine(repoName)
|
|
322
309
|
.find('.read')
|
|
323
310
|
}
|
|
324
311
|
|
|
312
|
+
static toggleReadAccessAny() {
|
|
313
|
+
UserAndAccessSteps.toggleReadAccessForRepo('*');
|
|
314
|
+
}
|
|
315
|
+
|
|
325
316
|
static toggleReadAccessForRepo(repoName) {
|
|
326
317
|
return this.getReadAccessForRepo(repoName).realClick();
|
|
327
318
|
}
|
|
328
319
|
|
|
320
|
+
static validateReadAccessForRepo(repoName, expectedState) {
|
|
321
|
+
const readAccessCheckbox = this.getReadAccessForRepo(repoName);
|
|
322
|
+
this.validateRightsForRepo(repoName, readAccessCheckbox, expectedState);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// ============= Write Access Toggles and Validations =============
|
|
326
|
+
|
|
329
327
|
static getWriteAccessForRepo(repoName) {
|
|
330
|
-
|
|
331
|
-
return cy.get('#user-repos')
|
|
332
|
-
.contains(matchText)
|
|
333
|
-
.parent('tr')
|
|
328
|
+
return this.getRepositoryRightsLine(repoName)
|
|
334
329
|
.find('.write')
|
|
335
330
|
}
|
|
336
331
|
|
|
332
|
+
static toggleWriteAccessAny() {
|
|
333
|
+
UserAndAccessSteps.toggleWriteAccessForRepo('*');
|
|
334
|
+
}
|
|
335
|
+
|
|
337
336
|
static toggleWriteAccessForRepo(repoName) {
|
|
338
337
|
return this.getWriteAccessForRepo(repoName).realClick();
|
|
339
338
|
}
|
|
340
339
|
|
|
340
|
+
static validateWriteAccessForRepo(repoName, expectedState) {
|
|
341
|
+
const writeAccessCheckbox = this.getWriteAccessForRepo(repoName);
|
|
342
|
+
this.validateRightsForRepo(repoName, writeAccessCheckbox, expectedState);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
// ============= Manange Repository Access Toggles and Validations =============
|
|
346
|
+
|
|
347
|
+
static getManageAccessRepoCheckbox(repoName) {
|
|
348
|
+
return this.getRepositoryRightsLine(repoName)
|
|
349
|
+
.find('.manage-repository');
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
static clickManageAccessRepo(repoName) {
|
|
353
|
+
UserAndAccessSteps.getManageAccessRepoCheckbox(repoName).realClick();
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
static toggleManageRepoForRepo(repoName) {
|
|
357
|
+
return this.clickManageAccessRepo(repoName);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
static validateManageAccessForRepo(repoName, expectedState) {
|
|
361
|
+
const manageAccessCheckbox = this.getManageAccessRepoCheckbox(repoName);
|
|
362
|
+
this.validateRightsForRepo(repoName, manageAccessCheckbox, expectedState);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// ============= GraphQL Access Toggles and Validations =============
|
|
366
|
+
|
|
341
367
|
static getGraphqlAccessForRepo(repoName) {
|
|
342
|
-
|
|
343
|
-
return cy.get('#user-repos')
|
|
344
|
-
.contains(matchText)
|
|
345
|
-
.parent('tr')
|
|
368
|
+
return this.getRepositoryRightsLine(repoName)
|
|
346
369
|
.find('.graphql')
|
|
347
370
|
}
|
|
348
371
|
|
|
@@ -350,6 +373,11 @@ export class UserAndAccessSteps {
|
|
|
350
373
|
return this.getGraphqlAccessForRepo(repoName).realClick();
|
|
351
374
|
}
|
|
352
375
|
|
|
376
|
+
static validateGraphqlAccessForRepo(repoName, expectedState) {
|
|
377
|
+
const graphqlAccessCheckbox = this.getGraphqlAccessForRepo(repoName);
|
|
378
|
+
this.validateRightsForRepo(repoName, graphqlAccessCheckbox, expectedState);
|
|
379
|
+
}
|
|
380
|
+
|
|
353
381
|
static clickMenuItem(label) {
|
|
354
382
|
return cy.get('.main-menu').contains(label).click({force: true});
|
|
355
383
|
}
|
package/stubs/security-stubs.js
CHANGED
|
@@ -14,6 +14,10 @@ export class SecurityStubs {
|
|
|
14
14
|
cy.intercept('POST', 'rest/security/users/*').as('create-user');
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
static spyOnUserGet() {
|
|
18
|
+
cy.intercept('GET', 'rest/security/users/*').as('get-user');
|
|
19
|
+
}
|
|
20
|
+
|
|
17
21
|
static stubInferAndSameAsDefaults() {
|
|
18
22
|
cy.intercept('rest/security/all', (req) => {
|
|
19
23
|
req.reply(SecurityStubs.getResponseSecurityEnabled());
|