@nextsparkjs/theme-default 0.1.0-beta.20 → 0.1.0-beta.21
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/package.json +1 -1
- package/tests/cypress/e2e/_devtools/access.bdd.md +262 -0
- package/tests/cypress/e2e/_devtools/access.cy.ts +171 -0
- package/tests/cypress/e2e/_devtools/navigation.bdd.md +261 -0
- package/tests/cypress/e2e/_devtools/navigation.cy.ts +157 -0
- package/tests/cypress/e2e/_devtools/pages.bdd.md +303 -0
- package/tests/cypress/e2e/_devtools/pages.cy.ts +184 -0
- package/tests/cypress/e2e/_docs/README.md +215 -0
- package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin-teams.narration.json +155 -0
- package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin.cy.ts +390 -0
- package/tests/cypress/e2e/_docs/tutorials/teams-system.doc.cy.ts +349 -0
- package/tests/cypress/e2e/_docs/tutorials/teams-system.narration.json +165 -0
- package/tests/cypress/e2e/_selectors/auth.cy.ts +306 -0
- package/tests/cypress/e2e/_selectors/billing.cy.ts +89 -0
- package/tests/cypress/e2e/_selectors/dashboard-mobile.cy.ts +113 -0
- package/tests/cypress/e2e/_selectors/dashboard-navigation.cy.ts +89 -0
- package/tests/cypress/e2e/_selectors/dashboard-sidebar.cy.ts +60 -0
- package/tests/cypress/e2e/_selectors/dashboard-topnav.cy.ts +146 -0
- package/tests/cypress/e2e/_selectors/devtools.cy.ts +210 -0
- package/tests/cypress/e2e/_selectors/global-search.cy.ts +88 -0
- package/tests/cypress/e2e/_selectors/pages-editor.cy.ts +179 -0
- package/tests/cypress/e2e/_selectors/posts-editor.cy.ts +282 -0
- package/tests/cypress/e2e/_selectors/public.cy.ts +112 -0
- package/tests/cypress/e2e/_selectors/settings-api-keys.cy.ts +228 -0
- package/tests/cypress/e2e/_selectors/settings-billing.cy.ts +105 -0
- package/tests/cypress/e2e/_selectors/settings-layout.cy.ts +119 -0
- package/tests/cypress/e2e/_selectors/settings-password.cy.ts +71 -0
- package/tests/cypress/e2e/_selectors/settings-profile.cy.ts +82 -0
- package/tests/cypress/e2e/_selectors/settings-teams.cy.ts +68 -0
- package/tests/cypress/e2e/_selectors/superadmin.cy.ts +185 -0
- package/tests/cypress/e2e/_selectors/tasks.cy.ts +242 -0
- package/tests/cypress/e2e/_selectors/taxonomies.cy.ts +126 -0
- package/tests/cypress/e2e/_selectors/teams.cy.ts +142 -0
- package/tests/cypress/e2e/_superadmin/all-teams.bdd.md +261 -0
- package/tests/cypress/e2e/_superadmin/all-teams.cy.ts +177 -0
- package/tests/cypress/e2e/_superadmin/all-users.bdd.md +406 -0
- package/tests/cypress/e2e/_superadmin/all-users.cy.ts +294 -0
- package/tests/cypress/e2e/_superadmin/dashboard.bdd.md +235 -0
- package/tests/cypress/e2e/_superadmin/dashboard.cy.ts +149 -0
- package/tests/cypress/e2e/_superadmin/subscriptions-overview.bdd.md +290 -0
- package/tests/cypress/e2e/_superadmin/subscriptions-overview.cy.ts +194 -0
- package/tests/cypress/e2e/ai/ai-usage.cy.ts +209 -0
- package/tests/cypress/e2e/ai/chat-api.cy.ts +107 -0
- package/tests/cypress/e2e/ai/guardrails.cy.ts +332 -0
- package/tests/cypress/e2e/api/billing/BillingAPIController.js +319 -0
- package/tests/cypress/e2e/api/billing/check-action.cy.ts +326 -0
- package/tests/cypress/e2e/api/billing/checkout.cy.ts +358 -0
- package/tests/cypress/e2e/api/billing/lifecycle.cy.ts +423 -0
- package/tests/cypress/e2e/api/billing/plans/README.md +345 -0
- package/tests/cypress/e2e/api/billing/plans/business.cy.ts +412 -0
- package/tests/cypress/e2e/api/billing/plans/downgrade.cy.ts +510 -0
- package/tests/cypress/e2e/api/billing/plans/fixtures/billing-plans.json +163 -0
- package/tests/cypress/e2e/api/billing/plans/free.cy.ts +500 -0
- package/tests/cypress/e2e/api/billing/plans/pro.cy.ts +497 -0
- package/tests/cypress/e2e/api/billing/plans/starter.cy.ts +342 -0
- package/tests/cypress/e2e/api/billing/portal.cy.ts +313 -0
- package/tests/cypress/e2e/api/devtools/registries.bdd.md +300 -0
- package/tests/cypress/e2e/api/devtools/registries.cy.ts +368 -0
- package/tests/cypress/e2e/api/entities/blocks-scope.cy.ts +396 -0
- package/tests/cypress/e2e/api/entities/customers-crud.cy.ts +648 -0
- package/tests/cypress/e2e/api/entities/customers-metas.cy.ts +839 -0
- package/tests/cypress/e2e/api/entities/pages-crud.cy.ts +425 -0
- package/tests/cypress/e2e/api/entities/pages-status.cy.ts +335 -0
- package/tests/cypress/e2e/api/entities/post-categories-crud.cy.ts +610 -0
- package/tests/cypress/e2e/api/entities/posts-crud.cy.ts +709 -0
- package/tests/cypress/e2e/api/entities/posts-status.cy.ts +396 -0
- package/tests/cypress/e2e/api/entities/tasks-crud.cy.ts +602 -0
- package/tests/cypress/e2e/api/entities/tasks-metas.cy.ts +878 -0
- package/tests/cypress/e2e/api/entities/users-crud.cy.ts +469 -0
- package/tests/cypress/e2e/api/entities/users-metas.cy.ts +913 -0
- package/tests/cypress/e2e/api/entities/users-security.cy.ts +375 -0
- package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.bdd.md +375 -0
- package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.cy.ts +346 -0
- package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.bdd.md +451 -0
- package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.cy.ts +447 -0
- package/tests/cypress/e2e/api/scheduled-actions/scheduling.bdd.md +649 -0
- package/tests/cypress/e2e/api/scheduled-actions/scheduling.cy.ts +333 -0
- package/tests/cypress/e2e/api/settings/api-keys.crud.cy.ts +923 -0
- package/tests/cypress/e2e/uat/auth/app-roles/developer-login.bdd.md +231 -0
- package/tests/cypress/e2e/uat/auth/app-roles/developer-login.cy.ts +144 -0
- package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.bdd.md +118 -0
- package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.cy.ts +84 -0
- package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.bdd.md +288 -0
- package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.cy.ts +188 -0
- package/tests/cypress/e2e/uat/auth/login-logout.bdd.md +160 -0
- package/tests/cypress/e2e/uat/auth/login-logout.cy.ts +116 -0
- package/tests/cypress/e2e/uat/auth/password-reset.bdd.md +289 -0
- package/tests/cypress/e2e/uat/auth/password-reset.cy.ts +200 -0
- package/tests/cypress/e2e/uat/auth/team-roles/admin-login.bdd.md +225 -0
- package/tests/cypress/e2e/uat/auth/team-roles/admin-login.cy.ts +148 -0
- package/tests/cypress/e2e/uat/auth/team-roles/member-login.bdd.md +251 -0
- package/tests/cypress/e2e/uat/auth/team-roles/member-login.cy.ts +163 -0
- package/tests/cypress/e2e/uat/auth/team-roles/owner-login.bdd.md +231 -0
- package/tests/cypress/e2e/uat/auth/team-roles/owner-login.cy.ts +141 -0
- package/tests/cypress/e2e/uat/billing/extended.bdd.md +273 -0
- package/tests/cypress/e2e/uat/billing/extended.cy.ts +209 -0
- package/tests/cypress/e2e/uat/billing/feature-gates.bdd.md +407 -0
- package/tests/cypress/e2e/uat/billing/feature-gates.cy.ts +307 -0
- package/tests/cypress/e2e/uat/billing/page.bdd.md +329 -0
- package/tests/cypress/e2e/uat/billing/page.cy.ts +250 -0
- package/tests/cypress/e2e/uat/billing/status.bdd.md +190 -0
- package/tests/cypress/e2e/uat/billing/status.cy.ts +145 -0
- package/tests/cypress/e2e/uat/billing/team-switch.bdd.md +156 -0
- package/tests/cypress/e2e/uat/billing/team-switch.cy.ts +122 -0
- package/tests/cypress/e2e/uat/billing/usage.bdd.md +218 -0
- package/tests/cypress/e2e/uat/billing/usage.cy.ts +176 -0
- package/tests/cypress/e2e/uat/blocks/hero.bdd.md +124 -0
- package/tests/cypress/e2e/uat/blocks/hero.cy.ts +56 -0
- package/tests/cypress/e2e/uat/devtools/api-tester.cy.ts +390 -0
- package/tests/cypress/e2e/uat/entities/customers/member.bdd.md +275 -0
- package/tests/cypress/e2e/uat/entities/customers/member.cy.ts +122 -0
- package/tests/cypress/e2e/uat/entities/customers/owner.bdd.md +243 -0
- package/tests/cypress/e2e/uat/entities/customers/owner.cy.ts +165 -0
- package/tests/cypress/e2e/uat/entities/pages/block-crud.bdd.md +476 -0
- package/tests/cypress/e2e/uat/entities/pages/block-crud.cy.ts +486 -0
- package/tests/cypress/e2e/uat/entities/pages/block-editor.bdd.md +460 -0
- package/tests/cypress/e2e/uat/entities/pages/block-editor.cy.ts +301 -0
- package/tests/cypress/e2e/uat/entities/pages/list.bdd.md +432 -0
- package/tests/cypress/e2e/uat/entities/pages/list.cy.ts +273 -0
- package/tests/cypress/e2e/uat/entities/pages/public-rendering.bdd.md +696 -0
- package/tests/cypress/e2e/uat/entities/pages/public-rendering.cy.ts +340 -0
- package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.bdd.md +161 -0
- package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.cy.ts +104 -0
- package/tests/cypress/e2e/uat/entities/posts/categories.bdd.md +375 -0
- package/tests/cypress/e2e/uat/entities/posts/categories.cy.ts +241 -0
- package/tests/cypress/e2e/uat/entities/posts/editor.bdd.md +429 -0
- package/tests/cypress/e2e/uat/entities/posts/editor.cy.ts +257 -0
- package/tests/cypress/e2e/uat/entities/posts/list.bdd.md +340 -0
- package/tests/cypress/e2e/uat/entities/posts/list.cy.ts +177 -0
- package/tests/cypress/e2e/uat/entities/posts/public.bdd.md +614 -0
- package/tests/cypress/e2e/uat/entities/posts/public.cy.ts +249 -0
- package/tests/cypress/e2e/uat/entities/tasks/member.bdd.md +222 -0
- package/tests/cypress/e2e/uat/entities/tasks/member.cy.ts +165 -0
- package/tests/cypress/e2e/uat/entities/tasks/owner.bdd.md +419 -0
- package/tests/cypress/e2e/uat/entities/tasks/owner.cy.ts +191 -0
- package/tests/cypress/e2e/uat/roles/editor-role.bdd.md +552 -0
- package/tests/cypress/e2e/uat/roles/editor-role.cy.ts +210 -0
- package/tests/cypress/e2e/uat/roles/member-restrictions.bdd.md +450 -0
- package/tests/cypress/e2e/uat/roles/member-restrictions.cy.ts +189 -0
- package/tests/cypress/e2e/uat/roles/owner-full-crud.bdd.md +530 -0
- package/tests/cypress/e2e/uat/roles/owner-full-crud.cy.ts +247 -0
- package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.bdd.md +736 -0
- package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.cy.ts +740 -0
- package/tests/cypress/e2e/uat/teams/roles-matrix.bdd.md +553 -0
- package/tests/cypress/e2e/uat/teams/roles-matrix.cy.ts +185 -0
- package/tests/cypress/e2e/uat/teams/switcher.bdd.md +1151 -0
- package/tests/cypress/e2e/uat/teams/switcher.cy.ts +497 -0
- package/tests/cypress/e2e/uat/teams/team-switcher.md +198 -0
- package/tests/cypress/fixtures/blocks.json +218 -0
- package/tests/cypress/fixtures/entities.json +78 -0
- package/tests/cypress/fixtures/page-builder.json +21 -0
- package/tests/cypress/src/components/CategoriesPOM.ts +382 -0
- package/tests/cypress/src/components/CustomersPOM.ts +439 -0
- package/tests/cypress/src/components/DevKeyringPOM.ts +160 -0
- package/tests/cypress/src/components/EntityForm.ts +375 -0
- package/tests/cypress/src/components/EntityList.ts +389 -0
- package/tests/cypress/src/components/PageBuilderPOM.ts +710 -0
- package/tests/cypress/src/components/PostEditorPOM.ts +370 -0
- package/tests/cypress/src/components/PostsListPOM.ts +223 -0
- package/tests/cypress/src/components/PublicPagePOM.ts +447 -0
- package/tests/cypress/src/components/PublicPostPOM.ts +146 -0
- package/tests/cypress/src/components/TasksPOM.ts +272 -0
- package/tests/cypress/src/components/TeamSwitcherPOM.ts +450 -0
- package/tests/cypress/src/components/index.ts +21 -0
- package/tests/cypress/src/controllers/ApiKeysAPIController.js +178 -0
- package/tests/cypress/src/controllers/BaseAPIController.js +317 -0
- package/tests/cypress/src/controllers/CustomerAPIController.js +251 -0
- package/tests/cypress/src/controllers/PagesAPIController.js +226 -0
- package/tests/cypress/src/controllers/PostsAPIController.js +250 -0
- package/tests/cypress/src/controllers/TaskAPIController.js +240 -0
- package/tests/cypress/src/controllers/UsersAPIController.js +242 -0
- package/tests/cypress/src/controllers/index.js +25 -0
- package/tests/cypress/src/core/AuthPOM.ts +450 -0
- package/tests/cypress/src/core/BasePOM.ts +86 -0
- package/tests/cypress/src/core/BlockEditorBasePOM.ts +576 -0
- package/tests/cypress/src/core/DashboardEntityPOM.ts +692 -0
- package/tests/cypress/src/core/index.ts +14 -0
- package/tests/cypress/src/entities/CustomersPOM.ts +172 -0
- package/tests/cypress/src/entities/PagesPOM.ts +137 -0
- package/tests/cypress/src/entities/PostsPOM.ts +137 -0
- package/tests/cypress/src/entities/TasksPOM.ts +176 -0
- package/tests/cypress/src/entities/index.ts +14 -0
- package/tests/cypress/src/features/BillingPOM.ts +385 -0
- package/tests/cypress/src/features/DashboardPOM.ts +245 -0
- package/tests/cypress/src/features/DevtoolsPOM.ts +739 -0
- package/tests/cypress/src/features/PageBuilderPOM.ts +263 -0
- package/tests/cypress/src/features/PostEditorPOM.ts +313 -0
- package/tests/cypress/src/features/ScheduledActionsPOM.ts +463 -0
- package/tests/cypress/src/features/SettingsPOM.ts +362 -0
- package/tests/cypress/src/features/SuperadminPOM.ts +331 -0
- package/tests/cypress/src/features/SuperadminTeamRolesPOM.ts +285 -0
- package/tests/cypress/src/features/index.ts +28 -0
- package/tests/cypress/src/helpers/ApiInterceptor.ts +177 -0
- package/tests/cypress/src/index.ts +101 -0
- package/tests/cypress/src/pages/dashboard/Dashboard.js +677 -0
- package/tests/cypress/src/pages/dashboard/DashboardPage.js +43 -0
- package/tests/cypress/src/pages/dashboard/DashboardStats.js +546 -0
- package/tests/cypress/src/pages/dashboard/index.js +6 -0
- package/tests/cypress/src/pages/index.js +5 -0
- package/tests/cypress/src/pages/public/FeaturesPage.js +28 -0
- package/tests/cypress/src/pages/public/LandingPage.js +69 -0
- package/tests/cypress/src/pages/public/PricingPage.js +33 -0
- package/tests/cypress/src/pages/public/index.js +6 -0
- package/tests/cypress/src/selectors.ts +46 -0
- package/tests/cypress/src/session-helpers.ts +500 -0
- package/tests/cypress/support/doc-commands.ts +260 -0
- package/tests/cypress.config.ts +150 -0
- package/tests/jest/components/post-header.test.tsx +377 -0
- package/tests/jest/config/role-config.test.ts +529 -0
- package/tests/jest/jest.config.ts +81 -0
- package/tests/jest/langchain/COVERAGE.md +372 -0
- package/tests/jest/langchain/guardrails.test.ts +465 -0
- package/tests/jest/langchain/streaming.test.ts +367 -0
- package/tests/jest/langchain/token-tracker.test.ts +455 -0
- package/tests/jest/langchain/tracer-callbacks.test.ts +881 -0
- package/tests/jest/langchain/tracer.test.ts +823 -0
- package/tests/jest/user-roles/role-helpers.test.ts +432 -0
- package/tests/jest/validation/categories.test.ts +429 -0
- package/tests/jest/validation/posts.test.ts +546 -0
- package/tests/tsconfig.json +15 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature: Admin Team Role Permissions
|
|
3
|
+
priority: critical
|
|
4
|
+
tags: [auth, team-role, admin, permissions, security]
|
|
5
|
+
grepTags: [uat, feat-auth, team-role, admin]
|
|
6
|
+
coverage: 6
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Admin Team Role Permissions
|
|
10
|
+
|
|
11
|
+
> Tests for Admin team role permissions and access control. Admin has full CRUD access to entities but limited team settings and no billing management. Cannot access app-role areas.
|
|
12
|
+
|
|
13
|
+
## @test ADMIN-PERM-001: Admin Dashboard Access
|
|
14
|
+
|
|
15
|
+
### Metadata
|
|
16
|
+
- **Priority:** Critical
|
|
17
|
+
- **Type:** Smoke
|
|
18
|
+
- **Tags:** admin, dashboard, navigation
|
|
19
|
+
- **Grep:** `@smoke`
|
|
20
|
+
|
|
21
|
+
```gherkin:en
|
|
22
|
+
Scenario: Admin can access dashboard with full navigation
|
|
23
|
+
|
|
24
|
+
Given I am logged in as Admin (james.wilson@nextspark.dev)
|
|
25
|
+
When I visit /dashboard
|
|
26
|
+
Then the dashboard container should be visible
|
|
27
|
+
And I should see navigation for customers
|
|
28
|
+
And I should see navigation for tasks
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```gherkin:es
|
|
32
|
+
Scenario: Admin puede acceder al dashboard con navegacion completa
|
|
33
|
+
|
|
34
|
+
Given estoy logueado como Admin (james.wilson@nextspark.dev)
|
|
35
|
+
When visito /dashboard
|
|
36
|
+
Then el contenedor del dashboard deberia estar visible
|
|
37
|
+
And deberia ver navegacion a customers
|
|
38
|
+
And deberia ver navegacion a tasks
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Expected Results
|
|
42
|
+
- Dashboard loads correctly
|
|
43
|
+
- Navigation items visible
|
|
44
|
+
- No entity restrictions
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## @test ADMIN-PERM-002: Admin Full Entity Access
|
|
49
|
+
|
|
50
|
+
### Metadata
|
|
51
|
+
- **Priority:** Critical
|
|
52
|
+
- **Type:** Smoke
|
|
53
|
+
- **Tags:** admin, customers, crud
|
|
54
|
+
- **Grep:** `@smoke`
|
|
55
|
+
|
|
56
|
+
```gherkin:en
|
|
57
|
+
Scenario: Admin has full CRUD access to customers
|
|
58
|
+
|
|
59
|
+
Given I am logged in as Admin (james.wilson@nextspark.dev)
|
|
60
|
+
When I visit /customers
|
|
61
|
+
Then the create button should be visible
|
|
62
|
+
And the entity list should be visible
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
```gherkin:es
|
|
66
|
+
Scenario: Admin tiene acceso CRUD completo a customers
|
|
67
|
+
|
|
68
|
+
Given estoy logueado como Admin (james.wilson@nextspark.dev)
|
|
69
|
+
When visito /customers
|
|
70
|
+
Then el boton de crear deberia estar visible
|
|
71
|
+
And la lista de entidades deberia estar visible
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Expected Results
|
|
75
|
+
- Full CRUD access to entities
|
|
76
|
+
- Create button visible
|
|
77
|
+
- Edit/Delete available
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## @test ADMIN-PERM-003: Admin Settings Access
|
|
82
|
+
|
|
83
|
+
### Metadata
|
|
84
|
+
- **Priority:** High
|
|
85
|
+
- **Type:** Regression
|
|
86
|
+
- **Tags:** admin, settings
|
|
87
|
+
|
|
88
|
+
```gherkin:en
|
|
89
|
+
Scenario: Admin can access settings with limited options
|
|
90
|
+
|
|
91
|
+
Given I am logged in as Admin (james.wilson@nextspark.dev)
|
|
92
|
+
When I visit /settings
|
|
93
|
+
Then the settings container should be visible
|
|
94
|
+
And the profile tab should be visible
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
```gherkin:es
|
|
98
|
+
Scenario: Admin puede acceder a settings con opciones limitadas
|
|
99
|
+
|
|
100
|
+
Given estoy logueado como Admin (james.wilson@nextspark.dev)
|
|
101
|
+
When visito /settings
|
|
102
|
+
Then el contenedor de settings deberia estar visible
|
|
103
|
+
And la pestana de perfil deberia estar visible
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Expected Results
|
|
107
|
+
- Settings accessible
|
|
108
|
+
- Profile management available
|
|
109
|
+
- Some team settings may be restricted
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## @test ADMIN-PERM-004: Admin Billing Restricted Access
|
|
114
|
+
|
|
115
|
+
### Metadata
|
|
116
|
+
- **Priority:** High
|
|
117
|
+
- **Type:** Regression
|
|
118
|
+
- **Tags:** admin, billing, restricted
|
|
119
|
+
|
|
120
|
+
```gherkin:en
|
|
121
|
+
Scenario: Admin has view-only or no access to billing
|
|
122
|
+
|
|
123
|
+
Given I am logged in as Admin (james.wilson@nextspark.dev)
|
|
124
|
+
When I visit /billing
|
|
125
|
+
Then I should have view-only access or be redirected
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
```gherkin:es
|
|
129
|
+
Scenario: Admin tiene acceso solo lectura o sin acceso a billing
|
|
130
|
+
|
|
131
|
+
Given estoy logueado como Admin (james.wilson@nextspark.dev)
|
|
132
|
+
When visito /billing
|
|
133
|
+
Then deberia tener acceso solo lectura o ser redirigido
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Expected Results
|
|
137
|
+
- Either view-only billing access
|
|
138
|
+
- Or redirect to dashboard
|
|
139
|
+
- No upgrade/payment buttons if accessible
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## @test ADMIN-PERM-005: Admin Cannot Access Sector7
|
|
144
|
+
|
|
145
|
+
### Metadata
|
|
146
|
+
- **Priority:** High
|
|
147
|
+
- **Type:** Security
|
|
148
|
+
- **Tags:** admin, sector7, blocked
|
|
149
|
+
|
|
150
|
+
```gherkin:en
|
|
151
|
+
Scenario: Admin is blocked from Sector7
|
|
152
|
+
|
|
153
|
+
Given I am logged in as Admin (james.wilson@nextspark.dev)
|
|
154
|
+
When I attempt to visit /sector7
|
|
155
|
+
Then I should be redirected away from /sector7
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```gherkin:es
|
|
159
|
+
Scenario: Admin no puede acceder a Sector7
|
|
160
|
+
|
|
161
|
+
Given estoy logueado como Admin (james.wilson@nextspark.dev)
|
|
162
|
+
When intento visitar /sector7
|
|
163
|
+
Then deberia ser redirigido fuera de /sector7
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Expected Results
|
|
167
|
+
- Access denied to Sector7
|
|
168
|
+
- Redirect to dashboard
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## @test ADMIN-PERM-006: Admin Cannot Access Dev Zone
|
|
173
|
+
|
|
174
|
+
### Metadata
|
|
175
|
+
- **Priority:** High
|
|
176
|
+
- **Type:** Security
|
|
177
|
+
- **Tags:** admin, dev-zone, blocked
|
|
178
|
+
|
|
179
|
+
```gherkin:en
|
|
180
|
+
Scenario: Admin is blocked from Dev Zone
|
|
181
|
+
|
|
182
|
+
Given I am logged in as Admin (james.wilson@nextspark.dev)
|
|
183
|
+
When I attempt to visit /dev
|
|
184
|
+
Then I should be redirected away from /dev
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
```gherkin:es
|
|
188
|
+
Scenario: Admin no puede acceder a Dev Zone
|
|
189
|
+
|
|
190
|
+
Given estoy logueado como Admin (james.wilson@nextspark.dev)
|
|
191
|
+
When intento visitar /dev
|
|
192
|
+
Then deberia ser redirigido fuera de /dev
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Expected Results
|
|
196
|
+
- Access denied to Dev Zone
|
|
197
|
+
- Redirect to dashboard
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## UI Elements
|
|
202
|
+
|
|
203
|
+
| Element | Selector | Description |
|
|
204
|
+
|---------|----------|-------------|
|
|
205
|
+
| Dashboard Container | `[data-cy="dashboard-container"]` | Main dashboard container |
|
|
206
|
+
| Customers Nav | `[data-cy="sidebar-nav-customers"]` | Customers navigation item |
|
|
207
|
+
| Tasks Nav | `[data-cy="sidebar-nav-tasks"]` | Tasks navigation item |
|
|
208
|
+
| Create Button | `[data-cy="entity-create-button"]` | Entity create button |
|
|
209
|
+
| Entity List | `[data-cy="entity-list-container"]` | Entity list container |
|
|
210
|
+
| Settings Container | `[data-cy="settings-container"]` | Settings page container |
|
|
211
|
+
| Profile Tab | `[data-cy="settings-tab-profile"]` | Profile settings tab |
|
|
212
|
+
| Billing Container | `[data-cy="billing-container"]` | Billing page container |
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Summary
|
|
217
|
+
|
|
218
|
+
| Test ID | Block | Description | Tags |
|
|
219
|
+
|---------|-------|-------------|------|
|
|
220
|
+
| ADMIN-PERM-001 | Access | Dashboard with navigation | `@smoke` |
|
|
221
|
+
| ADMIN-PERM-002 | Access | Full CRUD to customers | `@smoke` |
|
|
222
|
+
| ADMIN-PERM-003 | Access | Settings with limits | |
|
|
223
|
+
| ADMIN-PERM-004 | Restricted | View-only billing | |
|
|
224
|
+
| ADMIN-PERM-005 | Blocked | Cannot access Sector7 | |
|
|
225
|
+
| ADMIN-PERM-006 | Blocked | Cannot access Dev Zone | |
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/// <reference types="cypress" />
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Admin Team Role Login Tests
|
|
5
|
+
*
|
|
6
|
+
* Tests the Admin team role login and specific permissions:
|
|
7
|
+
* - Full CRUD access to entities
|
|
8
|
+
* - Limited team settings access (cannot delete team)
|
|
9
|
+
* - No billing access (owner only)
|
|
10
|
+
* - Member management (limited)
|
|
11
|
+
* - Cannot access /dev or /superadmin (app roles only)
|
|
12
|
+
*
|
|
13
|
+
* Note: Basic login is tested in login-logout.cy.ts
|
|
14
|
+
* This file focuses on Admin-specific permissions and restrictions.
|
|
15
|
+
*
|
|
16
|
+
* Tags: @uat, @feat-auth, @team-role, @admin
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import * as allure from 'allure-cypress'
|
|
20
|
+
|
|
21
|
+
import { loginAsDefaultAdmin, DEFAULT_THEME_USERS } from '../../../../src/session-helpers'
|
|
22
|
+
import { DashboardPOM } from '../../../../src/features/DashboardPOM'
|
|
23
|
+
import { SettingsPOM } from '../../../../src/features/SettingsPOM'
|
|
24
|
+
import { BillingPOM } from '../../../../src/features/BillingPOM'
|
|
25
|
+
import { SuperadminPOM } from '../../../../src/features/SuperadminPOM'
|
|
26
|
+
import { DevAreaPOM } from '../../../../src/features/DevAreaPOM'
|
|
27
|
+
|
|
28
|
+
describe('Authentication - Admin Team Role Permissions', {
|
|
29
|
+
tags: ['@uat', '@feat-auth', '@team-role', '@admin']
|
|
30
|
+
}, () => {
|
|
31
|
+
const dashboard = DashboardPOM.create()
|
|
32
|
+
const settings = SettingsPOM.create()
|
|
33
|
+
const billing = BillingPOM.create()
|
|
34
|
+
const sector7 = SuperadminPOM.create()
|
|
35
|
+
const devArea = DevAreaPOM.create()
|
|
36
|
+
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
allure.epic('Authentication')
|
|
39
|
+
allure.feature('Team Roles')
|
|
40
|
+
allure.story('Admin Permissions')
|
|
41
|
+
loginAsDefaultAdmin()
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
describe('ADMIN-PERM-001: Admin Dashboard Access', { tags: '@smoke' }, () => {
|
|
45
|
+
it('should access dashboard with full navigation', { tags: '@smoke' }, () => {
|
|
46
|
+
allure.severity('critical')
|
|
47
|
+
|
|
48
|
+
// 1. Visit dashboard and wait for it to load
|
|
49
|
+
dashboard.visitDashboard()
|
|
50
|
+
dashboard.waitForDashboard()
|
|
51
|
+
|
|
52
|
+
// 2. Validate sidebar navigation items
|
|
53
|
+
dashboard.assertEntityNavVisible('customers')
|
|
54
|
+
dashboard.assertEntityNavVisible('tasks')
|
|
55
|
+
|
|
56
|
+
cy.log(`✅ Admin dashboard access verified (${DEFAULT_THEME_USERS.ADMIN})`)
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
describe('ADMIN-PERM-002: Admin Full Entity Access', { tags: '@smoke' }, () => {
|
|
61
|
+
it('should have full CRUD access to customers', { tags: '@smoke' }, () => {
|
|
62
|
+
allure.severity('critical')
|
|
63
|
+
|
|
64
|
+
// 1. Navigate to customers
|
|
65
|
+
dashboard.visitEntity('customers')
|
|
66
|
+
dashboard.waitForEntityPage('customers')
|
|
67
|
+
|
|
68
|
+
// 2. Validate create button is visible (Admin can create)
|
|
69
|
+
dashboard.assertEntityAddButtonVisible('customers')
|
|
70
|
+
|
|
71
|
+
// 3. Validate table is visible
|
|
72
|
+
dashboard.assertEntityPageVisible('customers')
|
|
73
|
+
|
|
74
|
+
cy.log('✅ Admin has full CRUD access to customers')
|
|
75
|
+
})
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
describe('ADMIN-PERM-003: Admin Settings Access', () => {
|
|
79
|
+
it('should access settings page with limited options', () => {
|
|
80
|
+
allure.severity('high')
|
|
81
|
+
|
|
82
|
+
// 1. Navigate to settings
|
|
83
|
+
settings.visitSettings()
|
|
84
|
+
settings.waitForSettings()
|
|
85
|
+
|
|
86
|
+
// 2. Validate settings page is accessible
|
|
87
|
+
settings.assertSettingsVisible()
|
|
88
|
+
|
|
89
|
+
// 3. Validate profile nav is visible
|
|
90
|
+
settings.assertNavItemVisible('profile')
|
|
91
|
+
|
|
92
|
+
cy.log('✅ Admin can access settings')
|
|
93
|
+
})
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
describe('ADMIN-PERM-004: Admin Billing Restricted Access', () => {
|
|
97
|
+
it('should have view-only or no access to billing', () => {
|
|
98
|
+
allure.severity('high')
|
|
99
|
+
|
|
100
|
+
// 1. Navigate to billing
|
|
101
|
+
billing.visitBilling()
|
|
102
|
+
|
|
103
|
+
// 2. Check access - Admin may have view-only or redirected
|
|
104
|
+
cy.url().then((url) => {
|
|
105
|
+
if (url.includes('/billing')) {
|
|
106
|
+
// If accessible, billing container should be visible
|
|
107
|
+
billing.getBillingMain().should('be.visible')
|
|
108
|
+
cy.log('✅ Admin has view-only billing access')
|
|
109
|
+
} else {
|
|
110
|
+
// If redirected, that's also valid
|
|
111
|
+
cy.log('✅ Admin correctly redirected from billing')
|
|
112
|
+
}
|
|
113
|
+
})
|
|
114
|
+
})
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
describe('ADMIN-PERM-005: Admin Cannot Access Superadmin', () => {
|
|
118
|
+
it('should be redirected when trying to access /superadmin', () => {
|
|
119
|
+
allure.severity('high')
|
|
120
|
+
|
|
121
|
+
// 1. Attempt to visit Superadmin
|
|
122
|
+
cy.visit('/superadmin', { timeout: 60000, failOnStatusCode: false })
|
|
123
|
+
|
|
124
|
+
// 2. Should be redirected
|
|
125
|
+
sector7.assertAccessDenied()
|
|
126
|
+
|
|
127
|
+
cy.log('✅ Admin correctly blocked from Superadmin')
|
|
128
|
+
})
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
describe('ADMIN-PERM-006: Admin Cannot Access Dev Zone', () => {
|
|
132
|
+
it('should be redirected when trying to access /dev', () => {
|
|
133
|
+
allure.severity('high')
|
|
134
|
+
|
|
135
|
+
// 1. Attempt to visit Dev Zone
|
|
136
|
+
devArea.attemptToVisitDev()
|
|
137
|
+
|
|
138
|
+
// 2. Should be redirected
|
|
139
|
+
devArea.assertRedirectedToDashboard()
|
|
140
|
+
|
|
141
|
+
cy.log('✅ Admin correctly blocked from Dev Zone')
|
|
142
|
+
})
|
|
143
|
+
})
|
|
144
|
+
|
|
145
|
+
after(() => {
|
|
146
|
+
cy.log('✅ Admin team role tests completed')
|
|
147
|
+
})
|
|
148
|
+
})
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature: Member Team Role Restrictions
|
|
3
|
+
priority: critical
|
|
4
|
+
tags: [auth, team-role, member, permissions, security, restrictions]
|
|
5
|
+
grepTags: [uat, feat-auth, team-role, member]
|
|
6
|
+
coverage: 7
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Member Team Role Restrictions
|
|
10
|
+
|
|
11
|
+
> Tests for Member team role restrictions. Member is the most restricted team role with read-only access to entities, no create/update/delete permissions, and no access to settings, billing, or app-role areas.
|
|
12
|
+
|
|
13
|
+
## @test MEMBER-PERM-001: Member Dashboard Access
|
|
14
|
+
|
|
15
|
+
### Metadata
|
|
16
|
+
- **Priority:** Critical
|
|
17
|
+
- **Type:** Smoke
|
|
18
|
+
- **Tags:** member, dashboard
|
|
19
|
+
- **Grep:** `@smoke`
|
|
20
|
+
|
|
21
|
+
```gherkin:en
|
|
22
|
+
Scenario: Member can access dashboard
|
|
23
|
+
|
|
24
|
+
Given I am logged in as Member (emily.johnson@nextspark.dev)
|
|
25
|
+
When I visit /dashboard
|
|
26
|
+
Then the dashboard container should be visible
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```gherkin:es
|
|
30
|
+
Scenario: Member puede acceder al dashboard
|
|
31
|
+
|
|
32
|
+
Given estoy logueado como Member (emily.johnson@nextspark.dev)
|
|
33
|
+
When visito /dashboard
|
|
34
|
+
Then el contenedor del dashboard deberia estar visible
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Expected Results
|
|
38
|
+
- Dashboard loads
|
|
39
|
+
- Limited navigation visible
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## @test MEMBER-PERM-002: Member Read-Only Entity Access
|
|
44
|
+
|
|
45
|
+
### Metadata
|
|
46
|
+
- **Priority:** Critical
|
|
47
|
+
- **Type:** Smoke
|
|
48
|
+
- **Tags:** member, customers, read-only
|
|
49
|
+
- **Grep:** `@smoke`
|
|
50
|
+
|
|
51
|
+
```gherkin:en
|
|
52
|
+
Scenario: Member has read-only access to customers
|
|
53
|
+
|
|
54
|
+
Given I am logged in as Member (emily.johnson@nextspark.dev)
|
|
55
|
+
When I visit /customers
|
|
56
|
+
Then the entity list should be visible
|
|
57
|
+
And the create button should NOT exist
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```gherkin:es
|
|
61
|
+
Scenario: Member tiene acceso solo lectura a customers
|
|
62
|
+
|
|
63
|
+
Given estoy logueado como Member (emily.johnson@nextspark.dev)
|
|
64
|
+
When visito /customers
|
|
65
|
+
Then la lista de entidades deberia estar visible
|
|
66
|
+
And el boton de crear NO deberia existir
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Expected Results
|
|
70
|
+
- Can view entity list
|
|
71
|
+
- Cannot create new entities
|
|
72
|
+
- No action buttons visible
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## @test MEMBER-PERM-003: Member Cannot Create Entities
|
|
77
|
+
|
|
78
|
+
### Metadata
|
|
79
|
+
- **Priority:** High
|
|
80
|
+
- **Type:** Security
|
|
81
|
+
- **Tags:** member, create, blocked
|
|
82
|
+
|
|
83
|
+
```gherkin:en
|
|
84
|
+
Scenario: Member cannot see create button on entity pages
|
|
85
|
+
|
|
86
|
+
Given I am logged in as Member (emily.johnson@nextspark.dev)
|
|
87
|
+
When I visit /customers
|
|
88
|
+
Then the create button should not exist
|
|
89
|
+
When I visit /tasks
|
|
90
|
+
Then the create button should not exist
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```gherkin:es
|
|
94
|
+
Scenario: Member no puede ver boton crear en paginas de entidades
|
|
95
|
+
|
|
96
|
+
Given estoy logueado como Member (emily.johnson@nextspark.dev)
|
|
97
|
+
When visito /customers
|
|
98
|
+
Then el boton crear no deberia existir
|
|
99
|
+
When visito /tasks
|
|
100
|
+
Then el boton crear no deberia existir
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Expected Results
|
|
104
|
+
- No create buttons on any entity page
|
|
105
|
+
- Read-only experience
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## @test MEMBER-PERM-004: Member Settings Restricted
|
|
110
|
+
|
|
111
|
+
### Metadata
|
|
112
|
+
- **Priority:** High
|
|
113
|
+
- **Type:** Security
|
|
114
|
+
- **Tags:** member, settings, restricted
|
|
115
|
+
|
|
116
|
+
```gherkin:en
|
|
117
|
+
Scenario: Member has limited or no settings access
|
|
118
|
+
|
|
119
|
+
Given I am logged in as Member (emily.johnson@nextspark.dev)
|
|
120
|
+
When I visit /settings
|
|
121
|
+
Then I should see only profile tab or be redirected
|
|
122
|
+
And the team settings tab should not exist
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```gherkin:es
|
|
126
|
+
Scenario: Member tiene acceso limitado o sin acceso a settings
|
|
127
|
+
|
|
128
|
+
Given estoy logueado como Member (emily.johnson@nextspark.dev)
|
|
129
|
+
When visito /settings
|
|
130
|
+
Then deberia ver solo pestana de perfil o ser redirigido
|
|
131
|
+
And la pestana de team settings no deberia existir
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Expected Results
|
|
135
|
+
- Profile tab only (if accessible)
|
|
136
|
+
- No team settings access
|
|
137
|
+
- No danger zone access
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## @test MEMBER-PERM-005: Member Billing Blocked
|
|
142
|
+
|
|
143
|
+
### Metadata
|
|
144
|
+
- **Priority:** High
|
|
145
|
+
- **Type:** Security
|
|
146
|
+
- **Tags:** member, billing, blocked
|
|
147
|
+
|
|
148
|
+
```gherkin:en
|
|
149
|
+
Scenario: Member cannot access billing
|
|
150
|
+
|
|
151
|
+
Given I am logged in as Member (emily.johnson@nextspark.dev)
|
|
152
|
+
When I visit /billing
|
|
153
|
+
Then I should be redirected away from /billing
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
```gherkin:es
|
|
157
|
+
Scenario: Member no puede acceder a billing
|
|
158
|
+
|
|
159
|
+
Given estoy logueado como Member (emily.johnson@nextspark.dev)
|
|
160
|
+
When visito /billing
|
|
161
|
+
Then deberia ser redirigido fuera de /billing
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Expected Results
|
|
165
|
+
- No billing access
|
|
166
|
+
- Redirect to dashboard
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## @test MEMBER-PERM-006: Member Cannot Access Sector7
|
|
171
|
+
|
|
172
|
+
### Metadata
|
|
173
|
+
- **Priority:** High
|
|
174
|
+
- **Type:** Security
|
|
175
|
+
- **Tags:** member, sector7, blocked
|
|
176
|
+
|
|
177
|
+
```gherkin:en
|
|
178
|
+
Scenario: Member is blocked from Sector7
|
|
179
|
+
|
|
180
|
+
Given I am logged in as Member (emily.johnson@nextspark.dev)
|
|
181
|
+
When I attempt to visit /sector7
|
|
182
|
+
Then I should be redirected away from /sector7
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
```gherkin:es
|
|
186
|
+
Scenario: Member no puede acceder a Sector7
|
|
187
|
+
|
|
188
|
+
Given estoy logueado como Member (emily.johnson@nextspark.dev)
|
|
189
|
+
When intento visitar /sector7
|
|
190
|
+
Then deberia ser redirigido fuera de /sector7
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Expected Results
|
|
194
|
+
- Access denied
|
|
195
|
+
- Redirect to dashboard
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## @test MEMBER-PERM-007: Member Cannot Access Dev Zone
|
|
200
|
+
|
|
201
|
+
### Metadata
|
|
202
|
+
- **Priority:** High
|
|
203
|
+
- **Type:** Security
|
|
204
|
+
- **Tags:** member, dev-zone, blocked
|
|
205
|
+
|
|
206
|
+
```gherkin:en
|
|
207
|
+
Scenario: Member is blocked from Dev Zone
|
|
208
|
+
|
|
209
|
+
Given I am logged in as Member (emily.johnson@nextspark.dev)
|
|
210
|
+
When I attempt to visit /dev
|
|
211
|
+
Then I should be redirected away from /dev
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
```gherkin:es
|
|
215
|
+
Scenario: Member no puede acceder a Dev Zone
|
|
216
|
+
|
|
217
|
+
Given estoy logueado como Member (emily.johnson@nextspark.dev)
|
|
218
|
+
When intento visitar /dev
|
|
219
|
+
Then deberia ser redirigido fuera de /dev
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Expected Results
|
|
223
|
+
- Access denied
|
|
224
|
+
- Redirect to dashboard
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## UI Elements
|
|
229
|
+
|
|
230
|
+
| Element | Selector | Description |
|
|
231
|
+
|---------|----------|-------------|
|
|
232
|
+
| Dashboard Container | `[data-cy="dashboard-container"]` | Main dashboard container |
|
|
233
|
+
| Create Button | `[data-cy="entity-create-button"]` | Entity create button (should not exist) |
|
|
234
|
+
| Entity List | `[data-cy="entity-list-container"]` | Entity list container |
|
|
235
|
+
| Settings Container | `[data-cy="settings-container"]` | Settings page container |
|
|
236
|
+
| Profile Tab | `[data-cy="settings-tab-profile"]` | Profile settings tab |
|
|
237
|
+
| Team Tab | `[data-cy="settings-tab-team"]` | Team settings tab (should not exist) |
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Summary
|
|
242
|
+
|
|
243
|
+
| Test ID | Block | Description | Tags |
|
|
244
|
+
|---------|-------|-------------|------|
|
|
245
|
+
| MEMBER-PERM-001 | Access | Dashboard access | `@smoke` |
|
|
246
|
+
| MEMBER-PERM-002 | Read-Only | Read-only entity access | `@smoke` |
|
|
247
|
+
| MEMBER-PERM-003 | Blocked | Cannot create entities | |
|
|
248
|
+
| MEMBER-PERM-004 | Restricted | Settings limited/blocked | |
|
|
249
|
+
| MEMBER-PERM-005 | Blocked | Billing blocked | |
|
|
250
|
+
| MEMBER-PERM-006 | Blocked | Sector7 blocked | |
|
|
251
|
+
| MEMBER-PERM-007 | Blocked | Dev Zone blocked | |
|