@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,553 @@
|
|
|
1
|
+
# Sector7 - Team Roles Matrix (Format: BDD/Gherkin - Bilingual)
|
|
2
|
+
|
|
3
|
+
> **Test File:** `team-roles-matrix.cy.ts`
|
|
4
|
+
> **Format:** Behavior-Driven Development (BDD) with Given/When/Then
|
|
5
|
+
> **Languages:** English / Spanish (side-by-side)
|
|
6
|
+
> **Total Tests:** 9
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Feature: Sector7 Team Roles Permissions Matrix
|
|
11
|
+
|
|
12
|
+
<table>
|
|
13
|
+
<tr>
|
|
14
|
+
<th width="50%">English</th>
|
|
15
|
+
<th width="50%">Español</th>
|
|
16
|
+
</tr>
|
|
17
|
+
<tr>
|
|
18
|
+
<td>
|
|
19
|
+
|
|
20
|
+
As a **SuperAdmin**
|
|
21
|
+
I want to **view the consolidated permissions matrix for all team roles**
|
|
22
|
+
So that **I can verify role configurations and permission assignments**
|
|
23
|
+
|
|
24
|
+
**Scope:** Sector7 admin panel - Team Roles page
|
|
25
|
+
**Access:** SuperAdmin only
|
|
26
|
+
|
|
27
|
+
The matrix displays:
|
|
28
|
+
- All team roles with hierarchy levels
|
|
29
|
+
- Permissions grouped by category
|
|
30
|
+
- Visual indicators for granted permissions
|
|
31
|
+
- Dangerous permissions highlighted
|
|
32
|
+
|
|
33
|
+
</td>
|
|
34
|
+
<td>
|
|
35
|
+
|
|
36
|
+
Como **SuperAdmin**
|
|
37
|
+
Quiero **ver la matriz consolidada de permisos para todos los roles de equipo**
|
|
38
|
+
Para que **pueda verificar configuraciones de roles y asignaciones de permisos**
|
|
39
|
+
|
|
40
|
+
**Alcance:** Panel admin Sector7 - Pagina Team Roles
|
|
41
|
+
**Acceso:** Solo SuperAdmin
|
|
42
|
+
|
|
43
|
+
La matriz muestra:
|
|
44
|
+
- Todos los roles de equipo con niveles de jerarquia
|
|
45
|
+
- Permisos agrupados por categoria
|
|
46
|
+
- Indicadores visuales para permisos otorgados
|
|
47
|
+
- Permisos peligrosos destacados
|
|
48
|
+
|
|
49
|
+
</td>
|
|
50
|
+
</tr>
|
|
51
|
+
</table>
|
|
52
|
+
|
|
53
|
+
### Background
|
|
54
|
+
|
|
55
|
+
<table>
|
|
56
|
+
<tr>
|
|
57
|
+
<th width="50%">English</th>
|
|
58
|
+
<th width="50%">Español</th>
|
|
59
|
+
</tr>
|
|
60
|
+
<tr>
|
|
61
|
+
<td>
|
|
62
|
+
|
|
63
|
+
```gherkin
|
|
64
|
+
Given I am logged in as SuperAdmin (superadmin@nextspark.dev)
|
|
65
|
+
And I have access to Sector7 admin panel
|
|
66
|
+
And the application is running
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
</td>
|
|
70
|
+
<td>
|
|
71
|
+
|
|
72
|
+
```gherkin
|
|
73
|
+
Given estoy logueado como SuperAdmin (superadmin@nextspark.dev)
|
|
74
|
+
And tengo acceso al panel admin de Sector7
|
|
75
|
+
And la aplicacion esta corriendo
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
</td>
|
|
79
|
+
</tr>
|
|
80
|
+
</table>
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Role Hierarchy Display `@smoke`
|
|
85
|
+
|
|
86
|
+
### S7_MATRIX_001: Matrix displays all 5 team roles `@smoke`
|
|
87
|
+
|
|
88
|
+
<table>
|
|
89
|
+
<tr>
|
|
90
|
+
<th width="50%">English</th>
|
|
91
|
+
<th width="50%">Español</th>
|
|
92
|
+
</tr>
|
|
93
|
+
<tr>
|
|
94
|
+
<td>
|
|
95
|
+
|
|
96
|
+
```gherkin
|
|
97
|
+
Scenario: All team roles are displayed in the matrix
|
|
98
|
+
|
|
99
|
+
Given I am logged in as SuperAdmin
|
|
100
|
+
When I navigate to /sector7/team-roles
|
|
101
|
+
Then I should see role cards for:
|
|
102
|
+
| Role |
|
|
103
|
+
| owner |
|
|
104
|
+
| admin |
|
|
105
|
+
| member |
|
|
106
|
+
| editor |
|
|
107
|
+
| viewer |
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
</td>
|
|
111
|
+
<td>
|
|
112
|
+
|
|
113
|
+
```gherkin
|
|
114
|
+
Scenario: Todos los roles de equipo se muestran en la matriz
|
|
115
|
+
|
|
116
|
+
Given estoy logueado como SuperAdmin
|
|
117
|
+
When navego a /sector7/team-roles
|
|
118
|
+
Then deberia ver tarjetas de rol para:
|
|
119
|
+
| Rol |
|
|
120
|
+
| owner |
|
|
121
|
+
| admin |
|
|
122
|
+
| member |
|
|
123
|
+
| editor |
|
|
124
|
+
| viewer |
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
</td>
|
|
128
|
+
</tr>
|
|
129
|
+
</table>
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### S7_MATRIX_002: Roles show correct hierarchy levels
|
|
134
|
+
|
|
135
|
+
<table>
|
|
136
|
+
<tr>
|
|
137
|
+
<th width="50%">English</th>
|
|
138
|
+
<th width="50%">Español</th>
|
|
139
|
+
</tr>
|
|
140
|
+
<tr>
|
|
141
|
+
<td>
|
|
142
|
+
|
|
143
|
+
```gherkin
|
|
144
|
+
Scenario: Role cards display correct hierarchy levels
|
|
145
|
+
|
|
146
|
+
Given I am logged in as SuperAdmin
|
|
147
|
+
When I navigate to /sector7/team-roles
|
|
148
|
+
Then I should see the following hierarchy levels:
|
|
149
|
+
| Role | Level |
|
|
150
|
+
| owner | 100 |
|
|
151
|
+
| admin | 50 |
|
|
152
|
+
| member | 10 |
|
|
153
|
+
| editor | 5 |
|
|
154
|
+
| viewer | 1 |
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Note:** Hierarchy determines permission inheritance and role comparison.
|
|
158
|
+
|
|
159
|
+
</td>
|
|
160
|
+
<td>
|
|
161
|
+
|
|
162
|
+
```gherkin
|
|
163
|
+
Scenario: Tarjetas de rol muestran niveles de jerarquia correctos
|
|
164
|
+
|
|
165
|
+
Given estoy logueado como SuperAdmin
|
|
166
|
+
When navego a /sector7/team-roles
|
|
167
|
+
Then deberia ver los siguientes niveles de jerarquia:
|
|
168
|
+
| Rol | Nivel |
|
|
169
|
+
| owner | 100 |
|
|
170
|
+
| admin | 50 |
|
|
171
|
+
| member | 10 |
|
|
172
|
+
| editor | 5 |
|
|
173
|
+
| viewer | 1 |
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Nota:** La jerarquia determina herencia de permisos y comparacion de roles.
|
|
177
|
+
|
|
178
|
+
</td>
|
|
179
|
+
</tr>
|
|
180
|
+
</table>
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Permissions by Category
|
|
185
|
+
|
|
186
|
+
### S7_MATRIX_003: Permissions are grouped by category
|
|
187
|
+
|
|
188
|
+
<table>
|
|
189
|
+
<tr>
|
|
190
|
+
<th width="50%">English</th>
|
|
191
|
+
<th width="50%">Español</th>
|
|
192
|
+
</tr>
|
|
193
|
+
<tr>
|
|
194
|
+
<td>
|
|
195
|
+
|
|
196
|
+
```gherkin
|
|
197
|
+
Scenario: Matrix groups permissions by category
|
|
198
|
+
|
|
199
|
+
Given I am logged in as SuperAdmin
|
|
200
|
+
When I view the permissions matrix
|
|
201
|
+
Then I should see category headers including:
|
|
202
|
+
| Category |
|
|
203
|
+
| Team |
|
|
204
|
+
| Customers |
|
|
205
|
+
| Pages |
|
|
206
|
+
| Posts |
|
|
207
|
+
| Tasks |
|
|
208
|
+
| Teams |
|
|
209
|
+
| Users |
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
</td>
|
|
213
|
+
<td>
|
|
214
|
+
|
|
215
|
+
```gherkin
|
|
216
|
+
Scenario: Matriz agrupa permisos por categoria
|
|
217
|
+
|
|
218
|
+
Given estoy logueado como SuperAdmin
|
|
219
|
+
When veo la matriz de permisos
|
|
220
|
+
Then deberia ver encabezados de categoria incluyendo:
|
|
221
|
+
| Categoria |
|
|
222
|
+
| Team |
|
|
223
|
+
| Customers |
|
|
224
|
+
| Pages |
|
|
225
|
+
| Posts |
|
|
226
|
+
| Tasks |
|
|
227
|
+
| Teams |
|
|
228
|
+
| Users |
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
</td>
|
|
232
|
+
</tr>
|
|
233
|
+
</table>
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Owner Permissions `@smoke`
|
|
238
|
+
|
|
239
|
+
### S7_MATRIX_004: Owner has all permissions `@smoke`
|
|
240
|
+
|
|
241
|
+
<table>
|
|
242
|
+
<tr>
|
|
243
|
+
<th width="50%">English</th>
|
|
244
|
+
<th width="50%">Español</th>
|
|
245
|
+
</tr>
|
|
246
|
+
<tr>
|
|
247
|
+
<td>
|
|
248
|
+
|
|
249
|
+
```gherkin
|
|
250
|
+
Scenario: Owner role has all permissions
|
|
251
|
+
|
|
252
|
+
Given I am logged in as SuperAdmin
|
|
253
|
+
When I view the permissions matrix
|
|
254
|
+
And I check the Owner column
|
|
255
|
+
Then all permission rows should have a green checkmark for Owner
|
|
256
|
+
And Owner should have access to all operations
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Note:** Owner is the protected role with full access.
|
|
260
|
+
|
|
261
|
+
</td>
|
|
262
|
+
<td>
|
|
263
|
+
|
|
264
|
+
```gherkin
|
|
265
|
+
Scenario: Rol Owner tiene todos los permisos
|
|
266
|
+
|
|
267
|
+
Given estoy logueado como SuperAdmin
|
|
268
|
+
When veo la matriz de permisos
|
|
269
|
+
And verifico la columna Owner
|
|
270
|
+
Then todas las filas de permisos deberian tener marca verde para Owner
|
|
271
|
+
And Owner deberia tener acceso a todas las operaciones
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Nota:** Owner es el rol protegido con acceso completo.
|
|
275
|
+
|
|
276
|
+
</td>
|
|
277
|
+
</tr>
|
|
278
|
+
</table>
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Editor Permissions
|
|
283
|
+
|
|
284
|
+
### S7_MATRIX_005: Editor has only team view permissions
|
|
285
|
+
|
|
286
|
+
<table>
|
|
287
|
+
<tr>
|
|
288
|
+
<th width="50%">English</th>
|
|
289
|
+
<th width="50%">Español</th>
|
|
290
|
+
</tr>
|
|
291
|
+
<tr>
|
|
292
|
+
<td>
|
|
293
|
+
|
|
294
|
+
```gherkin
|
|
295
|
+
Scenario: Editor has only basic team view permissions
|
|
296
|
+
|
|
297
|
+
Given I am logged in as SuperAdmin
|
|
298
|
+
When I view the permissions matrix
|
|
299
|
+
And I check the Editor column for team permissions
|
|
300
|
+
Then I should see Editor has only 2 permissions:
|
|
301
|
+
| Permission | Access |
|
|
302
|
+
| team.view | Yes |
|
|
303
|
+
| team.members.view | Yes |
|
|
304
|
+
And Editor should NOT have:
|
|
305
|
+
| Permission | Access |
|
|
306
|
+
| teams.invite | No |
|
|
307
|
+
| teams.remove_member | No |
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Note:** Editor is a custom role with minimal permissions (hierarchy level 5).
|
|
311
|
+
|
|
312
|
+
</td>
|
|
313
|
+
<td>
|
|
314
|
+
|
|
315
|
+
```gherkin
|
|
316
|
+
Scenario: Editor tiene solo permisos basicos de visualizacion de equipo
|
|
317
|
+
|
|
318
|
+
Given estoy logueado como SuperAdmin
|
|
319
|
+
When veo la matriz de permisos
|
|
320
|
+
And verifico la columna Editor para permisos de equipo
|
|
321
|
+
Then deberia ver que Editor tiene solo 2 permisos:
|
|
322
|
+
| Permiso | Acceso |
|
|
323
|
+
| team.view | Si |
|
|
324
|
+
| team.members.view | Si |
|
|
325
|
+
And Editor NO deberia tener:
|
|
326
|
+
| Permiso | Acceso |
|
|
327
|
+
| teams.invite | No |
|
|
328
|
+
| teams.remove_member | No |
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**Nota:** Editor es un rol personalizado con permisos minimos (nivel jerarquia 5).
|
|
332
|
+
|
|
333
|
+
</td>
|
|
334
|
+
</tr>
|
|
335
|
+
</table>
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
### S7_MATRIX_006: Editor cannot access dangerous operations
|
|
340
|
+
|
|
341
|
+
<table>
|
|
342
|
+
<tr>
|
|
343
|
+
<th width="50%">English</th>
|
|
344
|
+
<th width="50%">Español</th>
|
|
345
|
+
</tr>
|
|
346
|
+
<tr>
|
|
347
|
+
<td>
|
|
348
|
+
|
|
349
|
+
```gherkin
|
|
350
|
+
Scenario: Editor has no team management permissions
|
|
351
|
+
|
|
352
|
+
Given I am logged in as SuperAdmin
|
|
353
|
+
When I view the permissions matrix
|
|
354
|
+
Then the Editor column should show X (no access) for:
|
|
355
|
+
| Permission |
|
|
356
|
+
| teams.invite |
|
|
357
|
+
| teams.remove_member |
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
**Severity:** Blocker - security-critical validation
|
|
361
|
+
|
|
362
|
+
</td>
|
|
363
|
+
<td>
|
|
364
|
+
|
|
365
|
+
```gherkin
|
|
366
|
+
Scenario: Editor no tiene permisos de gestion de equipo
|
|
367
|
+
|
|
368
|
+
Given estoy logueado como SuperAdmin
|
|
369
|
+
When veo la matriz de permisos
|
|
370
|
+
Then la columna Editor deberia mostrar X (sin acceso) para:
|
|
371
|
+
| Permiso |
|
|
372
|
+
| teams.invite |
|
|
373
|
+
| teams.remove_member |
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
**Severidad:** Bloqueante - validacion critica de seguridad
|
|
377
|
+
|
|
378
|
+
</td>
|
|
379
|
+
</tr>
|
|
380
|
+
</table>
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## Dangerous Permissions
|
|
385
|
+
|
|
386
|
+
### S7_MATRIX_007: Dangerous permissions are highlighted
|
|
387
|
+
|
|
388
|
+
<table>
|
|
389
|
+
<tr>
|
|
390
|
+
<th width="50%">English</th>
|
|
391
|
+
<th width="50%">Español</th>
|
|
392
|
+
</tr>
|
|
393
|
+
<tr>
|
|
394
|
+
<td>
|
|
395
|
+
|
|
396
|
+
```gherkin
|
|
397
|
+
Scenario: Dangerous operations are marked with badge
|
|
398
|
+
|
|
399
|
+
Given I am logged in as SuperAdmin
|
|
400
|
+
When I view the permissions matrix
|
|
401
|
+
Then the "teams.remove_member" permission should have a "dangerous" badge
|
|
402
|
+
And dangerous permissions should be displayed in red
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
**Note:** The dangerous badge identifies high-risk operations.
|
|
406
|
+
|
|
407
|
+
</td>
|
|
408
|
+
<td>
|
|
409
|
+
|
|
410
|
+
```gherkin
|
|
411
|
+
Scenario: Operaciones peligrosas estan marcadas con etiqueta
|
|
412
|
+
|
|
413
|
+
Given estoy logueado como SuperAdmin
|
|
414
|
+
When veo la matriz de permisos
|
|
415
|
+
Then el permiso "teams.remove_member" deberia tener etiqueta "dangerous"
|
|
416
|
+
And los permisos peligrosos deberian mostrarse en rojo
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
**Nota:** La etiqueta dangerous identifica operaciones de alto riesgo.
|
|
420
|
+
|
|
421
|
+
</td>
|
|
422
|
+
</tr>
|
|
423
|
+
</table>
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
## Stats Cards
|
|
428
|
+
|
|
429
|
+
### S7_MATRIX_008: Stats cards show correct counts
|
|
430
|
+
|
|
431
|
+
<table>
|
|
432
|
+
<tr>
|
|
433
|
+
<th width="50%">English</th>
|
|
434
|
+
<th width="50%">Español</th>
|
|
435
|
+
</tr>
|
|
436
|
+
<tr>
|
|
437
|
+
<td>
|
|
438
|
+
|
|
439
|
+
```gherkin
|
|
440
|
+
Scenario: Page displays accurate statistics
|
|
441
|
+
|
|
442
|
+
Given I am logged in as SuperAdmin
|
|
443
|
+
When I navigate to /sector7/team-roles
|
|
444
|
+
Then I should see stats cards showing:
|
|
445
|
+
| Stat | Value |
|
|
446
|
+
| Available Roles | 5 |
|
|
447
|
+
| Protected Role | owner |
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
</td>
|
|
451
|
+
<td>
|
|
452
|
+
|
|
453
|
+
```gherkin
|
|
454
|
+
Scenario: Pagina muestra estadisticas precisas
|
|
455
|
+
|
|
456
|
+
Given estoy logueado como SuperAdmin
|
|
457
|
+
When navego a /sector7/team-roles
|
|
458
|
+
Then deberia ver tarjetas de estadisticas mostrando:
|
|
459
|
+
| Estadistica | Valor |
|
|
460
|
+
| Available Roles | 5 |
|
|
461
|
+
| Protected Role | owner |
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
</td>
|
|
465
|
+
</tr>
|
|
466
|
+
</table>
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## Permission Counts per Role
|
|
471
|
+
|
|
472
|
+
### S7_MATRIX_009: Role cards show permission counts
|
|
473
|
+
|
|
474
|
+
<table>
|
|
475
|
+
<tr>
|
|
476
|
+
<th width="50%">English</th>
|
|
477
|
+
<th width="50%">Español</th>
|
|
478
|
+
</tr>
|
|
479
|
+
<tr>
|
|
480
|
+
<td>
|
|
481
|
+
|
|
482
|
+
```gherkin
|
|
483
|
+
Scenario: Role cards display permission count summary
|
|
484
|
+
|
|
485
|
+
Given I am logged in as SuperAdmin
|
|
486
|
+
When I view the role hierarchy section
|
|
487
|
+
Then each role card should display "X permissions"
|
|
488
|
+
And Owner should have the most permissions
|
|
489
|
+
And Viewer should have the least permissions
|
|
490
|
+
And Editor should have fewer permissions than Member
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
</td>
|
|
494
|
+
<td>
|
|
495
|
+
|
|
496
|
+
```gherkin
|
|
497
|
+
Scenario: Tarjetas de rol muestran resumen de cantidad de permisos
|
|
498
|
+
|
|
499
|
+
Given estoy logueado como SuperAdmin
|
|
500
|
+
When veo la seccion de jerarquia de roles
|
|
501
|
+
Then cada tarjeta de rol deberia mostrar "X permissions"
|
|
502
|
+
And Owner deberia tener mas permisos
|
|
503
|
+
And Viewer deberia tener menos permisos
|
|
504
|
+
And Editor deberia tener menos permisos que Member
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
</td>
|
|
508
|
+
</tr>
|
|
509
|
+
</table>
|
|
510
|
+
|
|
511
|
+
---
|
|
512
|
+
|
|
513
|
+
## Role Hierarchy Matrix / Matriz de Jerarquia de Roles
|
|
514
|
+
|
|
515
|
+
| Role / Rol | Level / Nivel | Total Permissions | Description / Descripción |
|
|
516
|
+
|------------|:-------------:|:-----------------:|---------------------------|
|
|
517
|
+
| Owner | 100 | 46 | Protected role, full access |
|
|
518
|
+
| Admin | 50 | 43 | Administrative access |
|
|
519
|
+
| Member | 10 | 16 | Standard team member |
|
|
520
|
+
| **Editor** | **5** | **2** | **Custom role with team.view + team.members.view only** |
|
|
521
|
+
| Viewer | 1 | 6 | View-only access |
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
## UI Elements / Elementos UI
|
|
526
|
+
|
|
527
|
+
### Sector7 Team Roles Page
|
|
528
|
+
|
|
529
|
+
| Element | Selector | Description / Descripción |
|
|
530
|
+
|---------|----------|---------------------------|
|
|
531
|
+
| Role Card | `[data-cy="role-card-{role}"]` | Individual role card |
|
|
532
|
+
| Permission Row | `[data-cy="permission-row-{permission}"]` | Permission row in matrix |
|
|
533
|
+
| Category Header | `.bg-muted\/50` | Category section header |
|
|
534
|
+
| Checkmark | `.text-green-600` | Permission granted indicator |
|
|
535
|
+
| X Mark | `.text-red-400\/60` | Permission denied indicator |
|
|
536
|
+
| Dangerous Badge | `.destructive` | Dangerous permission badge |
|
|
537
|
+
| Stats Card | `.border .text-2xl` | Statistics display cards |
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
## Summary / Resumen
|
|
542
|
+
|
|
543
|
+
| Test ID | Block | Description / Descripción | Tags |
|
|
544
|
+
|---------|-------|---------------------------|------|
|
|
545
|
+
| S7_MATRIX_001 | Role Hierarchy | All 5 roles displayed | `@smoke` |
|
|
546
|
+
| S7_MATRIX_002 | Role Hierarchy | Correct hierarchy levels | |
|
|
547
|
+
| S7_MATRIX_003 | Categories | Permissions grouped | |
|
|
548
|
+
| S7_MATRIX_004 | Owner Permissions | Owner has all permissions | `@smoke` |
|
|
549
|
+
| S7_MATRIX_005 | Editor Permissions | Editor has only team view permissions (2) | |
|
|
550
|
+
| S7_MATRIX_006 | Editor Permissions | Editor cannot access team management | |
|
|
551
|
+
| S7_MATRIX_007 | Dangerous | teams.remove_member highlighted | |
|
|
552
|
+
| S7_MATRIX_008 | Stats | Correct counts displayed | |
|
|
553
|
+
| S7_MATRIX_009 | Counts | Permission counts per role | |
|