@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.
- package/package.json +8 -4
- package/templates/(public)/page.tsx +1 -1
- package/tests/cypress/e2e/_devtools/access.bdd.md +262 -0
- package/tests/cypress/e2e/_devtools/access.cy.ts +171 -0
- package/tests/cypress/e2e/_devtools/navigation.bdd.md +261 -0
- package/tests/cypress/e2e/_devtools/navigation.cy.ts +157 -0
- package/tests/cypress/e2e/_devtools/pages.bdd.md +303 -0
- package/tests/cypress/e2e/_devtools/pages.cy.ts +184 -0
- package/tests/cypress/e2e/_docs/README.md +215 -0
- package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin-teams.narration.json +155 -0
- package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin.cy.ts +390 -0
- package/tests/cypress/e2e/_docs/tutorials/teams-system.doc.cy.ts +349 -0
- package/tests/cypress/e2e/_docs/tutorials/teams-system.narration.json +165 -0
- package/tests/cypress/e2e/_selectors/auth.cy.ts +306 -0
- package/tests/cypress/e2e/_selectors/billing.cy.ts +89 -0
- package/tests/cypress/e2e/_selectors/dashboard-mobile.cy.ts +113 -0
- package/tests/cypress/e2e/_selectors/dashboard-navigation.cy.ts +89 -0
- package/tests/cypress/e2e/_selectors/dashboard-sidebar.cy.ts +60 -0
- package/tests/cypress/e2e/_selectors/dashboard-topnav.cy.ts +146 -0
- package/tests/cypress/e2e/_selectors/devtools.cy.ts +210 -0
- package/tests/cypress/e2e/_selectors/global-search.cy.ts +88 -0
- package/tests/cypress/e2e/_selectors/pages-editor.cy.ts +179 -0
- package/tests/cypress/e2e/_selectors/posts-editor.cy.ts +282 -0
- package/tests/cypress/e2e/_selectors/public.cy.ts +112 -0
- package/tests/cypress/e2e/_selectors/settings-api-keys.cy.ts +228 -0
- package/tests/cypress/e2e/_selectors/settings-billing.cy.ts +105 -0
- package/tests/cypress/e2e/_selectors/settings-layout.cy.ts +119 -0
- package/tests/cypress/e2e/_selectors/settings-password.cy.ts +71 -0
- package/tests/cypress/e2e/_selectors/settings-profile.cy.ts +82 -0
- package/tests/cypress/e2e/_selectors/settings-teams.cy.ts +68 -0
- package/tests/cypress/e2e/_selectors/superadmin.cy.ts +185 -0
- package/tests/cypress/e2e/_selectors/tasks.cy.ts +242 -0
- package/tests/cypress/e2e/_selectors/taxonomies.cy.ts +126 -0
- package/tests/cypress/e2e/_selectors/teams.cy.ts +142 -0
- package/tests/cypress/e2e/_superadmin/all-teams.bdd.md +261 -0
- package/tests/cypress/e2e/_superadmin/all-teams.cy.ts +177 -0
- package/tests/cypress/e2e/_superadmin/all-users.bdd.md +406 -0
- package/tests/cypress/e2e/_superadmin/all-users.cy.ts +294 -0
- package/tests/cypress/e2e/_superadmin/dashboard.bdd.md +235 -0
- package/tests/cypress/e2e/_superadmin/dashboard.cy.ts +149 -0
- package/tests/cypress/e2e/_superadmin/subscriptions-overview.bdd.md +290 -0
- package/tests/cypress/e2e/_superadmin/subscriptions-overview.cy.ts +194 -0
- package/tests/cypress/e2e/ai/ai-usage.cy.ts +209 -0
- package/tests/cypress/e2e/ai/chat-api.cy.ts +107 -0
- package/tests/cypress/e2e/ai/guardrails.cy.ts +332 -0
- package/tests/cypress/e2e/api/billing/BillingAPIController.js +319 -0
- package/tests/cypress/e2e/api/billing/check-action.cy.ts +326 -0
- package/tests/cypress/e2e/api/billing/checkout.cy.ts +358 -0
- package/tests/cypress/e2e/api/billing/lifecycle.cy.ts +423 -0
- package/tests/cypress/e2e/api/billing/plans/README.md +345 -0
- package/tests/cypress/e2e/api/billing/plans/business.cy.ts +412 -0
- package/tests/cypress/e2e/api/billing/plans/downgrade.cy.ts +510 -0
- package/tests/cypress/e2e/api/billing/plans/fixtures/billing-plans.json +163 -0
- package/tests/cypress/e2e/api/billing/plans/free.cy.ts +500 -0
- package/tests/cypress/e2e/api/billing/plans/pro.cy.ts +497 -0
- package/tests/cypress/e2e/api/billing/plans/starter.cy.ts +342 -0
- package/tests/cypress/e2e/api/billing/portal.cy.ts +313 -0
- package/tests/cypress/e2e/api/devtools/registries.bdd.md +300 -0
- package/tests/cypress/e2e/api/devtools/registries.cy.ts +368 -0
- package/tests/cypress/e2e/api/entities/blocks-scope.cy.ts +396 -0
- package/tests/cypress/e2e/api/entities/customers-crud.cy.ts +648 -0
- package/tests/cypress/e2e/api/entities/customers-metas.cy.ts +839 -0
- package/tests/cypress/e2e/api/entities/pages-crud.cy.ts +425 -0
- package/tests/cypress/e2e/api/entities/pages-status.cy.ts +335 -0
- package/tests/cypress/e2e/api/entities/post-categories-crud.cy.ts +610 -0
- package/tests/cypress/e2e/api/entities/posts-crud.cy.ts +709 -0
- package/tests/cypress/e2e/api/entities/posts-status.cy.ts +396 -0
- package/tests/cypress/e2e/api/entities/tasks-crud.cy.ts +602 -0
- package/tests/cypress/e2e/api/entities/tasks-metas.cy.ts +878 -0
- package/tests/cypress/e2e/api/entities/users-crud.cy.ts +469 -0
- package/tests/cypress/e2e/api/entities/users-metas.cy.ts +913 -0
- package/tests/cypress/e2e/api/entities/users-security.cy.ts +375 -0
- package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.bdd.md +375 -0
- package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.cy.ts +346 -0
- package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.bdd.md +451 -0
- package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.cy.ts +447 -0
- package/tests/cypress/e2e/api/scheduled-actions/scheduling.bdd.md +649 -0
- package/tests/cypress/e2e/api/scheduled-actions/scheduling.cy.ts +333 -0
- package/tests/cypress/e2e/api/settings/api-keys.crud.cy.ts +923 -0
- package/tests/cypress/e2e/uat/auth/app-roles/developer-login.bdd.md +231 -0
- package/tests/cypress/e2e/uat/auth/app-roles/developer-login.cy.ts +144 -0
- package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.bdd.md +118 -0
- package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.cy.ts +84 -0
- package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.bdd.md +288 -0
- package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.cy.ts +188 -0
- package/tests/cypress/e2e/uat/auth/login-logout.bdd.md +160 -0
- package/tests/cypress/e2e/uat/auth/login-logout.cy.ts +116 -0
- package/tests/cypress/e2e/uat/auth/password-reset.bdd.md +289 -0
- package/tests/cypress/e2e/uat/auth/password-reset.cy.ts +200 -0
- package/tests/cypress/e2e/uat/auth/team-roles/admin-login.bdd.md +225 -0
- package/tests/cypress/e2e/uat/auth/team-roles/admin-login.cy.ts +148 -0
- package/tests/cypress/e2e/uat/auth/team-roles/member-login.bdd.md +251 -0
- package/tests/cypress/e2e/uat/auth/team-roles/member-login.cy.ts +163 -0
- package/tests/cypress/e2e/uat/auth/team-roles/owner-login.bdd.md +231 -0
- package/tests/cypress/e2e/uat/auth/team-roles/owner-login.cy.ts +141 -0
- package/tests/cypress/e2e/uat/billing/extended.bdd.md +273 -0
- package/tests/cypress/e2e/uat/billing/extended.cy.ts +209 -0
- package/tests/cypress/e2e/uat/billing/feature-gates.bdd.md +407 -0
- package/tests/cypress/e2e/uat/billing/feature-gates.cy.ts +307 -0
- package/tests/cypress/e2e/uat/billing/page.bdd.md +329 -0
- package/tests/cypress/e2e/uat/billing/page.cy.ts +250 -0
- package/tests/cypress/e2e/uat/billing/status.bdd.md +190 -0
- package/tests/cypress/e2e/uat/billing/status.cy.ts +145 -0
- package/tests/cypress/e2e/uat/billing/team-switch.bdd.md +156 -0
- package/tests/cypress/e2e/uat/billing/team-switch.cy.ts +122 -0
- package/tests/cypress/e2e/uat/billing/usage.bdd.md +218 -0
- package/tests/cypress/e2e/uat/billing/usage.cy.ts +176 -0
- package/tests/cypress/e2e/uat/blocks/hero.bdd.md +124 -0
- package/tests/cypress/e2e/uat/blocks/hero.cy.ts +56 -0
- package/tests/cypress/e2e/uat/devtools/api-tester.cy.ts +390 -0
- package/tests/cypress/e2e/uat/entities/customers/member.bdd.md +275 -0
- package/tests/cypress/e2e/uat/entities/customers/member.cy.ts +122 -0
- package/tests/cypress/e2e/uat/entities/customers/owner.bdd.md +243 -0
- package/tests/cypress/e2e/uat/entities/customers/owner.cy.ts +165 -0
- package/tests/cypress/e2e/uat/entities/pages/block-crud.bdd.md +476 -0
- package/tests/cypress/e2e/uat/entities/pages/block-crud.cy.ts +486 -0
- package/tests/cypress/e2e/uat/entities/pages/block-editor.bdd.md +460 -0
- package/tests/cypress/e2e/uat/entities/pages/block-editor.cy.ts +301 -0
- package/tests/cypress/e2e/uat/entities/pages/list.bdd.md +432 -0
- package/tests/cypress/e2e/uat/entities/pages/list.cy.ts +273 -0
- package/tests/cypress/e2e/uat/entities/pages/public-rendering.bdd.md +696 -0
- package/tests/cypress/e2e/uat/entities/pages/public-rendering.cy.ts +340 -0
- package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.bdd.md +161 -0
- package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.cy.ts +104 -0
- package/tests/cypress/e2e/uat/entities/posts/categories.bdd.md +375 -0
- package/tests/cypress/e2e/uat/entities/posts/categories.cy.ts +241 -0
- package/tests/cypress/e2e/uat/entities/posts/editor.bdd.md +429 -0
- package/tests/cypress/e2e/uat/entities/posts/editor.cy.ts +257 -0
- package/tests/cypress/e2e/uat/entities/posts/list.bdd.md +340 -0
- package/tests/cypress/e2e/uat/entities/posts/list.cy.ts +177 -0
- package/tests/cypress/e2e/uat/entities/posts/public.bdd.md +614 -0
- package/tests/cypress/e2e/uat/entities/posts/public.cy.ts +249 -0
- package/tests/cypress/e2e/uat/entities/tasks/member.bdd.md +222 -0
- package/tests/cypress/e2e/uat/entities/tasks/member.cy.ts +165 -0
- package/tests/cypress/e2e/uat/entities/tasks/owner.bdd.md +419 -0
- package/tests/cypress/e2e/uat/entities/tasks/owner.cy.ts +191 -0
- package/tests/cypress/e2e/uat/roles/editor-role.bdd.md +552 -0
- package/tests/cypress/e2e/uat/roles/editor-role.cy.ts +210 -0
- package/tests/cypress/e2e/uat/roles/member-restrictions.bdd.md +450 -0
- package/tests/cypress/e2e/uat/roles/member-restrictions.cy.ts +189 -0
- package/tests/cypress/e2e/uat/roles/owner-full-crud.bdd.md +530 -0
- package/tests/cypress/e2e/uat/roles/owner-full-crud.cy.ts +247 -0
- package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.bdd.md +736 -0
- package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.cy.ts +740 -0
- package/tests/cypress/e2e/uat/teams/roles-matrix.bdd.md +553 -0
- package/tests/cypress/e2e/uat/teams/roles-matrix.cy.ts +185 -0
- package/tests/cypress/e2e/uat/teams/switcher.bdd.md +1151 -0
- package/tests/cypress/e2e/uat/teams/switcher.cy.ts +497 -0
- package/tests/cypress/e2e/uat/teams/team-switcher.md +198 -0
- package/tests/cypress/fixtures/blocks.json +218 -0
- package/tests/cypress/fixtures/entities.json +78 -0
- package/tests/cypress/fixtures/page-builder.json +21 -0
- package/tests/cypress/src/components/CategoriesPOM.ts +382 -0
- package/tests/cypress/src/components/CustomersPOM.ts +439 -0
- package/tests/cypress/src/components/DevKeyringPOM.ts +160 -0
- package/tests/cypress/src/components/EntityForm.ts +375 -0
- package/tests/cypress/src/components/EntityList.ts +389 -0
- package/tests/cypress/src/components/PageBuilderPOM.ts +710 -0
- package/tests/cypress/src/components/PostEditorPOM.ts +370 -0
- package/tests/cypress/src/components/PostsListPOM.ts +223 -0
- package/tests/cypress/src/components/PublicPagePOM.ts +447 -0
- package/tests/cypress/src/components/PublicPostPOM.ts +146 -0
- package/tests/cypress/src/components/TasksPOM.ts +272 -0
- package/tests/cypress/src/components/TeamSwitcherPOM.ts +450 -0
- package/tests/cypress/src/components/index.ts +21 -0
- package/tests/cypress/src/controllers/ApiKeysAPIController.js +178 -0
- package/tests/cypress/src/controllers/BaseAPIController.js +317 -0
- package/tests/cypress/src/controllers/CustomerAPIController.js +251 -0
- package/tests/cypress/src/controllers/PagesAPIController.js +226 -0
- package/tests/cypress/src/controllers/PostsAPIController.js +250 -0
- package/tests/cypress/src/controllers/TaskAPIController.js +240 -0
- package/tests/cypress/src/controllers/UsersAPIController.js +242 -0
- package/tests/cypress/src/controllers/index.js +25 -0
- package/tests/cypress/src/core/AuthPOM.ts +450 -0
- package/tests/cypress/src/core/BasePOM.ts +86 -0
- package/tests/cypress/src/core/BlockEditorBasePOM.ts +576 -0
- package/tests/cypress/src/core/DashboardEntityPOM.ts +692 -0
- package/tests/cypress/src/core/index.ts +14 -0
- package/tests/cypress/src/entities/CustomersPOM.ts +172 -0
- package/tests/cypress/src/entities/PagesPOM.ts +137 -0
- package/tests/cypress/src/entities/PostsPOM.ts +137 -0
- package/tests/cypress/src/entities/TasksPOM.ts +176 -0
- package/tests/cypress/src/entities/index.ts +14 -0
- package/tests/cypress/src/features/BillingPOM.ts +385 -0
- package/tests/cypress/src/features/DashboardPOM.ts +245 -0
- package/tests/cypress/src/features/DevtoolsPOM.ts +739 -0
- package/tests/cypress/src/features/PageBuilderPOM.ts +263 -0
- package/tests/cypress/src/features/PostEditorPOM.ts +313 -0
- package/tests/cypress/src/features/ScheduledActionsPOM.ts +463 -0
- package/tests/cypress/src/features/SettingsPOM.ts +362 -0
- package/tests/cypress/src/features/SuperadminPOM.ts +331 -0
- package/tests/cypress/src/features/SuperadminTeamRolesPOM.ts +285 -0
- package/tests/cypress/src/features/index.ts +28 -0
- package/tests/cypress/src/helpers/ApiInterceptor.ts +177 -0
- package/tests/cypress/src/index.ts +101 -0
- package/tests/cypress/src/pages/dashboard/Dashboard.js +677 -0
- package/tests/cypress/src/pages/dashboard/DashboardPage.js +43 -0
- package/tests/cypress/src/pages/dashboard/DashboardStats.js +546 -0
- package/tests/cypress/src/pages/dashboard/index.js +6 -0
- package/tests/cypress/src/pages/index.js +5 -0
- package/tests/cypress/src/pages/public/FeaturesPage.js +28 -0
- package/tests/cypress/src/pages/public/LandingPage.js +69 -0
- package/tests/cypress/src/pages/public/PricingPage.js +33 -0
- package/tests/cypress/src/pages/public/index.js +6 -0
- package/tests/cypress/src/selectors.ts +46 -0
- package/tests/cypress/src/session-helpers.ts +500 -0
- package/tests/cypress/support/doc-commands.ts +260 -0
- package/tests/cypress.config.ts +150 -0
- package/tests/jest/components/post-header.test.tsx +377 -0
- package/tests/jest/config/role-config.test.ts +529 -0
- package/tests/jest/jest.config.ts +81 -0
- package/tests/jest/langchain/COVERAGE.md +372 -0
- package/tests/jest/langchain/guardrails.test.ts +465 -0
- package/tests/jest/langchain/streaming.test.ts +367 -0
- package/tests/jest/langchain/token-tracker.test.ts +455 -0
- package/tests/jest/langchain/tracer-callbacks.test.ts +881 -0
- package/tests/jest/langchain/tracer.test.ts +823 -0
- package/tests/jest/user-roles/role-helpers.test.ts +432 -0
- package/tests/jest/validation/categories.test.ts +429 -0
- package/tests/jest/validation/posts.test.ts +546 -0
- package/tests/tsconfig.json +15 -0
- 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
|
+
})
|