@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.
Files changed (220) hide show
  1. package/package.json +1 -1
  2. package/tests/cypress/e2e/_devtools/access.bdd.md +262 -0
  3. package/tests/cypress/e2e/_devtools/access.cy.ts +171 -0
  4. package/tests/cypress/e2e/_devtools/navigation.bdd.md +261 -0
  5. package/tests/cypress/e2e/_devtools/navigation.cy.ts +157 -0
  6. package/tests/cypress/e2e/_devtools/pages.bdd.md +303 -0
  7. package/tests/cypress/e2e/_devtools/pages.cy.ts +184 -0
  8. package/tests/cypress/e2e/_docs/README.md +215 -0
  9. package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin-teams.narration.json +155 -0
  10. package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin.cy.ts +390 -0
  11. package/tests/cypress/e2e/_docs/tutorials/teams-system.doc.cy.ts +349 -0
  12. package/tests/cypress/e2e/_docs/tutorials/teams-system.narration.json +165 -0
  13. package/tests/cypress/e2e/_selectors/auth.cy.ts +306 -0
  14. package/tests/cypress/e2e/_selectors/billing.cy.ts +89 -0
  15. package/tests/cypress/e2e/_selectors/dashboard-mobile.cy.ts +113 -0
  16. package/tests/cypress/e2e/_selectors/dashboard-navigation.cy.ts +89 -0
  17. package/tests/cypress/e2e/_selectors/dashboard-sidebar.cy.ts +60 -0
  18. package/tests/cypress/e2e/_selectors/dashboard-topnav.cy.ts +146 -0
  19. package/tests/cypress/e2e/_selectors/devtools.cy.ts +210 -0
  20. package/tests/cypress/e2e/_selectors/global-search.cy.ts +88 -0
  21. package/tests/cypress/e2e/_selectors/pages-editor.cy.ts +179 -0
  22. package/tests/cypress/e2e/_selectors/posts-editor.cy.ts +282 -0
  23. package/tests/cypress/e2e/_selectors/public.cy.ts +112 -0
  24. package/tests/cypress/e2e/_selectors/settings-api-keys.cy.ts +228 -0
  25. package/tests/cypress/e2e/_selectors/settings-billing.cy.ts +105 -0
  26. package/tests/cypress/e2e/_selectors/settings-layout.cy.ts +119 -0
  27. package/tests/cypress/e2e/_selectors/settings-password.cy.ts +71 -0
  28. package/tests/cypress/e2e/_selectors/settings-profile.cy.ts +82 -0
  29. package/tests/cypress/e2e/_selectors/settings-teams.cy.ts +68 -0
  30. package/tests/cypress/e2e/_selectors/superadmin.cy.ts +185 -0
  31. package/tests/cypress/e2e/_selectors/tasks.cy.ts +242 -0
  32. package/tests/cypress/e2e/_selectors/taxonomies.cy.ts +126 -0
  33. package/tests/cypress/e2e/_selectors/teams.cy.ts +142 -0
  34. package/tests/cypress/e2e/_superadmin/all-teams.bdd.md +261 -0
  35. package/tests/cypress/e2e/_superadmin/all-teams.cy.ts +177 -0
  36. package/tests/cypress/e2e/_superadmin/all-users.bdd.md +406 -0
  37. package/tests/cypress/e2e/_superadmin/all-users.cy.ts +294 -0
  38. package/tests/cypress/e2e/_superadmin/dashboard.bdd.md +235 -0
  39. package/tests/cypress/e2e/_superadmin/dashboard.cy.ts +149 -0
  40. package/tests/cypress/e2e/_superadmin/subscriptions-overview.bdd.md +290 -0
  41. package/tests/cypress/e2e/_superadmin/subscriptions-overview.cy.ts +194 -0
  42. package/tests/cypress/e2e/ai/ai-usage.cy.ts +209 -0
  43. package/tests/cypress/e2e/ai/chat-api.cy.ts +107 -0
  44. package/tests/cypress/e2e/ai/guardrails.cy.ts +332 -0
  45. package/tests/cypress/e2e/api/billing/BillingAPIController.js +319 -0
  46. package/tests/cypress/e2e/api/billing/check-action.cy.ts +326 -0
  47. package/tests/cypress/e2e/api/billing/checkout.cy.ts +358 -0
  48. package/tests/cypress/e2e/api/billing/lifecycle.cy.ts +423 -0
  49. package/tests/cypress/e2e/api/billing/plans/README.md +345 -0
  50. package/tests/cypress/e2e/api/billing/plans/business.cy.ts +412 -0
  51. package/tests/cypress/e2e/api/billing/plans/downgrade.cy.ts +510 -0
  52. package/tests/cypress/e2e/api/billing/plans/fixtures/billing-plans.json +163 -0
  53. package/tests/cypress/e2e/api/billing/plans/free.cy.ts +500 -0
  54. package/tests/cypress/e2e/api/billing/plans/pro.cy.ts +497 -0
  55. package/tests/cypress/e2e/api/billing/plans/starter.cy.ts +342 -0
  56. package/tests/cypress/e2e/api/billing/portal.cy.ts +313 -0
  57. package/tests/cypress/e2e/api/devtools/registries.bdd.md +300 -0
  58. package/tests/cypress/e2e/api/devtools/registries.cy.ts +368 -0
  59. package/tests/cypress/e2e/api/entities/blocks-scope.cy.ts +396 -0
  60. package/tests/cypress/e2e/api/entities/customers-crud.cy.ts +648 -0
  61. package/tests/cypress/e2e/api/entities/customers-metas.cy.ts +839 -0
  62. package/tests/cypress/e2e/api/entities/pages-crud.cy.ts +425 -0
  63. package/tests/cypress/e2e/api/entities/pages-status.cy.ts +335 -0
  64. package/tests/cypress/e2e/api/entities/post-categories-crud.cy.ts +610 -0
  65. package/tests/cypress/e2e/api/entities/posts-crud.cy.ts +709 -0
  66. package/tests/cypress/e2e/api/entities/posts-status.cy.ts +396 -0
  67. package/tests/cypress/e2e/api/entities/tasks-crud.cy.ts +602 -0
  68. package/tests/cypress/e2e/api/entities/tasks-metas.cy.ts +878 -0
  69. package/tests/cypress/e2e/api/entities/users-crud.cy.ts +469 -0
  70. package/tests/cypress/e2e/api/entities/users-metas.cy.ts +913 -0
  71. package/tests/cypress/e2e/api/entities/users-security.cy.ts +375 -0
  72. package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.bdd.md +375 -0
  73. package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.cy.ts +346 -0
  74. package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.bdd.md +451 -0
  75. package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.cy.ts +447 -0
  76. package/tests/cypress/e2e/api/scheduled-actions/scheduling.bdd.md +649 -0
  77. package/tests/cypress/e2e/api/scheduled-actions/scheduling.cy.ts +333 -0
  78. package/tests/cypress/e2e/api/settings/api-keys.crud.cy.ts +923 -0
  79. package/tests/cypress/e2e/uat/auth/app-roles/developer-login.bdd.md +231 -0
  80. package/tests/cypress/e2e/uat/auth/app-roles/developer-login.cy.ts +144 -0
  81. package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.bdd.md +118 -0
  82. package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.cy.ts +84 -0
  83. package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.bdd.md +288 -0
  84. package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.cy.ts +188 -0
  85. package/tests/cypress/e2e/uat/auth/login-logout.bdd.md +160 -0
  86. package/tests/cypress/e2e/uat/auth/login-logout.cy.ts +116 -0
  87. package/tests/cypress/e2e/uat/auth/password-reset.bdd.md +289 -0
  88. package/tests/cypress/e2e/uat/auth/password-reset.cy.ts +200 -0
  89. package/tests/cypress/e2e/uat/auth/team-roles/admin-login.bdd.md +225 -0
  90. package/tests/cypress/e2e/uat/auth/team-roles/admin-login.cy.ts +148 -0
  91. package/tests/cypress/e2e/uat/auth/team-roles/member-login.bdd.md +251 -0
  92. package/tests/cypress/e2e/uat/auth/team-roles/member-login.cy.ts +163 -0
  93. package/tests/cypress/e2e/uat/auth/team-roles/owner-login.bdd.md +231 -0
  94. package/tests/cypress/e2e/uat/auth/team-roles/owner-login.cy.ts +141 -0
  95. package/tests/cypress/e2e/uat/billing/extended.bdd.md +273 -0
  96. package/tests/cypress/e2e/uat/billing/extended.cy.ts +209 -0
  97. package/tests/cypress/e2e/uat/billing/feature-gates.bdd.md +407 -0
  98. package/tests/cypress/e2e/uat/billing/feature-gates.cy.ts +307 -0
  99. package/tests/cypress/e2e/uat/billing/page.bdd.md +329 -0
  100. package/tests/cypress/e2e/uat/billing/page.cy.ts +250 -0
  101. package/tests/cypress/e2e/uat/billing/status.bdd.md +190 -0
  102. package/tests/cypress/e2e/uat/billing/status.cy.ts +145 -0
  103. package/tests/cypress/e2e/uat/billing/team-switch.bdd.md +156 -0
  104. package/tests/cypress/e2e/uat/billing/team-switch.cy.ts +122 -0
  105. package/tests/cypress/e2e/uat/billing/usage.bdd.md +218 -0
  106. package/tests/cypress/e2e/uat/billing/usage.cy.ts +176 -0
  107. package/tests/cypress/e2e/uat/blocks/hero.bdd.md +124 -0
  108. package/tests/cypress/e2e/uat/blocks/hero.cy.ts +56 -0
  109. package/tests/cypress/e2e/uat/devtools/api-tester.cy.ts +390 -0
  110. package/tests/cypress/e2e/uat/entities/customers/member.bdd.md +275 -0
  111. package/tests/cypress/e2e/uat/entities/customers/member.cy.ts +122 -0
  112. package/tests/cypress/e2e/uat/entities/customers/owner.bdd.md +243 -0
  113. package/tests/cypress/e2e/uat/entities/customers/owner.cy.ts +165 -0
  114. package/tests/cypress/e2e/uat/entities/pages/block-crud.bdd.md +476 -0
  115. package/tests/cypress/e2e/uat/entities/pages/block-crud.cy.ts +486 -0
  116. package/tests/cypress/e2e/uat/entities/pages/block-editor.bdd.md +460 -0
  117. package/tests/cypress/e2e/uat/entities/pages/block-editor.cy.ts +301 -0
  118. package/tests/cypress/e2e/uat/entities/pages/list.bdd.md +432 -0
  119. package/tests/cypress/e2e/uat/entities/pages/list.cy.ts +273 -0
  120. package/tests/cypress/e2e/uat/entities/pages/public-rendering.bdd.md +696 -0
  121. package/tests/cypress/e2e/uat/entities/pages/public-rendering.cy.ts +340 -0
  122. package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.bdd.md +161 -0
  123. package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.cy.ts +104 -0
  124. package/tests/cypress/e2e/uat/entities/posts/categories.bdd.md +375 -0
  125. package/tests/cypress/e2e/uat/entities/posts/categories.cy.ts +241 -0
  126. package/tests/cypress/e2e/uat/entities/posts/editor.bdd.md +429 -0
  127. package/tests/cypress/e2e/uat/entities/posts/editor.cy.ts +257 -0
  128. package/tests/cypress/e2e/uat/entities/posts/list.bdd.md +340 -0
  129. package/tests/cypress/e2e/uat/entities/posts/list.cy.ts +177 -0
  130. package/tests/cypress/e2e/uat/entities/posts/public.bdd.md +614 -0
  131. package/tests/cypress/e2e/uat/entities/posts/public.cy.ts +249 -0
  132. package/tests/cypress/e2e/uat/entities/tasks/member.bdd.md +222 -0
  133. package/tests/cypress/e2e/uat/entities/tasks/member.cy.ts +165 -0
  134. package/tests/cypress/e2e/uat/entities/tasks/owner.bdd.md +419 -0
  135. package/tests/cypress/e2e/uat/entities/tasks/owner.cy.ts +191 -0
  136. package/tests/cypress/e2e/uat/roles/editor-role.bdd.md +552 -0
  137. package/tests/cypress/e2e/uat/roles/editor-role.cy.ts +210 -0
  138. package/tests/cypress/e2e/uat/roles/member-restrictions.bdd.md +450 -0
  139. package/tests/cypress/e2e/uat/roles/member-restrictions.cy.ts +189 -0
  140. package/tests/cypress/e2e/uat/roles/owner-full-crud.bdd.md +530 -0
  141. package/tests/cypress/e2e/uat/roles/owner-full-crud.cy.ts +247 -0
  142. package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.bdd.md +736 -0
  143. package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.cy.ts +740 -0
  144. package/tests/cypress/e2e/uat/teams/roles-matrix.bdd.md +553 -0
  145. package/tests/cypress/e2e/uat/teams/roles-matrix.cy.ts +185 -0
  146. package/tests/cypress/e2e/uat/teams/switcher.bdd.md +1151 -0
  147. package/tests/cypress/e2e/uat/teams/switcher.cy.ts +497 -0
  148. package/tests/cypress/e2e/uat/teams/team-switcher.md +198 -0
  149. package/tests/cypress/fixtures/blocks.json +218 -0
  150. package/tests/cypress/fixtures/entities.json +78 -0
  151. package/tests/cypress/fixtures/page-builder.json +21 -0
  152. package/tests/cypress/src/components/CategoriesPOM.ts +382 -0
  153. package/tests/cypress/src/components/CustomersPOM.ts +439 -0
  154. package/tests/cypress/src/components/DevKeyringPOM.ts +160 -0
  155. package/tests/cypress/src/components/EntityForm.ts +375 -0
  156. package/tests/cypress/src/components/EntityList.ts +389 -0
  157. package/tests/cypress/src/components/PageBuilderPOM.ts +710 -0
  158. package/tests/cypress/src/components/PostEditorPOM.ts +370 -0
  159. package/tests/cypress/src/components/PostsListPOM.ts +223 -0
  160. package/tests/cypress/src/components/PublicPagePOM.ts +447 -0
  161. package/tests/cypress/src/components/PublicPostPOM.ts +146 -0
  162. package/tests/cypress/src/components/TasksPOM.ts +272 -0
  163. package/tests/cypress/src/components/TeamSwitcherPOM.ts +450 -0
  164. package/tests/cypress/src/components/index.ts +21 -0
  165. package/tests/cypress/src/controllers/ApiKeysAPIController.js +178 -0
  166. package/tests/cypress/src/controllers/BaseAPIController.js +317 -0
  167. package/tests/cypress/src/controllers/CustomerAPIController.js +251 -0
  168. package/tests/cypress/src/controllers/PagesAPIController.js +226 -0
  169. package/tests/cypress/src/controllers/PostsAPIController.js +250 -0
  170. package/tests/cypress/src/controllers/TaskAPIController.js +240 -0
  171. package/tests/cypress/src/controllers/UsersAPIController.js +242 -0
  172. package/tests/cypress/src/controllers/index.js +25 -0
  173. package/tests/cypress/src/core/AuthPOM.ts +450 -0
  174. package/tests/cypress/src/core/BasePOM.ts +86 -0
  175. package/tests/cypress/src/core/BlockEditorBasePOM.ts +576 -0
  176. package/tests/cypress/src/core/DashboardEntityPOM.ts +692 -0
  177. package/tests/cypress/src/core/index.ts +14 -0
  178. package/tests/cypress/src/entities/CustomersPOM.ts +172 -0
  179. package/tests/cypress/src/entities/PagesPOM.ts +137 -0
  180. package/tests/cypress/src/entities/PostsPOM.ts +137 -0
  181. package/tests/cypress/src/entities/TasksPOM.ts +176 -0
  182. package/tests/cypress/src/entities/index.ts +14 -0
  183. package/tests/cypress/src/features/BillingPOM.ts +385 -0
  184. package/tests/cypress/src/features/DashboardPOM.ts +245 -0
  185. package/tests/cypress/src/features/DevtoolsPOM.ts +739 -0
  186. package/tests/cypress/src/features/PageBuilderPOM.ts +263 -0
  187. package/tests/cypress/src/features/PostEditorPOM.ts +313 -0
  188. package/tests/cypress/src/features/ScheduledActionsPOM.ts +463 -0
  189. package/tests/cypress/src/features/SettingsPOM.ts +362 -0
  190. package/tests/cypress/src/features/SuperadminPOM.ts +331 -0
  191. package/tests/cypress/src/features/SuperadminTeamRolesPOM.ts +285 -0
  192. package/tests/cypress/src/features/index.ts +28 -0
  193. package/tests/cypress/src/helpers/ApiInterceptor.ts +177 -0
  194. package/tests/cypress/src/index.ts +101 -0
  195. package/tests/cypress/src/pages/dashboard/Dashboard.js +677 -0
  196. package/tests/cypress/src/pages/dashboard/DashboardPage.js +43 -0
  197. package/tests/cypress/src/pages/dashboard/DashboardStats.js +546 -0
  198. package/tests/cypress/src/pages/dashboard/index.js +6 -0
  199. package/tests/cypress/src/pages/index.js +5 -0
  200. package/tests/cypress/src/pages/public/FeaturesPage.js +28 -0
  201. package/tests/cypress/src/pages/public/LandingPage.js +69 -0
  202. package/tests/cypress/src/pages/public/PricingPage.js +33 -0
  203. package/tests/cypress/src/pages/public/index.js +6 -0
  204. package/tests/cypress/src/selectors.ts +46 -0
  205. package/tests/cypress/src/session-helpers.ts +500 -0
  206. package/tests/cypress/support/doc-commands.ts +260 -0
  207. package/tests/cypress.config.ts +150 -0
  208. package/tests/jest/components/post-header.test.tsx +377 -0
  209. package/tests/jest/config/role-config.test.ts +529 -0
  210. package/tests/jest/jest.config.ts +81 -0
  211. package/tests/jest/langchain/COVERAGE.md +372 -0
  212. package/tests/jest/langchain/guardrails.test.ts +465 -0
  213. package/tests/jest/langchain/streaming.test.ts +367 -0
  214. package/tests/jest/langchain/token-tracker.test.ts +455 -0
  215. package/tests/jest/langchain/tracer-callbacks.test.ts +881 -0
  216. package/tests/jest/langchain/tracer.test.ts +823 -0
  217. package/tests/jest/user-roles/role-helpers.test.ts +432 -0
  218. package/tests/jest/validation/categories.test.ts +429 -0
  219. package/tests/jest/validation/posts.test.ts +546 -0
  220. 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 | |