@nextsparkjs/theme-default 0.1.0-beta.2 → 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 (222) hide show
  1. package/package.json +8 -4
  2. package/templates/(public)/page.tsx +1 -1
  3. package/tests/cypress/e2e/_devtools/access.bdd.md +262 -0
  4. package/tests/cypress/e2e/_devtools/access.cy.ts +171 -0
  5. package/tests/cypress/e2e/_devtools/navigation.bdd.md +261 -0
  6. package/tests/cypress/e2e/_devtools/navigation.cy.ts +157 -0
  7. package/tests/cypress/e2e/_devtools/pages.bdd.md +303 -0
  8. package/tests/cypress/e2e/_devtools/pages.cy.ts +184 -0
  9. package/tests/cypress/e2e/_docs/README.md +215 -0
  10. package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin-teams.narration.json +155 -0
  11. package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin.cy.ts +390 -0
  12. package/tests/cypress/e2e/_docs/tutorials/teams-system.doc.cy.ts +349 -0
  13. package/tests/cypress/e2e/_docs/tutorials/teams-system.narration.json +165 -0
  14. package/tests/cypress/e2e/_selectors/auth.cy.ts +306 -0
  15. package/tests/cypress/e2e/_selectors/billing.cy.ts +89 -0
  16. package/tests/cypress/e2e/_selectors/dashboard-mobile.cy.ts +113 -0
  17. package/tests/cypress/e2e/_selectors/dashboard-navigation.cy.ts +89 -0
  18. package/tests/cypress/e2e/_selectors/dashboard-sidebar.cy.ts +60 -0
  19. package/tests/cypress/e2e/_selectors/dashboard-topnav.cy.ts +146 -0
  20. package/tests/cypress/e2e/_selectors/devtools.cy.ts +210 -0
  21. package/tests/cypress/e2e/_selectors/global-search.cy.ts +88 -0
  22. package/tests/cypress/e2e/_selectors/pages-editor.cy.ts +179 -0
  23. package/tests/cypress/e2e/_selectors/posts-editor.cy.ts +282 -0
  24. package/tests/cypress/e2e/_selectors/public.cy.ts +112 -0
  25. package/tests/cypress/e2e/_selectors/settings-api-keys.cy.ts +228 -0
  26. package/tests/cypress/e2e/_selectors/settings-billing.cy.ts +105 -0
  27. package/tests/cypress/e2e/_selectors/settings-layout.cy.ts +119 -0
  28. package/tests/cypress/e2e/_selectors/settings-password.cy.ts +71 -0
  29. package/tests/cypress/e2e/_selectors/settings-profile.cy.ts +82 -0
  30. package/tests/cypress/e2e/_selectors/settings-teams.cy.ts +68 -0
  31. package/tests/cypress/e2e/_selectors/superadmin.cy.ts +185 -0
  32. package/tests/cypress/e2e/_selectors/tasks.cy.ts +242 -0
  33. package/tests/cypress/e2e/_selectors/taxonomies.cy.ts +126 -0
  34. package/tests/cypress/e2e/_selectors/teams.cy.ts +142 -0
  35. package/tests/cypress/e2e/_superadmin/all-teams.bdd.md +261 -0
  36. package/tests/cypress/e2e/_superadmin/all-teams.cy.ts +177 -0
  37. package/tests/cypress/e2e/_superadmin/all-users.bdd.md +406 -0
  38. package/tests/cypress/e2e/_superadmin/all-users.cy.ts +294 -0
  39. package/tests/cypress/e2e/_superadmin/dashboard.bdd.md +235 -0
  40. package/tests/cypress/e2e/_superadmin/dashboard.cy.ts +149 -0
  41. package/tests/cypress/e2e/_superadmin/subscriptions-overview.bdd.md +290 -0
  42. package/tests/cypress/e2e/_superadmin/subscriptions-overview.cy.ts +194 -0
  43. package/tests/cypress/e2e/ai/ai-usage.cy.ts +209 -0
  44. package/tests/cypress/e2e/ai/chat-api.cy.ts +107 -0
  45. package/tests/cypress/e2e/ai/guardrails.cy.ts +332 -0
  46. package/tests/cypress/e2e/api/billing/BillingAPIController.js +319 -0
  47. package/tests/cypress/e2e/api/billing/check-action.cy.ts +326 -0
  48. package/tests/cypress/e2e/api/billing/checkout.cy.ts +358 -0
  49. package/tests/cypress/e2e/api/billing/lifecycle.cy.ts +423 -0
  50. package/tests/cypress/e2e/api/billing/plans/README.md +345 -0
  51. package/tests/cypress/e2e/api/billing/plans/business.cy.ts +412 -0
  52. package/tests/cypress/e2e/api/billing/plans/downgrade.cy.ts +510 -0
  53. package/tests/cypress/e2e/api/billing/plans/fixtures/billing-plans.json +163 -0
  54. package/tests/cypress/e2e/api/billing/plans/free.cy.ts +500 -0
  55. package/tests/cypress/e2e/api/billing/plans/pro.cy.ts +497 -0
  56. package/tests/cypress/e2e/api/billing/plans/starter.cy.ts +342 -0
  57. package/tests/cypress/e2e/api/billing/portal.cy.ts +313 -0
  58. package/tests/cypress/e2e/api/devtools/registries.bdd.md +300 -0
  59. package/tests/cypress/e2e/api/devtools/registries.cy.ts +368 -0
  60. package/tests/cypress/e2e/api/entities/blocks-scope.cy.ts +396 -0
  61. package/tests/cypress/e2e/api/entities/customers-crud.cy.ts +648 -0
  62. package/tests/cypress/e2e/api/entities/customers-metas.cy.ts +839 -0
  63. package/tests/cypress/e2e/api/entities/pages-crud.cy.ts +425 -0
  64. package/tests/cypress/e2e/api/entities/pages-status.cy.ts +335 -0
  65. package/tests/cypress/e2e/api/entities/post-categories-crud.cy.ts +610 -0
  66. package/tests/cypress/e2e/api/entities/posts-crud.cy.ts +709 -0
  67. package/tests/cypress/e2e/api/entities/posts-status.cy.ts +396 -0
  68. package/tests/cypress/e2e/api/entities/tasks-crud.cy.ts +602 -0
  69. package/tests/cypress/e2e/api/entities/tasks-metas.cy.ts +878 -0
  70. package/tests/cypress/e2e/api/entities/users-crud.cy.ts +469 -0
  71. package/tests/cypress/e2e/api/entities/users-metas.cy.ts +913 -0
  72. package/tests/cypress/e2e/api/entities/users-security.cy.ts +375 -0
  73. package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.bdd.md +375 -0
  74. package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.cy.ts +346 -0
  75. package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.bdd.md +451 -0
  76. package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.cy.ts +447 -0
  77. package/tests/cypress/e2e/api/scheduled-actions/scheduling.bdd.md +649 -0
  78. package/tests/cypress/e2e/api/scheduled-actions/scheduling.cy.ts +333 -0
  79. package/tests/cypress/e2e/api/settings/api-keys.crud.cy.ts +923 -0
  80. package/tests/cypress/e2e/uat/auth/app-roles/developer-login.bdd.md +231 -0
  81. package/tests/cypress/e2e/uat/auth/app-roles/developer-login.cy.ts +144 -0
  82. package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.bdd.md +118 -0
  83. package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.cy.ts +84 -0
  84. package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.bdd.md +288 -0
  85. package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.cy.ts +188 -0
  86. package/tests/cypress/e2e/uat/auth/login-logout.bdd.md +160 -0
  87. package/tests/cypress/e2e/uat/auth/login-logout.cy.ts +116 -0
  88. package/tests/cypress/e2e/uat/auth/password-reset.bdd.md +289 -0
  89. package/tests/cypress/e2e/uat/auth/password-reset.cy.ts +200 -0
  90. package/tests/cypress/e2e/uat/auth/team-roles/admin-login.bdd.md +225 -0
  91. package/tests/cypress/e2e/uat/auth/team-roles/admin-login.cy.ts +148 -0
  92. package/tests/cypress/e2e/uat/auth/team-roles/member-login.bdd.md +251 -0
  93. package/tests/cypress/e2e/uat/auth/team-roles/member-login.cy.ts +163 -0
  94. package/tests/cypress/e2e/uat/auth/team-roles/owner-login.bdd.md +231 -0
  95. package/tests/cypress/e2e/uat/auth/team-roles/owner-login.cy.ts +141 -0
  96. package/tests/cypress/e2e/uat/billing/extended.bdd.md +273 -0
  97. package/tests/cypress/e2e/uat/billing/extended.cy.ts +209 -0
  98. package/tests/cypress/e2e/uat/billing/feature-gates.bdd.md +407 -0
  99. package/tests/cypress/e2e/uat/billing/feature-gates.cy.ts +307 -0
  100. package/tests/cypress/e2e/uat/billing/page.bdd.md +329 -0
  101. package/tests/cypress/e2e/uat/billing/page.cy.ts +250 -0
  102. package/tests/cypress/e2e/uat/billing/status.bdd.md +190 -0
  103. package/tests/cypress/e2e/uat/billing/status.cy.ts +145 -0
  104. package/tests/cypress/e2e/uat/billing/team-switch.bdd.md +156 -0
  105. package/tests/cypress/e2e/uat/billing/team-switch.cy.ts +122 -0
  106. package/tests/cypress/e2e/uat/billing/usage.bdd.md +218 -0
  107. package/tests/cypress/e2e/uat/billing/usage.cy.ts +176 -0
  108. package/tests/cypress/e2e/uat/blocks/hero.bdd.md +124 -0
  109. package/tests/cypress/e2e/uat/blocks/hero.cy.ts +56 -0
  110. package/tests/cypress/e2e/uat/devtools/api-tester.cy.ts +390 -0
  111. package/tests/cypress/e2e/uat/entities/customers/member.bdd.md +275 -0
  112. package/tests/cypress/e2e/uat/entities/customers/member.cy.ts +122 -0
  113. package/tests/cypress/e2e/uat/entities/customers/owner.bdd.md +243 -0
  114. package/tests/cypress/e2e/uat/entities/customers/owner.cy.ts +165 -0
  115. package/tests/cypress/e2e/uat/entities/pages/block-crud.bdd.md +476 -0
  116. package/tests/cypress/e2e/uat/entities/pages/block-crud.cy.ts +486 -0
  117. package/tests/cypress/e2e/uat/entities/pages/block-editor.bdd.md +460 -0
  118. package/tests/cypress/e2e/uat/entities/pages/block-editor.cy.ts +301 -0
  119. package/tests/cypress/e2e/uat/entities/pages/list.bdd.md +432 -0
  120. package/tests/cypress/e2e/uat/entities/pages/list.cy.ts +273 -0
  121. package/tests/cypress/e2e/uat/entities/pages/public-rendering.bdd.md +696 -0
  122. package/tests/cypress/e2e/uat/entities/pages/public-rendering.cy.ts +340 -0
  123. package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.bdd.md +161 -0
  124. package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.cy.ts +104 -0
  125. package/tests/cypress/e2e/uat/entities/posts/categories.bdd.md +375 -0
  126. package/tests/cypress/e2e/uat/entities/posts/categories.cy.ts +241 -0
  127. package/tests/cypress/e2e/uat/entities/posts/editor.bdd.md +429 -0
  128. package/tests/cypress/e2e/uat/entities/posts/editor.cy.ts +257 -0
  129. package/tests/cypress/e2e/uat/entities/posts/list.bdd.md +340 -0
  130. package/tests/cypress/e2e/uat/entities/posts/list.cy.ts +177 -0
  131. package/tests/cypress/e2e/uat/entities/posts/public.bdd.md +614 -0
  132. package/tests/cypress/e2e/uat/entities/posts/public.cy.ts +249 -0
  133. package/tests/cypress/e2e/uat/entities/tasks/member.bdd.md +222 -0
  134. package/tests/cypress/e2e/uat/entities/tasks/member.cy.ts +165 -0
  135. package/tests/cypress/e2e/uat/entities/tasks/owner.bdd.md +419 -0
  136. package/tests/cypress/e2e/uat/entities/tasks/owner.cy.ts +191 -0
  137. package/tests/cypress/e2e/uat/roles/editor-role.bdd.md +552 -0
  138. package/tests/cypress/e2e/uat/roles/editor-role.cy.ts +210 -0
  139. package/tests/cypress/e2e/uat/roles/member-restrictions.bdd.md +450 -0
  140. package/tests/cypress/e2e/uat/roles/member-restrictions.cy.ts +189 -0
  141. package/tests/cypress/e2e/uat/roles/owner-full-crud.bdd.md +530 -0
  142. package/tests/cypress/e2e/uat/roles/owner-full-crud.cy.ts +247 -0
  143. package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.bdd.md +736 -0
  144. package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.cy.ts +740 -0
  145. package/tests/cypress/e2e/uat/teams/roles-matrix.bdd.md +553 -0
  146. package/tests/cypress/e2e/uat/teams/roles-matrix.cy.ts +185 -0
  147. package/tests/cypress/e2e/uat/teams/switcher.bdd.md +1151 -0
  148. package/tests/cypress/e2e/uat/teams/switcher.cy.ts +497 -0
  149. package/tests/cypress/e2e/uat/teams/team-switcher.md +198 -0
  150. package/tests/cypress/fixtures/blocks.json +218 -0
  151. package/tests/cypress/fixtures/entities.json +78 -0
  152. package/tests/cypress/fixtures/page-builder.json +21 -0
  153. package/tests/cypress/src/components/CategoriesPOM.ts +382 -0
  154. package/tests/cypress/src/components/CustomersPOM.ts +439 -0
  155. package/tests/cypress/src/components/DevKeyringPOM.ts +160 -0
  156. package/tests/cypress/src/components/EntityForm.ts +375 -0
  157. package/tests/cypress/src/components/EntityList.ts +389 -0
  158. package/tests/cypress/src/components/PageBuilderPOM.ts +710 -0
  159. package/tests/cypress/src/components/PostEditorPOM.ts +370 -0
  160. package/tests/cypress/src/components/PostsListPOM.ts +223 -0
  161. package/tests/cypress/src/components/PublicPagePOM.ts +447 -0
  162. package/tests/cypress/src/components/PublicPostPOM.ts +146 -0
  163. package/tests/cypress/src/components/TasksPOM.ts +272 -0
  164. package/tests/cypress/src/components/TeamSwitcherPOM.ts +450 -0
  165. package/tests/cypress/src/components/index.ts +21 -0
  166. package/tests/cypress/src/controllers/ApiKeysAPIController.js +178 -0
  167. package/tests/cypress/src/controllers/BaseAPIController.js +317 -0
  168. package/tests/cypress/src/controllers/CustomerAPIController.js +251 -0
  169. package/tests/cypress/src/controllers/PagesAPIController.js +226 -0
  170. package/tests/cypress/src/controllers/PostsAPIController.js +250 -0
  171. package/tests/cypress/src/controllers/TaskAPIController.js +240 -0
  172. package/tests/cypress/src/controllers/UsersAPIController.js +242 -0
  173. package/tests/cypress/src/controllers/index.js +25 -0
  174. package/tests/cypress/src/core/AuthPOM.ts +450 -0
  175. package/tests/cypress/src/core/BasePOM.ts +86 -0
  176. package/tests/cypress/src/core/BlockEditorBasePOM.ts +576 -0
  177. package/tests/cypress/src/core/DashboardEntityPOM.ts +692 -0
  178. package/tests/cypress/src/core/index.ts +14 -0
  179. package/tests/cypress/src/entities/CustomersPOM.ts +172 -0
  180. package/tests/cypress/src/entities/PagesPOM.ts +137 -0
  181. package/tests/cypress/src/entities/PostsPOM.ts +137 -0
  182. package/tests/cypress/src/entities/TasksPOM.ts +176 -0
  183. package/tests/cypress/src/entities/index.ts +14 -0
  184. package/tests/cypress/src/features/BillingPOM.ts +385 -0
  185. package/tests/cypress/src/features/DashboardPOM.ts +245 -0
  186. package/tests/cypress/src/features/DevtoolsPOM.ts +739 -0
  187. package/tests/cypress/src/features/PageBuilderPOM.ts +263 -0
  188. package/tests/cypress/src/features/PostEditorPOM.ts +313 -0
  189. package/tests/cypress/src/features/ScheduledActionsPOM.ts +463 -0
  190. package/tests/cypress/src/features/SettingsPOM.ts +362 -0
  191. package/tests/cypress/src/features/SuperadminPOM.ts +331 -0
  192. package/tests/cypress/src/features/SuperadminTeamRolesPOM.ts +285 -0
  193. package/tests/cypress/src/features/index.ts +28 -0
  194. package/tests/cypress/src/helpers/ApiInterceptor.ts +177 -0
  195. package/tests/cypress/src/index.ts +101 -0
  196. package/tests/cypress/src/pages/dashboard/Dashboard.js +677 -0
  197. package/tests/cypress/src/pages/dashboard/DashboardPage.js +43 -0
  198. package/tests/cypress/src/pages/dashboard/DashboardStats.js +546 -0
  199. package/tests/cypress/src/pages/dashboard/index.js +6 -0
  200. package/tests/cypress/src/pages/index.js +5 -0
  201. package/tests/cypress/src/pages/public/FeaturesPage.js +28 -0
  202. package/tests/cypress/src/pages/public/LandingPage.js +69 -0
  203. package/tests/cypress/src/pages/public/PricingPage.js +33 -0
  204. package/tests/cypress/src/pages/public/index.js +6 -0
  205. package/tests/cypress/src/selectors.ts +46 -0
  206. package/tests/cypress/src/session-helpers.ts +500 -0
  207. package/tests/cypress/support/doc-commands.ts +260 -0
  208. package/tests/cypress.config.ts +150 -0
  209. package/tests/jest/components/post-header.test.tsx +377 -0
  210. package/tests/jest/config/role-config.test.ts +529 -0
  211. package/tests/jest/jest.config.ts +81 -0
  212. package/tests/jest/langchain/COVERAGE.md +372 -0
  213. package/tests/jest/langchain/guardrails.test.ts +465 -0
  214. package/tests/jest/langchain/streaming.test.ts +367 -0
  215. package/tests/jest/langchain/token-tracker.test.ts +455 -0
  216. package/tests/jest/langchain/tracer-callbacks.test.ts +881 -0
  217. package/tests/jest/langchain/tracer.test.ts +823 -0
  218. package/tests/jest/user-roles/role-helpers.test.ts +432 -0
  219. package/tests/jest/validation/categories.test.ts +429 -0
  220. package/tests/jest/validation/posts.test.ts +546 -0
  221. package/tests/tsconfig.json +15 -0
  222. package/LICENSE +0 -21
@@ -0,0 +1,261 @@
1
+ ---
2
+ feature: Superadmin All Teams Management
3
+ priority: high
4
+ tags: [sector7, superadmin, teams, management]
5
+ grepTags: [uat, feat-sector7, superadmin, teams]
6
+ coverage: 7
7
+ ---
8
+
9
+ # Superadmin All Teams Management
10
+
11
+ > Tests for the Admin Panel all teams management page. Superadmin can view all teams across the platform, see their details, member counts, and billing plans.
12
+
13
+ ## @test ADMIN-TEAMS-001: Teams List Access
14
+
15
+ ### Metadata
16
+ - **Priority:** Critical
17
+ - **Type:** Smoke
18
+ - **Tags:** sector7, teams, access
19
+ - **Grep:** `@smoke`
20
+
21
+ ```gherkin:en
22
+ Scenario: Superadmin can access all teams list
23
+
24
+ Given I am logged in as Superadmin (superadmin@nextspark.dev)
25
+ When I visit /admin/teams
26
+ Then the URL should include /admin/teams
27
+ And I should see "Team Management" heading
28
+ And the teams container should be visible
29
+ ```
30
+
31
+ ```gherkin:es
32
+ Scenario: Superadmin puede acceder a la lista de todos los teams
33
+
34
+ Given estoy logueado como Superadmin (superadmin@nextspark.dev)
35
+ When visito /admin/teams
36
+ Then la URL deberia incluir /admin/teams
37
+ And deberia ver el heading "Team Management"
38
+ And el contenedor de teams deberia estar visible
39
+ ```
40
+
41
+ ### Expected Results
42
+ - Teams page loads correctly
43
+ - Header displays correct title
44
+
45
+ ---
46
+
47
+ ## @test ADMIN-TEAMS-002: Teams List Display
48
+
49
+ ### Metadata
50
+ - **Priority:** Critical
51
+ - **Type:** Smoke
52
+ - **Tags:** sector7, teams, list
53
+ - **Grep:** `@smoke`
54
+
55
+ ```gherkin:en
56
+ Scenario: Teams are displayed in a list or table
57
+
58
+ Given I am logged in as Superadmin
59
+ When I visit /admin/teams
60
+ Then the teams container should contain a list or table
61
+ And each team should be represented as a row
62
+ ```
63
+
64
+ ```gherkin:es
65
+ Scenario: Teams se muestran en una lista o tabla
66
+
67
+ Given estoy logueado como Superadmin
68
+ When visito /admin/teams
69
+ Then el contenedor de teams deberia contener una lista o tabla
70
+ And cada team deberia estar representado como una fila
71
+ ```
72
+
73
+ ### Expected Results
74
+ - Teams displayed in organized format
75
+ - All teams visible
76
+
77
+ ---
78
+
79
+ ## @test ADMIN-TEAMS-003: View Team Details
80
+
81
+ ### Metadata
82
+ - **Priority:** High
83
+ - **Type:** Regression
84
+ - **Tags:** sector7, teams, details
85
+
86
+ ```gherkin:en
87
+ Scenario: View individual team details
88
+
89
+ Given I am logged in as Superadmin
90
+ And I am on /admin/teams
91
+ When I click on a team row
92
+ Then I should navigate to team details page
93
+ And the team details should be visible
94
+ ```
95
+
96
+ ```gherkin:es
97
+ Scenario: Ver detalles de un team individual
98
+
99
+ Given estoy logueado como Superadmin
100
+ And estoy en /admin/teams
101
+ When hago click en una fila de team
102
+ Then deberia navegar a la pagina de detalles del team
103
+ And los detalles del team deberian estar visibles
104
+ ```
105
+
106
+ ### Expected Results
107
+ - Click navigates to details
108
+ - Details page shows team info
109
+
110
+ ---
111
+
112
+ ## @test ADMIN-TEAMS-004: Team Search
113
+
114
+ ### Metadata
115
+ - **Priority:** High
116
+ - **Type:** Regression
117
+ - **Tags:** sector7, teams, search
118
+
119
+ ```gherkin:en
120
+ Scenario: Filter teams by search query
121
+
122
+ Given I am logged in as Superadmin
123
+ And I am on /admin/teams
124
+ When I type "Test" in the search field
125
+ Then the teams list should be filtered
126
+ And only matching teams should be displayed
127
+ ```
128
+
129
+ ```gherkin:es
130
+ Scenario: Filtrar teams por busqueda
131
+
132
+ Given estoy logueado como Superadmin
133
+ And estoy en /admin/teams
134
+ When escribo "Test" en el campo de busqueda
135
+ Then la lista de teams deberia ser filtrada
136
+ And solo los teams que coinciden deberian mostrarse
137
+ ```
138
+
139
+ ### Expected Results
140
+ - Search filters list
141
+ - Real-time filtering
142
+
143
+ ---
144
+
145
+ ## @test ADMIN-TEAMS-005: Team Member Count
146
+
147
+ ### Metadata
148
+ - **Priority:** Normal
149
+ - **Type:** Regression
150
+ - **Tags:** sector7, teams, members
151
+
152
+ ```gherkin:en
153
+ Scenario: Display member count for each team
154
+
155
+ Given I am logged in as Superadmin
156
+ When I visit /admin/teams
157
+ Then each team row should display member count
158
+ ```
159
+
160
+ ```gherkin:es
161
+ Scenario: Mostrar conteo de miembros de cada team
162
+
163
+ Given estoy logueado como Superadmin
164
+ When visito /admin/teams
165
+ Then cada fila de team deberia mostrar el conteo de miembros
166
+ ```
167
+
168
+ ### Expected Results
169
+ - Member count visible
170
+ - Count reflects actual members
171
+
172
+ ---
173
+
174
+ ## @test ADMIN-TEAMS-006: Navigate Back to Dashboard
175
+
176
+ ### Metadata
177
+ - **Priority:** Normal
178
+ - **Type:** Regression
179
+ - **Tags:** sector7, navigation
180
+
181
+ ```gherkin:en
182
+ Scenario: Navigate back to Admin Panel dashboard
183
+
184
+ Given I am logged in as Superadmin
185
+ And I am on /admin/teams
186
+ When I click on the dashboard nav item
187
+ Then I should be on /admin
188
+ And the dashboard container should be visible
189
+ ```
190
+
191
+ ```gherkin:es
192
+ Scenario: Navegar de vuelta al dashboard de Admin Panel
193
+
194
+ Given estoy logueado como Superadmin
195
+ And estoy en /admin/teams
196
+ When hago click en el nav item de dashboard
197
+ Then deberia estar en /admin
198
+ And el contenedor del dashboard deberia estar visible
199
+ ```
200
+
201
+ ### Expected Results
202
+ - Navigation works
203
+ - Dashboard loads
204
+
205
+ ---
206
+
207
+ ## @test ADMIN-TEAMS-007: Team Plan Display
208
+
209
+ ### Metadata
210
+ - **Priority:** Normal
211
+ - **Type:** Regression
212
+ - **Tags:** sector7, teams, billing
213
+
214
+ ```gherkin:en
215
+ Scenario: Display billing plan for each team
216
+
217
+ Given I am logged in as Superadmin
218
+ When I visit /admin/teams
219
+ Then each team should display their billing plan (Free, Starter, Pro, Business)
220
+ ```
221
+
222
+ ```gherkin:es
223
+ Scenario: Mostrar plan de facturacion de cada team
224
+
225
+ Given estoy logueado como Superadmin
226
+ When visito /admin/teams
227
+ Then cada team deberia mostrar su plan de facturacion (Free, Starter, Pro, Business)
228
+ ```
229
+
230
+ ### Expected Results
231
+ - Plan visible for each team
232
+ - Plan reflects actual subscription
233
+
234
+ ---
235
+
236
+ ## UI Elements
237
+
238
+ | Element | Selector | Description |
239
+ |---------|----------|-------------|
240
+ | Container | `[data-cy="sector7-teams-container"]` | Teams page container |
241
+ | Teams List | `[data-cy="sector7-teams-list"]` | List/table of teams |
242
+ | Team Row | `[data-cy="sector7-team-row-{id}"]` | Individual team row |
243
+ | Team Details | `[data-cy="sector7-team-details"]` | Team details view |
244
+ | Search | `[data-cy="sector7-teams-search"]` | Search input |
245
+ | Member Count | `[data-cy="team-member-count"]` | Member count display |
246
+ | Team Plan | `[data-cy="team-plan-{planName}"]` | Plan indicator |
247
+ | Nav Dashboard | `[data-cy="sector7-nav-dashboard"]` | Dashboard nav item |
248
+
249
+ ---
250
+
251
+ ## Summary
252
+
253
+ | Test ID | Block | Description | Tags |
254
+ |---------|-------|-------------|------|
255
+ | ADMIN-TEAMS-001 | Access | Teams list access | `@smoke` |
256
+ | ADMIN-TEAMS-002 | Display | Teams list format | `@smoke` |
257
+ | ADMIN-TEAMS-003 | Details | View team details | |
258
+ | ADMIN-TEAMS-004 | Search | Filter by search | |
259
+ | ADMIN-TEAMS-005 | Display | Member count | |
260
+ | ADMIN-TEAMS-006 | Navigation | Back to dashboard | |
261
+ | ADMIN-TEAMS-007 | Display | Billing plan | |
@@ -0,0 +1,177 @@
1
+ /// <reference types="cypress" />
2
+
3
+ /**
4
+ * Superadmin All Teams Management Tests
5
+ *
6
+ * Tests the Sector7 all teams management page:
7
+ * - Teams list access and display
8
+ * - Team details view
9
+ * - Team filtering and search
10
+ * - Cross-team navigation
11
+ *
12
+ * Tags: @uat, @feat-superadmin, @superadmin, @teams
13
+ */
14
+
15
+ import * as allure from 'allure-cypress'
16
+
17
+ import { loginAsDefaultSuperadmin } from '../../src/session-helpers'
18
+ import { SuperadminPOM } from '../../src/features/SuperadminPOM'
19
+
20
+ describe('Sector7 - All Teams Management', {
21
+ tags: ['@uat', '@feat-superadmin', '@superadmin', '@teams']
22
+ }, () => {
23
+ const superadmin = SuperadminPOM.create()
24
+
25
+ beforeEach(() => {
26
+ allure.epic('Admin')
27
+ allure.feature('Teams Management')
28
+ allure.story('All Teams')
29
+ loginAsDefaultSuperadmin()
30
+ })
31
+
32
+ describe('ADMIN-TEAMS-001: Teams List Access', { tags: '@smoke' }, () => {
33
+ it('should access all teams list', { tags: '@smoke' }, () => {
34
+ allure.severity('critical')
35
+
36
+ // 1. Visit Sector7 Teams
37
+ superadmin.visitTeams()
38
+
39
+ // 2. Validate teams page
40
+ cy.url().should('include', '/superadmin/teams')
41
+ cy.contains('Team Management').should('be.visible')
42
+ superadmin.assertTeamsVisible()
43
+
44
+ cy.log('✅ Teams list accessible')
45
+ })
46
+ })
47
+
48
+ describe('ADMIN-TEAMS-002: Teams List Display', { tags: '@smoke' }, () => {
49
+ it('should display teams in a list or table', { tags: '@smoke' }, () => {
50
+ allure.severity('critical')
51
+
52
+ // 1. Visit Sector7 Teams
53
+ superadmin.visitTeams()
54
+
55
+ // 2. Validate teams list/table exists
56
+ cy.get(superadmin.selectors.teamsContainer).then(($container) => {
57
+ // Check for list or table of teams
58
+ const hasTable = $container.find(superadmin.selectors.teamsTable).length > 0
59
+ const hasRows = $container.find('[data-cy^="superadmin-teams-row-"]').length > 0
60
+ if (hasTable || hasRows) {
61
+ cy.log('✅ Teams displayed in list')
62
+ } else {
63
+ cy.log('⚠️ Teams table/list not found')
64
+ }
65
+ })
66
+ })
67
+ })
68
+
69
+ describe('ADMIN-TEAMS-003: View Team Details', () => {
70
+ it('should view individual team details', () => {
71
+ allure.severity('high')
72
+
73
+ // 1. Visit Sector7 Teams
74
+ superadmin.visitTeams()
75
+
76
+ // 2. Find and click first team row
77
+ cy.get('body').then(($body) => {
78
+ if ($body.find('[data-cy^="superadmin-team-row"]').length > 0) {
79
+ cy.get('[data-cy^="superadmin-team-row"]').first().click()
80
+
81
+ // 3. Validate team details view
82
+ cy.url().should('include', '/superadmin/teams/')
83
+
84
+ cy.log('✅ Team details accessible')
85
+ } else {
86
+ cy.log('⚠️ No team rows found to test details view')
87
+ }
88
+ })
89
+ })
90
+ })
91
+
92
+ describe('ADMIN-TEAMS-004: Team Search', () => {
93
+ it('should filter teams by search query', () => {
94
+ allure.severity('high')
95
+
96
+ // 1. Visit Sector7 Teams
97
+ superadmin.visitTeams()
98
+
99
+ // 2. Check if search exists
100
+ cy.get('body').then(($body) => {
101
+ if ($body.find(superadmin.selectors.teamsSearch).length > 0) {
102
+ superadmin.searchTeams('Test')
103
+
104
+ // 3. Wait for filter to apply
105
+ cy.wait(500)
106
+
107
+ cy.log('✅ Team search functional')
108
+ } else {
109
+ cy.log('⚠️ Search not implemented yet')
110
+ }
111
+ })
112
+ })
113
+ })
114
+
115
+ describe('ADMIN-TEAMS-005: Team Member Count', () => {
116
+ it('should display member count for each team', () => {
117
+ allure.severity('normal')
118
+
119
+ // 1. Visit Sector7 Teams
120
+ superadmin.visitTeams()
121
+
122
+ // 2. Check for member count display
123
+ cy.get(superadmin.selectors.teamsContainer).within(() => {
124
+ cy.get('[data-cy^="superadmin-team-row"]').first().then(($team) => {
125
+ // Check for member count indicator
126
+ if ($team.find('[data-cy="team-member-count"]').length > 0) {
127
+ cy.wrap($team).find('[data-cy="team-member-count"]').should('be.visible')
128
+ cy.log('✅ Member count displayed')
129
+ } else {
130
+ cy.log('⚠️ Member count not displayed in list view')
131
+ }
132
+ })
133
+ })
134
+ })
135
+ })
136
+
137
+ describe('ADMIN-TEAMS-006: Navigate Back to Dashboard', () => {
138
+ it('should navigate back to Sector7 dashboard', () => {
139
+ allure.severity('normal')
140
+
141
+ // 1. Visit Sector7 Teams
142
+ superadmin.visitTeams()
143
+
144
+ // 2. Click on dashboard nav
145
+ superadmin.clickNavDashboard()
146
+
147
+ // 3. Validate back at dashboard
148
+ cy.url().should('match', /\/superadmin\/?$/)
149
+ superadmin.assertDashboardVisible()
150
+
151
+ cy.log('✅ Navigation to dashboard works')
152
+ })
153
+ })
154
+
155
+ describe('ADMIN-TEAMS-007: Team Plan Display', () => {
156
+ it('should display billing plan for each team', () => {
157
+ allure.severity('normal')
158
+
159
+ // 1. Visit Sector7 Teams
160
+ superadmin.visitTeams()
161
+
162
+ // 2. Check for plan indicator
163
+ cy.get(superadmin.selectors.teamsContainer).then(($container) => {
164
+ if ($container.find('[data-cy^="team-plan-"]').length > 0) {
165
+ cy.get('[data-cy^="team-plan-"]').first().should('be.visible')
166
+ cy.log('✅ Team plan displayed')
167
+ } else {
168
+ cy.log('⚠️ Team plan not displayed in list view')
169
+ }
170
+ })
171
+ })
172
+ })
173
+
174
+ after(() => {
175
+ cy.log('✅ Sector7 all teams tests completed')
176
+ })
177
+ })