@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,231 @@
1
+ ---
2
+ feature: Developer App Role Authentication
3
+ priority: critical
4
+ tags: [auth, app-role, developer, dev-zone, security]
5
+ grepTags: [uat, feat-auth, app-role, developer]
6
+ coverage: 6
7
+ ---
8
+
9
+ # Developer App Role Authentication
10
+
11
+ > Tests for Developer app role login and specific access privileges. Developer is a global app role (not team-based) that grants access to the Dev Zone and inherits Sector7 access.
12
+
13
+ ## @test DEV-LOGIN-001: Developer Login and Dev Zone Access
14
+
15
+ ### Metadata
16
+ - **Priority:** Critical
17
+ - **Type:** Smoke
18
+ - **Tags:** developer, login, dev-zone
19
+ - **Grep:** `@smoke`
20
+
21
+ ```gherkin:en
22
+ Scenario: Developer can login and access Dev Zone
23
+
24
+ Given I am logged in as Developer (developer@nextspark.dev)
25
+ When I visit /dev
26
+ Then the URL should include /dev
27
+ And the Dev Zone home page should be visible
28
+ ```
29
+
30
+ ```gherkin:es
31
+ Scenario: Developer puede loguearse y acceder a Dev Zone
32
+
33
+ Given estoy logueado como Developer (developer@nextspark.dev)
34
+ When visito /dev
35
+ Then la URL deberia incluir /dev
36
+ And la pagina principal de Dev Zone deberia estar visible
37
+ ```
38
+
39
+ ### Expected Results
40
+ - Developer successfully logs in
41
+ - Access to /dev is granted
42
+ - Dev Zone home page renders correctly
43
+
44
+ ---
45
+
46
+ ## @test DEV-LOGIN-002: Developer Access to Style Gallery
47
+
48
+ ### Metadata
49
+ - **Priority:** Normal
50
+ - **Type:** Smoke
51
+ - **Tags:** developer, style-gallery
52
+ - **Grep:** `@smoke`
53
+
54
+ ```gherkin:en
55
+ Scenario: Developer can access Style Gallery
56
+
57
+ Given I am logged in as Developer (developer@nextspark.dev)
58
+ When I visit /dev/style
59
+ Then the URL should include /dev/style
60
+ And the Style Gallery page should be visible
61
+ ```
62
+
63
+ ```gherkin:es
64
+ Scenario: Developer puede acceder a Style Gallery
65
+
66
+ Given estoy logueado como Developer (developer@nextspark.dev)
67
+ When visito /dev/style
68
+ Then la URL deberia incluir /dev/style
69
+ And la pagina de Style Gallery deberia estar visible
70
+ ```
71
+
72
+ ### Expected Results
73
+ - Style Gallery page loads successfully
74
+ - All component sections available
75
+
76
+ ---
77
+
78
+ ## @test DEV-LOGIN-003: Developer Access to Test Cases
79
+
80
+ ### Metadata
81
+ - **Priority:** Normal
82
+ - **Type:** Smoke
83
+ - **Tags:** developer, test-cases
84
+ - **Grep:** `@smoke`
85
+
86
+ ```gherkin:en
87
+ Scenario: Developer can access Test Cases viewer
88
+
89
+ Given I am logged in as Developer (developer@nextspark.dev)
90
+ When I visit /dev/tests
91
+ Then the URL should include /dev/tests
92
+ And the Test Cases viewer should be visible
93
+ ```
94
+
95
+ ```gherkin:es
96
+ Scenario: Developer puede acceder al visor de Test Cases
97
+
98
+ Given estoy logueado como Developer (developer@nextspark.dev)
99
+ When visito /dev/tests
100
+ Then la URL deberia incluir /dev/tests
101
+ And el visor de Test Cases deberia estar visible
102
+ ```
103
+
104
+ ### Expected Results
105
+ - Test Cases viewer loads successfully
106
+ - File tree or empty state visible
107
+
108
+ ---
109
+
110
+ ## @test DEV-LOGIN-004: Developer Access to Config Viewer
111
+
112
+ ### Metadata
113
+ - **Priority:** Normal
114
+ - **Type:** Smoke
115
+ - **Tags:** developer, config-viewer
116
+ - **Grep:** `@smoke`
117
+
118
+ ```gherkin:en
119
+ Scenario: Developer can access Config Viewer
120
+
121
+ Given I am logged in as Developer (developer@nextspark.dev)
122
+ When I visit /dev/config
123
+ Then the URL should include /dev/config
124
+ And the Config Viewer page should be visible
125
+ ```
126
+
127
+ ```gherkin:es
128
+ Scenario: Developer puede acceder a Config Viewer
129
+
130
+ Given estoy logueado como Developer (developer@nextspark.dev)
131
+ When visito /dev/config
132
+ Then la URL deberia incluir /dev/config
133
+ And la pagina de Config Viewer deberia estar visible
134
+ ```
135
+
136
+ ### Expected Results
137
+ - Config Viewer loads successfully
138
+ - Theme and Entities tabs available
139
+
140
+ ---
141
+
142
+ ## @test DEV-LOGIN-005: Developer Inherited Sector7 Access
143
+
144
+ ### Metadata
145
+ - **Priority:** High
146
+ - **Type:** Regression
147
+ - **Tags:** developer, sector7, inherited
148
+
149
+ ```gherkin:en
150
+ Scenario: Developer can access Sector7 (inherited privilege)
151
+
152
+ Given I am logged in as Developer (developer@nextspark.dev)
153
+ When I visit /sector7
154
+ Then the URL should include /sector7
155
+ And the Sector7 container should be visible
156
+ ```
157
+
158
+ ```gherkin:es
159
+ Scenario: Developer puede acceder a Sector7 (privilegio heredado)
160
+
161
+ Given estoy logueado como Developer (developer@nextspark.dev)
162
+ When visito /sector7
163
+ Then la URL deberia incluir /sector7
164
+ And el contenedor de Sector7 deberia estar visible
165
+ ```
166
+
167
+ ### Expected Results
168
+ - Developer inherits superadmin privileges for Sector7
169
+ - Sector7 control panel accessible
170
+ - No access denied redirect
171
+
172
+ ---
173
+
174
+ ## @test DEV-LOGIN-006: Developer Logout Flow
175
+
176
+ ### Metadata
177
+ - **Priority:** Normal
178
+ - **Type:** Regression
179
+ - **Tags:** developer, logout
180
+
181
+ ```gherkin:en
182
+ Scenario: Developer can logout successfully
183
+
184
+ Given I am logged in as Developer (developer@nextspark.dev)
185
+ And I am on the dashboard
186
+ When I click on user menu
187
+ And I click on Sign Out
188
+ Then I should be redirected to /login
189
+ ```
190
+
191
+ ```gherkin:es
192
+ Scenario: Developer puede cerrar sesion correctamente
193
+
194
+ Given estoy logueado como Developer (developer@nextspark.dev)
195
+ And estoy en el dashboard
196
+ When hago click en el menu de usuario
197
+ And hago click en Sign Out
198
+ Then deberia ser redirigido a /login
199
+ ```
200
+
201
+ ### Expected Results
202
+ - User menu opens correctly
203
+ - Sign out action works
204
+ - Redirect to login page
205
+
206
+ ---
207
+
208
+ ## UI Elements
209
+
210
+ | Element | Selector | Description |
211
+ |---------|----------|-------------|
212
+ | Dev Home Page | `[data-cy="dev-home-page"]` | Dev Zone home page container |
213
+ | Dev Style Page | `[data-cy="dev-style-page"]` | Style Gallery page container |
214
+ | Dev Tests Page | `[data-cy="dev-tests-page"]` | Test Cases viewer container |
215
+ | Dev Config Page | `[data-cy="dev-config-page"]` | Config Viewer page container |
216
+ | Sector7 Container | `[data-cy="sector7-container"]` | Sector7 main container |
217
+ | User Menu Trigger | `[data-cy="topnav-user-menu-trigger"]` | User menu dropdown trigger |
218
+ | Sign Out Button | `[data-cy="topnav-menu-signOut"]` | Sign out menu item |
219
+
220
+ ---
221
+
222
+ ## Summary
223
+
224
+ | Test ID | Block | Description | Tags |
225
+ |---------|-------|-------------|------|
226
+ | DEV-LOGIN-001 | Login | Developer login + Dev Zone access | `@smoke` |
227
+ | DEV-LOGIN-002 | Access | Style Gallery access | `@smoke` |
228
+ | DEV-LOGIN-003 | Access | Test Cases viewer access | `@smoke` |
229
+ | DEV-LOGIN-004 | Access | Config Viewer access | `@smoke` |
230
+ | DEV-LOGIN-005 | Inherited | Sector7 access (inherited) | |
231
+ | DEV-LOGIN-006 | Logout | Developer logout flow | |
@@ -0,0 +1,144 @@
1
+ /// <reference types="cypress" />
2
+
3
+ /**
4
+ * Developer App Role Login Tests
5
+ *
6
+ * Tests the Developer app role login and specific access:
7
+ * - Login as developer@nextspark.dev
8
+ * - Access to /dev zone
9
+ * - Access to /superadmin (inherited)
10
+ * - No team context required (global role)
11
+ *
12
+ * Tags: @uat, @feat-auth, @app-role, @developer
13
+ */
14
+
15
+ import * as allure from 'allure-cypress'
16
+
17
+ import { loginAsDefaultDeveloper, CORE_USERS } from '../../../../src/session-helpers'
18
+
19
+ describe('Authentication - Developer App Role', {
20
+ tags: ['@uat', '@feat-auth', '@app-role', '@developer']
21
+ }, () => {
22
+ beforeEach(() => {
23
+ allure.epic('Authentication')
24
+ allure.feature('App Roles')
25
+ allure.story('Developer Login')
26
+ })
27
+
28
+ describe('DEV-LOGIN-001: Developer Login and Dev Zone Access', { tags: '@smoke' }, () => {
29
+ it('should login as developer and access /dev zone', { tags: '@smoke' }, () => {
30
+ allure.severity('critical')
31
+
32
+ // 1. Login as Developer
33
+ loginAsDefaultDeveloper()
34
+
35
+ // 2. Visit Dev Zone
36
+ cy.visit('/dev', { timeout: 60000 })
37
+
38
+ // 3. Validate access to Dev Zone
39
+ cy.url().should('include', '/dev')
40
+ cy.get('[data-cy="dev-home-page"]').should('be.visible')
41
+
42
+ cy.log(`✅ Developer login successful (${CORE_USERS.DEVELOPER})`)
43
+ cy.log('✅ Dev Zone access granted')
44
+ })
45
+ })
46
+
47
+ describe('DEV-LOGIN-002: Developer Access to Style Gallery', { tags: '@smoke' }, () => {
48
+ it('should access /dev/style page', { tags: '@smoke' }, () => {
49
+ allure.severity('normal')
50
+
51
+ // 1. Login as Developer
52
+ loginAsDefaultDeveloper()
53
+
54
+ // 2. Visit Style Gallery
55
+ cy.visit('/dev/style', { timeout: 60000 })
56
+
57
+ // 3. Validate access
58
+ cy.url().should('include', '/dev/style')
59
+ cy.get('[data-cy="dev-style-page"]').should('be.visible')
60
+
61
+ cy.log('✅ Style Gallery access granted')
62
+ })
63
+ })
64
+
65
+ describe('DEV-LOGIN-003: Developer Access to Test Cases', { tags: '@smoke' }, () => {
66
+ it('should access /dev/tests page', { tags: '@smoke' }, () => {
67
+ allure.severity('normal')
68
+
69
+ // 1. Login as Developer
70
+ loginAsDefaultDeveloper()
71
+
72
+ // 2. Visit Test Cases viewer
73
+ cy.visit('/dev/tests', { timeout: 60000 })
74
+
75
+ // 3. Validate access
76
+ cy.url().should('include', '/dev/tests')
77
+ cy.get('[data-cy="dev-tests-page"]').should('be.visible')
78
+
79
+ cy.log('✅ Test Cases viewer access granted')
80
+ })
81
+ })
82
+
83
+ describe('DEV-LOGIN-004: Developer Access to Config Viewer', { tags: '@smoke' }, () => {
84
+ it('should access /dev/config page', { tags: '@smoke' }, () => {
85
+ allure.severity('normal')
86
+
87
+ // 1. Login as Developer
88
+ loginAsDefaultDeveloper()
89
+
90
+ // 2. Visit Config Viewer
91
+ cy.visit('/dev/config', { timeout: 60000 })
92
+
93
+ // 3. Validate access
94
+ cy.url().should('include', '/dev/config')
95
+ cy.get('[data-cy="dev-config-page"]').should('be.visible')
96
+
97
+ cy.log('✅ Config Viewer access granted')
98
+ })
99
+ })
100
+
101
+ describe('DEV-LOGIN-005: Developer Inherited Superadmin Access', () => {
102
+ it('should have access to /superadmin (inherited from superadmin)', () => {
103
+ allure.severity('high')
104
+
105
+ // 1. Login as Developer
106
+ loginAsDefaultDeveloper()
107
+
108
+ // 2. Visit Superadmin
109
+ cy.visit('/superadmin', { timeout: 60000 })
110
+
111
+ // 3. Validate access to Superadmin
112
+ cy.url().should('include', '/superadmin')
113
+ cy.get('[data-cy="sector7-container"]').should('be.visible')
114
+
115
+ cy.log('✅ Superadmin access granted (inherited privilege)')
116
+ })
117
+ })
118
+
119
+ describe('DEV-LOGIN-006: Developer Logout Flow', () => {
120
+ it('should logout successfully and redirect to login', () => {
121
+ allure.severity('normal')
122
+
123
+ // 1. Login as Developer
124
+ loginAsDefaultDeveloper()
125
+
126
+ // 2. Visit dashboard
127
+ cy.visit('/dashboard', { timeout: 60000 })
128
+ cy.url().should('include', '/dashboard')
129
+
130
+ // 3. Logout via user menu
131
+ cy.get('[data-cy="topnav-user-menu-trigger"]').click()
132
+ cy.get('[data-cy="topnav-menu-signOut"]').should('be.visible').click()
133
+
134
+ // 4. Validate redirected to login
135
+ cy.url().should('include', '/login')
136
+
137
+ cy.log('✅ Developer logout successful')
138
+ })
139
+ })
140
+
141
+ after(() => {
142
+ cy.log('✅ Developer app role tests completed')
143
+ })
144
+ })
@@ -0,0 +1,118 @@
1
+ ---
2
+ feature: SuperAdmin Authentication Flow
3
+ priority: critical
4
+ tags: [authentication, superadmin, sector7, security]
5
+ grepTags: [uat, feat-auth, security, regression]
6
+ coverage: 1
7
+ ---
8
+
9
+ # SuperAdmin Authentication Flow
10
+
11
+ > Complete authentication flow for SuperAdmin users including Sector7 access, user/team management navigation, and logout.
12
+
13
+ ## @test SUPERADMIN_001: SuperAdmin complete login and Sector7 flow
14
+
15
+ ### Metadata
16
+ - **Priority:** Critical
17
+ - **Type:** Smoke
18
+ - **Tags:** auth, sector7, security
19
+ - **Grep:** `@smoke`, `@security`
20
+
21
+ ```gherkin:en
22
+ Scenario: SuperAdmin complete flow - login, Sector7 access, navigate tables, logout
23
+
24
+ Given I am logged in as SuperAdmin (superadmin@nextspark.dev)
25
+ And I am on the dashboard
26
+
27
+ # Sector7 Access
28
+ When I verify the Sector7 icon is visible in TopNavbar
29
+ And I click the Sector7 icon
30
+ Then the URL should include /sector7
31
+ And "Super Administrator Control Panel" should be visible
32
+
33
+ # Users Management
34
+ When I click the Users navigation link
35
+ Then the URL should include /sector7/users
36
+ And "User Management" should be visible
37
+ And a table should be visible
38
+
39
+ # Teams Management
40
+ When I click the Teams navigation link
41
+ Then the URL should include /sector7/teams
42
+ And "Team Management" should be visible
43
+ And a table should be visible
44
+
45
+ # Exit Sector7
46
+ When I click the "Exit to Dashboard" button
47
+ Then the URL should include /dashboard
48
+ And the URL should not include /sector7
49
+
50
+ # Logout
51
+ When I click the user menu trigger
52
+ And I click the Sign Out option
53
+ Then I should be redirected to /login
54
+ ```
55
+
56
+ ```gherkin:es
57
+ Scenario: Flujo completo SuperAdmin - login, acceso Sector7, navegar tablas, logout
58
+
59
+ Given estoy logueado como SuperAdmin (superadmin@nextspark.dev)
60
+ And estoy en el dashboard
61
+
62
+ # Acceso a Sector7
63
+ When verifico que el icono de Sector7 esta visible en TopNavbar
64
+ And hago clic en el icono de Sector7
65
+ Then la URL deberia incluir /sector7
66
+ And "Super Administrator Control Panel" deberia estar visible
67
+
68
+ # Gestion de Usuarios
69
+ When hago clic en el enlace de navegacion Users
70
+ Then la URL deberia incluir /sector7/users
71
+ And "User Management" deberia estar visible
72
+ And una tabla deberia estar visible
73
+
74
+ # Gestion de Equipos
75
+ When hago clic en el enlace de navegacion Teams
76
+ Then la URL deberia incluir /sector7/teams
77
+ And "Team Management" deberia estar visible
78
+ And una tabla deberia estar visible
79
+
80
+ # Salir de Sector7
81
+ When hago clic en el boton "Exit to Dashboard"
82
+ Then la URL deberia incluir /dashboard
83
+ And la URL no deberia incluir /sector7
84
+
85
+ # Cerrar Sesion
86
+ When hago clic en el trigger del menu de usuario
87
+ And hago clic en la opcion Sign Out
88
+ Then deberia ser redirigido a /login
89
+ ```
90
+
91
+ ### Expected Results
92
+ - SuperAdmin can access dashboard after login
93
+ - Sector7 icon visible in TopNavbar (superadmin only)
94
+ - Sector7 control panel accessible
95
+ - Users and Teams management tables visible
96
+ - Exit to dashboard works correctly
97
+ - Logout redirects to login page
98
+
99
+ ---
100
+
101
+ ## UI Elements
102
+
103
+ | Element | Selector | Description |
104
+ |---------|----------|-------------|
105
+ | Sector7 Icon | `[data-cy="topnav-sector7"]` | Sector7 access (SuperAdmin/Developer only) |
106
+ | Users Nav | `[data-cy="sector7-nav-users"]` | Navigate to Users management |
107
+ | Teams Nav | `[data-cy="sector7-nav-teams"]` | Navigate to Teams management |
108
+ | Exit Button | `[data-cy="sector7-sidebar-exit-to-dashboard"]` | Exit Sector7 to dashboard |
109
+ | User Menu | `[data-cy="topnav-user-menu-trigger"]` | User dropdown menu trigger |
110
+ | Sign Out | `[data-cy="topnav-menu-signOut"]` | Logout option |
111
+
112
+ ---
113
+
114
+ ## Summary
115
+
116
+ | Test ID | Block | Description | Tags |
117
+ |---------|-------|-------------|------|
118
+ | SUPERADMIN_001 | Complete Flow | Login, Sector7 access, Users/Teams navigation, Logout | `@smoke`, `@security`, `@critical` |
@@ -0,0 +1,84 @@
1
+ /// <reference types="cypress" />
2
+
3
+ import * as allure from 'allure-cypress'
4
+
5
+ import { loginAsDefaultSuperadmin, CORE_USERS } from '../../../../src/session-helpers'
6
+
7
+ /**
8
+ * SuperAdmin Login Test
9
+ *
10
+ * Tests the complete SuperAdmin flow:
11
+ * 1. Login via API (using session helper)
12
+ * 2. Access Superadmin panel
13
+ * 3. Navigate through Users and Teams management
14
+ * 4. Logout
15
+ *
16
+ * Uses: loginAsDefaultSuperadmin() from session-helpers
17
+ * User: superadmin@nextspark.dev (core system user with global superadmin role)
18
+ */
19
+
20
+ describe('Authentication - SuperAdmin Flow', {
21
+ tags: ['@uat', '@feat-auth', '@security', '@regression']
22
+ }, () => {
23
+ beforeEach(() => {
24
+ allure.epic('UAT')
25
+ allure.feature('Authentication')
26
+ allure.story('SuperAdmin Access')
27
+ loginAsDefaultSuperadmin()
28
+ })
29
+
30
+ describe('SUPERADMIN_001: SuperAdmin Login and Panel Access', () => {
31
+ it('should login as superadmin, access panel, view tables, and logout', () => {
32
+ allure.severity('critical')
33
+
34
+ // 1. Visit dashboard (session already established)
35
+ cy.visit('/dashboard', { timeout: 60000 })
36
+ cy.url().should('include', '/dashboard')
37
+ cy.log(`✅ SuperAdmin login successful (${CORE_USERS.SUPERADMIN})`)
38
+
39
+ // 2. Validate Superadmin icon is visible (superadmin only)
40
+ cy.get('[data-cy="topnav-superadmin"]').should('be.visible')
41
+ cy.log('✅ Superadmin icon visible in TopNavbar')
42
+
43
+ // 3. Navigate to Superadmin panel
44
+ cy.get('[data-cy="topnav-superadmin"]').click()
45
+ cy.url().should('include', '/superadmin')
46
+ cy.contains('Super Administrator Control Panel').should('be.visible')
47
+ cy.log('✅ Navigated to Superadmin dashboard')
48
+
49
+ // 4. Navigate to Users table and validate
50
+ cy.get('[data-cy="superadmin-nav-users"]').click()
51
+ cy.url().should('include', '/superadmin/users')
52
+ cy.contains('User Management').should('be.visible')
53
+ cy.get('table').should('be.visible')
54
+ cy.log('✅ Users table loaded and visible')
55
+
56
+ // 5. Navigate to Teams table and validate
57
+ cy.get('[data-cy="superadmin-nav-teams"]').click()
58
+ cy.url().should('include', '/superadmin/teams')
59
+ cy.contains('Team Management').should('be.visible')
60
+ cy.get('table').should('be.visible')
61
+ cy.log('✅ Teams table loaded and visible')
62
+
63
+ // 6. Exit Superadmin back to dashboard
64
+ cy.get('[data-cy="superadmin-sidebar-exit-to-dashboard"]').click()
65
+ cy.url().should('include', '/dashboard')
66
+ cy.url().should('not.include', '/superadmin')
67
+ cy.log('✅ Exited Superadmin')
68
+
69
+ // 7. Logout from the main dashboard
70
+ cy.get('[data-cy="topnav-user-menu-trigger"]').click()
71
+ cy.get('[data-cy="topnav-menu-signOut"]').should('be.visible').click()
72
+
73
+ // Verify redirected to login
74
+ cy.url().should('include', '/login')
75
+ cy.log('✅ Logout successful')
76
+
77
+ cy.log('✅ SuperAdmin flow completed successfully')
78
+ })
79
+ })
80
+
81
+ after(() => {
82
+ cy.log('✅ SuperAdmin authentication tests completed')
83
+ })
84
+ })