@nextsparkjs/theme-default 0.1.0-beta.31 → 0.1.0-beta.35
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/lib/selectors.ts +5 -1
- package/package.json +2 -2
- package/tests/cypress/e2e/{_devtools → _utils/devtools}/access.cy.ts +3 -3
- package/tests/cypress/e2e/{_devtools → _utils/devtools}/navigation.cy.ts +3 -3
- package/tests/cypress/e2e/{_devtools → _utils/devtools}/pages.cy.ts +3 -3
- package/tests/cypress/e2e/_utils/selectors/auth.bdd.md +354 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/auth.cy.ts +39 -35
- package/tests/cypress/e2e/_utils/selectors/billing.bdd.md +276 -0
- package/tests/cypress/e2e/_utils/selectors/billing.cy.ts +182 -0
- package/tests/cypress/e2e/_utils/selectors/dashboard-mobile.bdd.md +205 -0
- package/tests/cypress/e2e/_utils/selectors/dashboard-mobile.cy.ts +137 -0
- package/tests/cypress/e2e/_utils/selectors/dashboard-navigation.bdd.md +147 -0
- package/tests/cypress/e2e/_utils/selectors/dashboard-navigation.cy.ts +114 -0
- package/tests/cypress/e2e/_utils/selectors/dashboard-sidebar.bdd.md +111 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/dashboard-sidebar.cy.ts +35 -6
- package/tests/cypress/e2e/_utils/selectors/dashboard-topnav.bdd.md +200 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/dashboard-topnav.cy.ts +30 -43
- package/tests/cypress/e2e/_utils/selectors/devtools.bdd.md +306 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/devtools.cy.ts +77 -14
- package/tests/cypress/e2e/_utils/selectors/global-search.bdd.md +115 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/global-search.cy.ts +15 -10
- package/tests/cypress/e2e/_utils/selectors/pages-editor.bdd.md +207 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/pages-editor.cy.ts +44 -12
- package/tests/cypress/e2e/_utils/selectors/posts-editor.bdd.md +184 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/posts-editor.cy.ts +107 -39
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/public.cy.ts +1 -1
- package/tests/cypress/e2e/_utils/selectors/settings-api-keys.bdd.md +266 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/settings-api-keys.cy.ts +30 -25
- package/tests/cypress/e2e/_utils/selectors/settings-billing.bdd.md +78 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/settings-billing.cy.ts +10 -7
- package/tests/cypress/e2e/_utils/selectors/settings-layout.bdd.md +138 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/settings-layout.cy.ts +12 -8
- package/tests/cypress/e2e/_utils/selectors/settings-password.bdd.md +82 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/settings-password.cy.ts +10 -7
- package/tests/cypress/e2e/_utils/selectors/settings-profile.bdd.md +77 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/settings-profile.cy.ts +15 -18
- package/tests/cypress/e2e/_utils/selectors/settings-teams.bdd.md +130 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/settings-teams.cy.ts +36 -18
- package/tests/cypress/e2e/_utils/selectors/superadmin.bdd.md +261 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/superadmin.cy.ts +23 -15
- package/tests/cypress/e2e/_utils/selectors/tasks.bdd.md +353 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/tasks.cy.ts +11 -10
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/taxonomies.cy.ts +1 -1
- package/tests/cypress/e2e/_utils/selectors/teams.bdd.md +278 -0
- package/tests/cypress/e2e/{_selectors → _utils/selectors}/teams.cy.ts +90 -37
- package/tests/cypress/e2e/{_superadmin → _utils/superadmin}/all-teams.cy.ts +4 -4
- package/tests/cypress/e2e/{_superadmin → _utils/superadmin}/all-users.cy.ts +4 -4
- package/tests/cypress/e2e/{_superadmin → _utils/superadmin}/dashboard.cy.ts +4 -4
- package/tests/cypress/e2e/{_superadmin → _utils/superadmin}/subscriptions-overview.cy.ts +4 -4
- package/tests/cypress/e2e/api/{entities → _core/users}/users-security.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{auth → _core/auth}/login-logout.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{auth → _core/auth}/password-reset.cy.ts +1 -1
- package/tests/cypress/e2e/uat/{billing → _core/billing}/extended.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{billing → _core/billing}/feature-gates.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{billing → _core/billing}/page.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{billing → _core/billing}/status.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{billing → _core/billing}/team-switch.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{billing → _core/billing}/usage.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{devtools → _core/devtools}/api-tester.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{scheduled-actions → _core/scheduled-actions}/devtools-ui.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{teams → _core/teams}/roles-matrix.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{teams → _core/teams}/switcher.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{roles → features/roles}/editor-role.cy.ts +2 -2
- package/tests/cypress/e2e/uat/{roles → features/roles}/member-restrictions.cy.ts +3 -3
- package/tests/cypress/e2e/uat/{roles → features/roles}/owner-full-crud.cy.ts +2 -2
- package/tests/cypress/src/core/DashboardEntityPOM.ts +2 -2
- package/tests/cypress/src/features/DashboardPOM.ts +2 -2
- package/tests/cypress/src/features/DevtoolsPOM.ts +12 -1
- package/tests/cypress/src/session-helpers.ts +35 -17
- package/tests/cypress/support/e2e.ts +2 -1
- package/tests/cypress.config.ts +29 -10
- package/tests/tsconfig.json +13 -7
- package/tests/cypress/e2e/_selectors/billing.cy.ts +0 -89
- package/tests/cypress/e2e/_selectors/dashboard-mobile.cy.ts +0 -113
- package/tests/cypress/e2e/_selectors/dashboard-navigation.cy.ts +0 -89
- /package/tests/cypress/e2e/{_devtools → _utils/devtools}/access.bdd.md +0 -0
- /package/tests/cypress/e2e/{_devtools → _utils/devtools}/navigation.bdd.md +0 -0
- /package/tests/cypress/e2e/{_devtools → _utils/devtools}/pages.bdd.md +0 -0
- /package/tests/cypress/e2e/{_docs → _utils/docs}/README.md +0 -0
- /package/tests/cypress/e2e/{_docs → _utils/docs}/tutorials/sector7-superadmin-teams.narration.json +0 -0
- /package/tests/cypress/e2e/{_docs → _utils/docs}/tutorials/sector7-superadmin.cy.ts +0 -0
- /package/tests/cypress/e2e/{_docs → _utils/docs}/tutorials/teams-system.doc.cy.ts +0 -0
- /package/tests/cypress/e2e/{_docs → _utils/docs}/tutorials/teams-system.narration.json +0 -0
- /package/tests/cypress/e2e/{_superadmin → _utils/superadmin}/all-teams.bdd.md +0 -0
- /package/tests/cypress/e2e/{_superadmin → _utils/superadmin}/all-users.bdd.md +0 -0
- /package/tests/cypress/e2e/{_superadmin → _utils/superadmin}/dashboard.bdd.md +0 -0
- /package/tests/cypress/e2e/{_superadmin → _utils/superadmin}/subscriptions-overview.bdd.md +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/BillingAPIController.js +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/check-action.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/checkout.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/lifecycle.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/plans/README.md +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/plans/business.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/plans/downgrade.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/plans/fixtures/billing-plans.json +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/plans/free.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/plans/pro.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/plans/starter.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{billing → _core/billing}/portal.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{devtools → _core/devtools}/registries.bdd.md +0 -0
- /package/tests/cypress/e2e/api/{devtools → _core/devtools}/registries.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{scheduled-actions → _core/scheduled-actions}/cron-endpoint.bdd.md +0 -0
- /package/tests/cypress/e2e/api/{scheduled-actions → _core/scheduled-actions}/cron-endpoint.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{scheduled-actions → _core/scheduled-actions}/devtools-endpoint.bdd.md +0 -0
- /package/tests/cypress/e2e/api/{scheduled-actions → _core/scheduled-actions}/devtools-endpoint.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{scheduled-actions → _core/scheduled-actions}/scheduling.bdd.md +0 -0
- /package/tests/cypress/e2e/api/{scheduled-actions → _core/scheduled-actions}/scheduling.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{settings → _core/settings}/api-keys.crud.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{entities → _core/users}/users-crud.cy.ts +0 -0
- /package/tests/cypress/e2e/api/{entities → _core/users}/users-metas.cy.ts +0 -0
- /package/tests/cypress/e2e/api/entities/{customers-crud.cy.ts → customers/customers-crud.cy.ts} +0 -0
- /package/tests/cypress/e2e/api/entities/{customers-metas.cy.ts → customers/customers-metas.cy.ts} +0 -0
- /package/tests/cypress/e2e/api/entities/{blocks-scope.cy.ts → pages/blocks-scope.cy.ts} +0 -0
- /package/tests/cypress/e2e/api/entities/{pages-crud.cy.ts → pages/pages-crud.cy.ts} +0 -0
- /package/tests/cypress/e2e/api/entities/{pages-status.cy.ts → pages/pages-status.cy.ts} +0 -0
- /package/tests/cypress/e2e/api/entities/{post-categories-crud.cy.ts → posts/post-categories-crud.cy.ts} +0 -0
- /package/tests/cypress/e2e/api/entities/{posts-crud.cy.ts → posts/posts-crud.cy.ts} +0 -0
- /package/tests/cypress/e2e/api/entities/{posts-status.cy.ts → posts/posts-status.cy.ts} +0 -0
- /package/tests/cypress/e2e/api/entities/{tasks-crud.cy.ts → tasks/tasks-crud.cy.ts} +0 -0
- /package/tests/cypress/e2e/api/entities/{tasks-metas.cy.ts → tasks/tasks-metas.cy.ts} +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/app-roles/developer-login.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/app-roles/developer-login.cy.ts +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/app-roles/superadmin-login.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/app-roles/superadmin-login.cy.ts +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/custom-roles/editor-login.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/custom-roles/editor-login.cy.ts +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/login-logout.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/password-reset.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/team-roles/admin-login.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/team-roles/admin-login.cy.ts +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/team-roles/member-login.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/team-roles/member-login.cy.ts +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/team-roles/owner-login.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{auth → _core/auth}/team-roles/owner-login.cy.ts +0 -0
- /package/tests/cypress/e2e/uat/{billing → _core/billing}/extended.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{billing → _core/billing}/feature-gates.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{billing → _core/billing}/page.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{billing → _core/billing}/status.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{billing → _core/billing}/team-switch.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{billing → _core/billing}/usage.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{blocks → _core/blocks}/hero.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{blocks → _core/blocks}/hero.cy.ts +0 -0
- /package/tests/cypress/e2e/uat/{scheduled-actions → _core/scheduled-actions}/devtools-ui.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{teams → _core/teams}/roles-matrix.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{teams → _core/teams}/switcher.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{teams → _core/teams}/team-switcher.md +0 -0
- /package/tests/cypress/e2e/uat/{roles → features/roles}/editor-role.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{roles → features/roles}/member-restrictions.bdd.md +0 -0
- /package/tests/cypress/e2e/uat/{roles → features/roles}/owner-full-crud.bdd.md +0 -0
|
@@ -14,33 +14,31 @@
|
|
|
14
14
|
* - Assert elements exist in DOM (no form submissions)
|
|
15
15
|
* - Fast execution (< 30 seconds per describe block)
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
* -
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* Test IDs:
|
|
18
|
+
* - SEL_PROF_001: Profile Page Selectors
|
|
19
|
+
*
|
|
20
|
+
* NOTE: Only 2 selectors are NOT implemented (feature doesn't exist):
|
|
21
|
+
* - profile-avatar, profile-avatar-upload (avatar feature not in current implementation)
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
import { SettingsPOM } from '
|
|
25
|
-
import {
|
|
24
|
+
import { SettingsPOM } from '../../../src/features/SettingsPOM'
|
|
25
|
+
import { loginAsDefaultDeveloper } from '../../../src/session-helpers'
|
|
26
26
|
|
|
27
|
-
describe('Settings Profile Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
27
|
+
describe('Settings Profile Selectors Validation', { tags: ['@ui-selectors', '@settings'] }, () => {
|
|
28
28
|
const settings = SettingsPOM.create()
|
|
29
29
|
|
|
30
30
|
beforeEach(() => {
|
|
31
|
-
|
|
31
|
+
loginAsDefaultDeveloper()
|
|
32
32
|
settings.visitProfile()
|
|
33
33
|
// Wait for profile page to load - use profile form as indicator
|
|
34
34
|
cy.get(settings.selectors.profileForm, { timeout: 15000 }).should('be.visible')
|
|
35
35
|
})
|
|
36
36
|
|
|
37
37
|
// ============================================
|
|
38
|
-
// PROFILE SELECTORS
|
|
39
|
-
// Currently only 3 are implemented in component
|
|
38
|
+
// SEL_PROF_001: PROFILE PAGE SELECTORS
|
|
40
39
|
// ============================================
|
|
41
|
-
describe('Profile Page Selectors', () => {
|
|
42
|
-
|
|
43
|
-
it.skip('should find profile container (selector mismatch: CORE uses settings-profile, component uses profile-main)', () => {
|
|
40
|
+
describe('SEL_PROF_001: Profile Page Selectors', { tags: '@SEL_PROF_001' }, () => {
|
|
41
|
+
it('should find profile container', () => {
|
|
44
42
|
cy.get(settings.selectors.profileContainer).should('exist')
|
|
45
43
|
})
|
|
46
44
|
|
|
@@ -57,16 +55,15 @@ describe('Settings Profile Selectors Validation', { tags: ['@ui-selectors'] }, (
|
|
|
57
55
|
cy.get(settings.selectors.profileAvatarUpload).should('exist')
|
|
58
56
|
})
|
|
59
57
|
|
|
60
|
-
|
|
61
|
-
it.skip('should find first name input (native input, no data-cy)', () => {
|
|
58
|
+
it('should find first name input', () => {
|
|
62
59
|
cy.get(settings.selectors.profileFirstName).should('exist')
|
|
63
60
|
})
|
|
64
61
|
|
|
65
|
-
it
|
|
62
|
+
it('should find last name input', () => {
|
|
66
63
|
cy.get(settings.selectors.profileLastName).should('exist')
|
|
67
64
|
})
|
|
68
65
|
|
|
69
|
-
it
|
|
66
|
+
it('should find email input', () => {
|
|
70
67
|
cy.get(settings.selectors.profileEmail).should('exist')
|
|
71
68
|
})
|
|
72
69
|
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature: Settings Teams UI Selectors Validation
|
|
3
|
+
priority: high
|
|
4
|
+
tags: [selectors, settings, teams, ui-validation]
|
|
5
|
+
grepTags: [ui-selectors, settings, SEL_STMS_001, SEL_STMS_002]
|
|
6
|
+
coverage: 2
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Settings Teams UI Selectors Validation
|
|
10
|
+
|
|
11
|
+
> Validates that settings teams selectors exist in the DOM. This is a lightweight test that ONLY checks selector presence, not functionality. Runs as Phase 12 sub-gate before functional tests.
|
|
12
|
+
|
|
13
|
+
## @test SEL_STMS_001: Teams Page Selectors
|
|
14
|
+
|
|
15
|
+
### Metadata
|
|
16
|
+
- **Priority:** High
|
|
17
|
+
- **Type:** Selector Validation
|
|
18
|
+
- **Tags:** settings, teams, management
|
|
19
|
+
- **Grep:** `@ui-selectors` `@SEL_STMS_001`
|
|
20
|
+
- **Status:** Active (6 passing, 0 skipped)
|
|
21
|
+
|
|
22
|
+
```gherkin:en
|
|
23
|
+
Scenario: Teams settings page has required selectors
|
|
24
|
+
|
|
25
|
+
Given I am logged in as developer
|
|
26
|
+
And I navigate to the teams settings page
|
|
27
|
+
Then I should find the teams main container
|
|
28
|
+
And I should find the teams header
|
|
29
|
+
And I should find the teams list
|
|
30
|
+
And I should find at least one team item in the list
|
|
31
|
+
And I should find the create team button
|
|
32
|
+
When I click on a team item
|
|
33
|
+
Then I should find the team details section
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```gherkin:es
|
|
37
|
+
Scenario: La pagina de settings de teams tiene los selectores requeridos
|
|
38
|
+
|
|
39
|
+
Given estoy logueado como developer
|
|
40
|
+
And navego a la pagina de settings de teams
|
|
41
|
+
Then deberia encontrar el contenedor principal de teams
|
|
42
|
+
And deberia encontrar el header de teams
|
|
43
|
+
And deberia encontrar la lista de teams
|
|
44
|
+
And deberia encontrar al menos un item de equipo en la lista
|
|
45
|
+
And deberia encontrar el boton de crear equipo
|
|
46
|
+
When hago click en un item de equipo
|
|
47
|
+
Then deberia encontrar la seccion de detalles del equipo
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Expected Results
|
|
51
|
+
- `teams-settings-main` selector exists ✅
|
|
52
|
+
- `teams-settings-header` selector exists ✅
|
|
53
|
+
- `teams-settings-teams-list` selector exists ✅
|
|
54
|
+
- `team-item-{id}` selector exists for team items ✅
|
|
55
|
+
- `teams-settings-team-details` selector exists when team selected ✅
|
|
56
|
+
- `create-team-button` selector exists ✅
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## @test SEL_STMS_002: Create Team Dialog Documentation
|
|
61
|
+
|
|
62
|
+
### Metadata
|
|
63
|
+
- **Priority:** Medium
|
|
64
|
+
- **Type:** Documentation
|
|
65
|
+
- **Tags:** settings, teams, dialog
|
|
66
|
+
- **Grep:** `@ui-selectors` `@SEL_STMS_002`
|
|
67
|
+
- **Status:** Active (1 passing, 0 skipped)
|
|
68
|
+
|
|
69
|
+
```gherkin:en
|
|
70
|
+
Scenario: Create Team Dialog selectors are documented
|
|
71
|
+
|
|
72
|
+
Given the Create Team Dialog can be opened from teams settings
|
|
73
|
+
Then the following selectors are documented:
|
|
74
|
+
| Selector | Value |
|
|
75
|
+
| create-team-dialog | Dialog container |
|
|
76
|
+
| team-name-input | Name input field |
|
|
77
|
+
| team-slug-input | Slug input field |
|
|
78
|
+
| team-description-input | Description input |
|
|
79
|
+
| cancel-create-team | Cancel button |
|
|
80
|
+
| submit-create-team | Submit button |
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```gherkin:es
|
|
84
|
+
Scenario: Los selectores del dialogo de crear equipo estan documentados
|
|
85
|
+
|
|
86
|
+
Given el dialogo de crear equipo puede abrirse desde settings de teams
|
|
87
|
+
Then los siguientes selectores estan documentados:
|
|
88
|
+
| Selector | Valor |
|
|
89
|
+
| create-team-dialog | Contenedor del dialogo |
|
|
90
|
+
| team-name-input | Campo de nombre |
|
|
91
|
+
| team-slug-input | Campo de slug |
|
|
92
|
+
| team-description-input | Campo de descripcion |
|
|
93
|
+
| cancel-create-team | Boton cancelar |
|
|
94
|
+
| submit-create-team | Boton enviar |
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Expected Results
|
|
98
|
+
- Create Team Dialog selectors are documented for reference ✅
|
|
99
|
+
- Actual dialog testing done in teams.cy.ts (SEL_TEAM_003)
|
|
100
|
+
|
|
101
|
+
### Notes
|
|
102
|
+
The Create Team Dialog selectors are shared between:
|
|
103
|
+
- Teams settings page (`/dashboard/settings/teams`)
|
|
104
|
+
- Team switcher create button
|
|
105
|
+
|
|
106
|
+
This test documents the selectors for cross-reference with teams.cy.ts.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Related Components
|
|
111
|
+
|
|
112
|
+
| Component | File | Selectors |
|
|
113
|
+
|-----------|------|-----------|
|
|
114
|
+
| TeamsSettings | `packages/core/templates/app/dashboard/settings/teams/page.tsx` | teams-settings-main, teams-settings-header, teams-settings-teams-list, teams-settings-team-details, team-item-{id} |
|
|
115
|
+
| CreateTeamDialog | `packages/core/src/components/teams/CreateTeamDialog.tsx` | create-team-dialog, cancel-create-team, submit-create-team |
|
|
116
|
+
|
|
117
|
+
## Related POMs
|
|
118
|
+
|
|
119
|
+
| POM | File | Usage |
|
|
120
|
+
|-----|------|-------|
|
|
121
|
+
| SettingsPOM | `themes/default/tests/cypress/src/features/SettingsPOM.ts` | Teams settings page selectors |
|
|
122
|
+
| TeamSwitcherPOM | `themes/default/tests/cypress/src/components/TeamSwitcherPOM.ts` | Create team dialog selectors |
|
|
123
|
+
|
|
124
|
+
## Test Summary
|
|
125
|
+
|
|
126
|
+
| Test ID | Description | Status | Tests |
|
|
127
|
+
|---------|-------------|--------|-------|
|
|
128
|
+
| SEL_STMS_001 | Teams Page Selectors | Active | 6 |
|
|
129
|
+
| SEL_STMS_002 | Create Team Dialog Documentation | Active | 1 |
|
|
130
|
+
| **Total** | | **All Active** | **7** |
|
|
@@ -13,25 +13,29 @@
|
|
|
13
13
|
* - Navigate to teams settings page (requires login)
|
|
14
14
|
* - Assert elements exist in DOM (no form submissions)
|
|
15
15
|
* - Fast execution (< 30 seconds per describe block)
|
|
16
|
+
*
|
|
17
|
+
* Test IDs:
|
|
18
|
+
* - SEL_STMS_001: Teams Page Selectors
|
|
19
|
+
* - SEL_STMS_002: Create Team Dialog (documentation only)
|
|
16
20
|
*/
|
|
17
21
|
|
|
18
|
-
import { SettingsPOM } from '
|
|
19
|
-
import {
|
|
22
|
+
import { SettingsPOM } from '../../../src/features/SettingsPOM'
|
|
23
|
+
import { loginAsDefaultDeveloper } from '../../../src/session-helpers'
|
|
20
24
|
|
|
21
|
-
describe('Settings Teams Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
25
|
+
describe('Settings Teams Selectors Validation', { tags: ['@ui-selectors', '@settings'] }, () => {
|
|
22
26
|
const settings = SettingsPOM.create()
|
|
23
27
|
|
|
24
28
|
beforeEach(() => {
|
|
25
|
-
|
|
29
|
+
loginAsDefaultDeveloper()
|
|
26
30
|
cy.visit('/dashboard/settings/teams', { timeout: 60000 })
|
|
27
31
|
// Wait for teams page to load - either main or loading should appear
|
|
28
32
|
cy.get('[data-cy="teams-settings-main"], [data-cy="teams-settings-loading"]', { timeout: 15000 }).should('exist')
|
|
29
33
|
})
|
|
30
34
|
|
|
31
35
|
// ============================================
|
|
32
|
-
// TEAMS
|
|
36
|
+
// SEL_STMS_001: TEAMS PAGE SELECTORS
|
|
33
37
|
// ============================================
|
|
34
|
-
describe('Teams Page Selectors', () => {
|
|
38
|
+
describe('SEL_STMS_001: Teams Page Selectors', { tags: '@SEL_STMS_001' }, () => {
|
|
35
39
|
it('should find teams main container', () => {
|
|
36
40
|
// Wait for loading to finish
|
|
37
41
|
cy.get('[data-cy="teams-settings-main"]', { timeout: 15000 }).should('exist')
|
|
@@ -41,22 +45,18 @@ describe('Settings Teams Selectors Validation', { tags: ['@ui-selectors'] }, ()
|
|
|
41
45
|
cy.get('[data-cy="teams-settings-header"]', { timeout: 15000 }).should('exist')
|
|
42
46
|
})
|
|
43
47
|
|
|
44
|
-
// Note: Loading skeleton appears briefly during initial load
|
|
45
|
-
it.skip('should find loading skeleton (only visible during loading)', () => {
|
|
46
|
-
cy.get('[data-cy="teams-settings-loading"]').should('exist')
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
// Note: Single user message only appears for users not in any team
|
|
50
|
-
it.skip('should find single user message (only for users without teams)', () => {
|
|
51
|
-
cy.get('[data-cy="teams-settings-single-user"]').should('exist')
|
|
52
|
-
})
|
|
53
|
-
|
|
54
48
|
it('should find teams list', () => {
|
|
55
49
|
cy.get('[data-cy="teams-settings-teams-list"]', { timeout: 15000 }).should('exist')
|
|
56
50
|
})
|
|
57
51
|
|
|
58
|
-
|
|
59
|
-
|
|
52
|
+
it('should find team item in list', () => {
|
|
53
|
+
cy.get('[data-cy^="team-item-"]', { timeout: 15000 }).should('have.length.at.least', 1)
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
it('should find team details section when team is selected', () => {
|
|
57
|
+
// Click on first team to select it
|
|
58
|
+
cy.get('[data-cy^="team-item-"]').first().click()
|
|
59
|
+
// Team details should appear
|
|
60
60
|
cy.get('[data-cy="teams-settings-team-details"]', { timeout: 15000 }).should('exist')
|
|
61
61
|
})
|
|
62
62
|
|
|
@@ -65,4 +65,22 @@ describe('Settings Teams Selectors Validation', { tags: ['@ui-selectors'] }, ()
|
|
|
65
65
|
cy.get('[data-cy="create-team-button"]', { timeout: 15000 }).should('exist')
|
|
66
66
|
})
|
|
67
67
|
})
|
|
68
|
+
|
|
69
|
+
// ============================================
|
|
70
|
+
// SEL_STMS_002: CREATE TEAM DIALOG
|
|
71
|
+
// Tested in teams.cy.ts, documented here for reference
|
|
72
|
+
// ============================================
|
|
73
|
+
describe('SEL_STMS_002: Create Team Dialog Documentation', { tags: '@SEL_STMS_002' }, () => {
|
|
74
|
+
it('should document create team dialog selectors', () => {
|
|
75
|
+
cy.log('Create Team Dialog selectors are tested in teams.cy.ts')
|
|
76
|
+
cy.log('Dialog selectors:')
|
|
77
|
+
cy.log('- create-team-dialog')
|
|
78
|
+
cy.log('- team-name-input')
|
|
79
|
+
cy.log('- team-slug-input')
|
|
80
|
+
cy.log('- team-description-input')
|
|
81
|
+
cy.log('- cancel-create-team')
|
|
82
|
+
cy.log('- submit-create-team')
|
|
83
|
+
cy.wrap(true).should('be.true')
|
|
84
|
+
})
|
|
85
|
+
})
|
|
68
86
|
})
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature: Superadmin UI Selectors Validation
|
|
3
|
+
priority: high
|
|
4
|
+
tags: [selectors, superadmin, ui-validation, admin-panel]
|
|
5
|
+
grepTags: [ui-selectors, superadmin, SEL_SADM_001, SEL_SADM_002, SEL_SADM_003, SEL_SADM_004, SEL_SADM_005, SEL_SADM_006]
|
|
6
|
+
coverage: 6
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Superadmin UI Selectors Validation
|
|
10
|
+
|
|
11
|
+
> Validates that superadmin area selectors exist in the DOM. This is a lightweight test that ONLY checks selector presence, not functionality. Runs as Phase 12 sub-gate before functional tests.
|
|
12
|
+
|
|
13
|
+
## @test SEL_SADM_001: Superadmin Dashboard Selectors
|
|
14
|
+
|
|
15
|
+
### Metadata
|
|
16
|
+
- **Priority:** High
|
|
17
|
+
- **Type:** Selector Validation
|
|
18
|
+
- **Tags:** superadmin, dashboard, container
|
|
19
|
+
- **Grep:** `@ui-selectors` `@SEL_SADM_001`
|
|
20
|
+
- **Status:** Active
|
|
21
|
+
|
|
22
|
+
```gherkin:en
|
|
23
|
+
Scenario: Superadmin dashboard has required selectors
|
|
24
|
+
|
|
25
|
+
Given I am logged in as superadmin
|
|
26
|
+
And I navigate to the superadmin dashboard
|
|
27
|
+
Then I should find the superadmin container
|
|
28
|
+
And I should find the dashboard container
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```gherkin:es
|
|
32
|
+
Scenario: El dashboard de superadmin tiene los selectores requeridos
|
|
33
|
+
|
|
34
|
+
Given estoy logueado como superadmin
|
|
35
|
+
And navego al dashboard de superadmin
|
|
36
|
+
Then deberia encontrar el contenedor de superadmin
|
|
37
|
+
And deberia encontrar el contenedor del dashboard
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Expected Results
|
|
41
|
+
- `superadmin.container` selector exists (superadmin-container)
|
|
42
|
+
- `superadmin.dashboard.container` selector exists (superadmin-dashboard)
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## @test SEL_SADM_002: Superadmin Navigation Selectors
|
|
47
|
+
|
|
48
|
+
### Metadata
|
|
49
|
+
- **Priority:** High
|
|
50
|
+
- **Type:** Selector Validation
|
|
51
|
+
- **Tags:** superadmin, navigation, sidebar
|
|
52
|
+
- **Grep:** `@ui-selectors` `@SEL_SADM_002`
|
|
53
|
+
- **Status:** Active
|
|
54
|
+
|
|
55
|
+
```gherkin:en
|
|
56
|
+
Scenario: Superadmin navigation has all required links
|
|
57
|
+
|
|
58
|
+
Given I am logged in as superadmin
|
|
59
|
+
And I navigate to the superadmin area
|
|
60
|
+
Then I should find the dashboard nav link
|
|
61
|
+
And I should find the users nav link
|
|
62
|
+
And I should find the teams nav link
|
|
63
|
+
And I should find the team-roles nav link
|
|
64
|
+
And I should find the subscriptions nav link
|
|
65
|
+
And I should find the exit to dashboard link
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```gherkin:es
|
|
69
|
+
Scenario: La navegacion de superadmin tiene todos los links requeridos
|
|
70
|
+
|
|
71
|
+
Given estoy logueado como superadmin
|
|
72
|
+
And navego al area de superadmin
|
|
73
|
+
Then deberia encontrar el link de navegacion a dashboard
|
|
74
|
+
And deberia encontrar el link de navegacion a users
|
|
75
|
+
And deberia encontrar el link de navegacion a teams
|
|
76
|
+
And deberia encontrar el link de navegacion a team-roles
|
|
77
|
+
And deberia encontrar el link de navegacion a subscriptions
|
|
78
|
+
And deberia encontrar el link de salir al dashboard
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Expected Results
|
|
82
|
+
- `superadmin.navigation.dashboard` selector exists (superadmin-nav-dashboard)
|
|
83
|
+
- `superadmin.navigation.users` selector exists (superadmin-nav-users)
|
|
84
|
+
- `superadmin.navigation.teams` selector exists (superadmin-nav-teams)
|
|
85
|
+
- `superadmin.navigation.teamRoles` selector exists (superadmin-nav-team-roles)
|
|
86
|
+
- `superadmin.navigation.subscriptions` selector exists (superadmin-nav-subscriptions)
|
|
87
|
+
- `superadmin.navigation.exitToDashboard` selector exists (superadmin-sidebar-exit-to-dashboard)
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## @test SEL_SADM_003: Superadmin Users Page Selectors
|
|
92
|
+
|
|
93
|
+
### Metadata
|
|
94
|
+
- **Priority:** High
|
|
95
|
+
- **Type:** Selector Validation
|
|
96
|
+
- **Tags:** superadmin, users, management
|
|
97
|
+
- **Grep:** `@ui-selectors` `@SEL_SADM_003`
|
|
98
|
+
- **Status:** Active
|
|
99
|
+
|
|
100
|
+
```gherkin:en
|
|
101
|
+
Scenario: Superadmin users page has required selectors
|
|
102
|
+
|
|
103
|
+
Given I am logged in as superadmin
|
|
104
|
+
And I navigate to the superadmin users page
|
|
105
|
+
Then I should find the users container
|
|
106
|
+
And I should find the users table
|
|
107
|
+
And I should find the users search input
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```gherkin:es
|
|
111
|
+
Scenario: La pagina de usuarios de superadmin tiene los selectores requeridos
|
|
112
|
+
|
|
113
|
+
Given estoy logueado como superadmin
|
|
114
|
+
And navego a la pagina de usuarios de superadmin
|
|
115
|
+
Then deberia encontrar el contenedor de usuarios
|
|
116
|
+
And deberia encontrar la tabla de usuarios
|
|
117
|
+
And deberia encontrar el input de busqueda de usuarios
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Expected Results
|
|
121
|
+
- `superadmin.users.container` selector exists (superadmin-users-container)
|
|
122
|
+
- `superadmin.users.table` selector exists (superadmin-users-table)
|
|
123
|
+
- `superadmin.users.search` selector exists (superadmin-users-search)
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## @test SEL_SADM_004: Superadmin Teams Page Selectors
|
|
128
|
+
|
|
129
|
+
### Metadata
|
|
130
|
+
- **Priority:** High
|
|
131
|
+
- **Type:** Selector Validation
|
|
132
|
+
- **Tags:** superadmin, teams, management
|
|
133
|
+
- **Grep:** `@ui-selectors` `@SEL_SADM_004`
|
|
134
|
+
- **Status:** Active
|
|
135
|
+
|
|
136
|
+
```gherkin:en
|
|
137
|
+
Scenario: Superadmin teams page has required selectors
|
|
138
|
+
|
|
139
|
+
Given I am logged in as superadmin
|
|
140
|
+
And I navigate to the superadmin teams page
|
|
141
|
+
Then I should find the teams container
|
|
142
|
+
And I should find the teams table
|
|
143
|
+
And I should find the teams search input
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
```gherkin:es
|
|
147
|
+
Scenario: La pagina de equipos de superadmin tiene los selectores requeridos
|
|
148
|
+
|
|
149
|
+
Given estoy logueado como superadmin
|
|
150
|
+
And navego a la pagina de equipos de superadmin
|
|
151
|
+
Then deberia encontrar el contenedor de equipos
|
|
152
|
+
And deberia encontrar la tabla de equipos
|
|
153
|
+
And deberia encontrar el input de busqueda de equipos
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Expected Results
|
|
157
|
+
- `superadmin.teams.container` selector exists (superadmin-teams-container)
|
|
158
|
+
- `superadmin.teams.table` selector exists (superadmin-teams-table)
|
|
159
|
+
- `superadmin.teams.search` selector exists (superadmin-teams-search)
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## @test SEL_SADM_005: Superadmin Subscriptions Page Selectors
|
|
164
|
+
|
|
165
|
+
### Metadata
|
|
166
|
+
- **Priority:** High
|
|
167
|
+
- **Type:** Selector Validation
|
|
168
|
+
- **Tags:** superadmin, subscriptions, billing
|
|
169
|
+
- **Grep:** `@ui-selectors` `@SEL_SADM_005`
|
|
170
|
+
- **Status:** Active
|
|
171
|
+
|
|
172
|
+
```gherkin:en
|
|
173
|
+
Scenario: Superadmin subscriptions page has required selectors
|
|
174
|
+
|
|
175
|
+
Given I am logged in as superadmin
|
|
176
|
+
And I navigate to the superadmin subscriptions page
|
|
177
|
+
Then I should find the subscriptions container
|
|
178
|
+
And I should find the MRR stat card
|
|
179
|
+
And I should find the plan distribution section
|
|
180
|
+
And I should find the active count stat card
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
```gherkin:es
|
|
184
|
+
Scenario: La pagina de suscripciones de superadmin tiene los selectores requeridos
|
|
185
|
+
|
|
186
|
+
Given estoy logueado como superadmin
|
|
187
|
+
And navego a la pagina de suscripciones de superadmin
|
|
188
|
+
Then deberia encontrar el contenedor de suscripciones
|
|
189
|
+
And deberia encontrar la tarjeta de estadisticas MRR
|
|
190
|
+
And deberia encontrar la seccion de distribucion de planes
|
|
191
|
+
And deberia encontrar la tarjeta de conteo activo
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Expected Results
|
|
195
|
+
- `superadmin.subscriptions.container` selector exists (superadmin-subscriptions-container)
|
|
196
|
+
- `superadmin.subscriptions.mrr` selector exists (superadmin-subscriptions-mrr)
|
|
197
|
+
- `superadmin.subscriptions.planDistribution` selector exists (superadmin-subscriptions-plan-distribution)
|
|
198
|
+
- `superadmin.subscriptions.activeCount` selector exists (superadmin-subscriptions-active-count)
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## @test SEL_SADM_006: Dynamic Selectors (Pattern Validation)
|
|
203
|
+
|
|
204
|
+
### Metadata
|
|
205
|
+
- **Priority:** Medium
|
|
206
|
+
- **Type:** Selector Validation
|
|
207
|
+
- **Tags:** superadmin, dynamic, patterns
|
|
208
|
+
- **Grep:** `@ui-selectors` `@SEL_SADM_006`
|
|
209
|
+
- **Status:** Active
|
|
210
|
+
|
|
211
|
+
```gherkin:en
|
|
212
|
+
Scenario: Dynamic selectors return valid patterns
|
|
213
|
+
|
|
214
|
+
Given I am logged in as superadmin
|
|
215
|
+
And I navigate to the superadmin users page
|
|
216
|
+
Then the userRow selector should return a valid pattern
|
|
217
|
+
And the userView selector should return a valid pattern
|
|
218
|
+
And the teamRow selector should return a valid pattern
|
|
219
|
+
And the subscriptionsPlanCount selector should return a valid pattern
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
```gherkin:es
|
|
223
|
+
Scenario: Los selectores dinamicos retornan patrones validos
|
|
224
|
+
|
|
225
|
+
Given estoy logueado como superadmin
|
|
226
|
+
And navego a la pagina de usuarios de superadmin
|
|
227
|
+
Then el selector userRow deberia retornar un patron valido
|
|
228
|
+
And el selector userView deberia retornar un patron valido
|
|
229
|
+
And el selector teamRow deberia retornar un patron valido
|
|
230
|
+
And el selector subscriptionsPlanCount deberia retornar un patron valido
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Expected Results
|
|
234
|
+
- `superadmin.users.row` pattern includes 'superadmin-user-row'
|
|
235
|
+
- `superadmin.users.viewButton` pattern includes 'superadmin-user-view'
|
|
236
|
+
- `superadmin.teams.row` pattern includes 'superadmin-team-row'
|
|
237
|
+
- `superadmin.subscriptions.planCount` pattern includes 'superadmin-subscriptions-plan-count'
|
|
238
|
+
|
|
239
|
+
### Notes
|
|
240
|
+
These tests validate that dynamic selector functions (those that accept parameters like `id` or `plan`) return correctly formatted selector strings. They do not test actual DOM elements.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Related Components
|
|
245
|
+
|
|
246
|
+
| Component | File | Selectors |
|
|
247
|
+
|-----------|------|-----------|
|
|
248
|
+
| SuperadminLayout | `packages/core/templates/app/superadmin/layout.tsx` | superadmin-container |
|
|
249
|
+
| SuperadminSidebar | `packages/core/src/components/superadmin/layouts/SuperadminSidebar.tsx` | superadmin-nav-* |
|
|
250
|
+
| SuperadminDashboard | `packages/core/templates/app/superadmin/page.tsx` | superadmin-dashboard |
|
|
251
|
+
| UsersPage | `packages/core/templates/app/superadmin/users/page.tsx` | superadmin-users-* |
|
|
252
|
+
| TeamsPage | `packages/core/templates/app/superadmin/teams/page.tsx` | superadmin-teams-* |
|
|
253
|
+
| SubscriptionsPage | `packages/core/templates/app/superadmin/subscriptions/page.tsx` | superadmin-subscriptions-* |
|
|
254
|
+
| UsersTable | `packages/core/src/components/users/tables/UsersTable.tsx` | superadmin-users-table, superadmin-user-row-{id} |
|
|
255
|
+
| TeamsTable | `packages/core/src/components/superadmin/tables/TeamsTable.tsx` | superadmin-teams-table, superadmin-team-row-{id} |
|
|
256
|
+
|
|
257
|
+
## Related POMs
|
|
258
|
+
|
|
259
|
+
| POM | File | Usage |
|
|
260
|
+
|-----|------|-------|
|
|
261
|
+
| SuperadminPOM | `themes/default/tests/cypress/src/features/SuperadminPOM.ts` | Superadmin area interactions and selectors |
|
|
@@ -14,19 +14,27 @@
|
|
|
14
14
|
* - Assert elements exist in DOM (no form submissions)
|
|
15
15
|
* - Fast execution (< 30 seconds per describe block)
|
|
16
16
|
*
|
|
17
|
+
* Test IDs:
|
|
18
|
+
* - SEL_SADM_001: Superadmin Dashboard Selectors
|
|
19
|
+
* - SEL_SADM_002: Superadmin Navigation Selectors
|
|
20
|
+
* - SEL_SADM_003: Superadmin Users Page Selectors
|
|
21
|
+
* - SEL_SADM_004: Superadmin Teams Page Selectors
|
|
22
|
+
* - SEL_SADM_005: Superadmin Subscriptions Page Selectors
|
|
23
|
+
* - SEL_SADM_006: Dynamic Selectors (Pattern Validation)
|
|
24
|
+
*
|
|
17
25
|
* NOTE: Requires superadmin role to access /superadmin/* pages.
|
|
18
26
|
*/
|
|
19
27
|
|
|
20
|
-
import { SuperadminPOM } from '
|
|
21
|
-
import { loginAsDefaultSuperadmin } from '
|
|
28
|
+
import { SuperadminPOM } from '../../../src/features/SuperadminPOM'
|
|
29
|
+
import { loginAsDefaultSuperadmin } from '../../../src/session-helpers'
|
|
22
30
|
|
|
23
|
-
describe('Superadmin Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
31
|
+
describe('Superadmin Selectors Validation', { tags: ['@ui-selectors', '@superadmin'] }, () => {
|
|
24
32
|
const superadmin = SuperadminPOM.create()
|
|
25
33
|
|
|
26
34
|
// ============================================
|
|
27
|
-
// SUPERADMIN DASHBOARD
|
|
35
|
+
// SEL_SADM_001: SUPERADMIN DASHBOARD
|
|
28
36
|
// ============================================
|
|
29
|
-
describe('Superadmin Dashboard', () => {
|
|
37
|
+
describe('SEL_SADM_001: Superadmin Dashboard', { tags: '@SEL_SADM_001' }, () => {
|
|
30
38
|
beforeEach(() => {
|
|
31
39
|
loginAsDefaultSuperadmin()
|
|
32
40
|
cy.visit('/superadmin', { timeout: 60000, failOnStatusCode: false })
|
|
@@ -43,9 +51,9 @@ describe('Superadmin Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
43
51
|
})
|
|
44
52
|
|
|
45
53
|
// ============================================
|
|
46
|
-
// SUPERADMIN NAVIGATION
|
|
54
|
+
// SEL_SADM_002: SUPERADMIN NAVIGATION
|
|
47
55
|
// ============================================
|
|
48
|
-
describe('Superadmin Navigation', () => {
|
|
56
|
+
describe('SEL_SADM_002: Superadmin Navigation', { tags: '@SEL_SADM_002' }, () => {
|
|
49
57
|
beforeEach(() => {
|
|
50
58
|
loginAsDefaultSuperadmin()
|
|
51
59
|
cy.visit('/superadmin', { timeout: 60000, failOnStatusCode: false })
|
|
@@ -78,9 +86,9 @@ describe('Superadmin Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
78
86
|
})
|
|
79
87
|
|
|
80
88
|
// ============================================
|
|
81
|
-
// SUPERADMIN USERS PAGE
|
|
89
|
+
// SEL_SADM_003: SUPERADMIN USERS PAGE
|
|
82
90
|
// ============================================
|
|
83
|
-
describe('Superadmin Users Page', () => {
|
|
91
|
+
describe('SEL_SADM_003: Superadmin Users Page', { tags: '@SEL_SADM_003' }, () => {
|
|
84
92
|
beforeEach(() => {
|
|
85
93
|
loginAsDefaultSuperadmin()
|
|
86
94
|
cy.visit('/superadmin/users', { timeout: 60000, failOnStatusCode: false })
|
|
@@ -101,9 +109,9 @@ describe('Superadmin Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
101
109
|
})
|
|
102
110
|
|
|
103
111
|
// ============================================
|
|
104
|
-
// SUPERADMIN TEAMS PAGE
|
|
112
|
+
// SEL_SADM_004: SUPERADMIN TEAMS PAGE
|
|
105
113
|
// ============================================
|
|
106
|
-
describe('Superadmin Teams Page', () => {
|
|
114
|
+
describe('SEL_SADM_004: Superadmin Teams Page', { tags: '@SEL_SADM_004' }, () => {
|
|
107
115
|
beforeEach(() => {
|
|
108
116
|
loginAsDefaultSuperadmin()
|
|
109
117
|
cy.visit('/superadmin/teams', { timeout: 60000, failOnStatusCode: false })
|
|
@@ -124,9 +132,9 @@ describe('Superadmin Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
124
132
|
})
|
|
125
133
|
|
|
126
134
|
// ============================================
|
|
127
|
-
// SUPERADMIN SUBSCRIPTIONS PAGE
|
|
135
|
+
// SEL_SADM_005: SUPERADMIN SUBSCRIPTIONS PAGE
|
|
128
136
|
// ============================================
|
|
129
|
-
describe('Superadmin Subscriptions Page', () => {
|
|
137
|
+
describe('SEL_SADM_005: Superadmin Subscriptions Page', { tags: '@SEL_SADM_005' }, () => {
|
|
130
138
|
beforeEach(() => {
|
|
131
139
|
loginAsDefaultSuperadmin()
|
|
132
140
|
cy.visit('/superadmin/subscriptions', { timeout: 60000, failOnStatusCode: false })
|
|
@@ -151,10 +159,10 @@ describe('Superadmin Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
151
159
|
})
|
|
152
160
|
|
|
153
161
|
// ============================================
|
|
154
|
-
// DYNAMIC SELECTORS (
|
|
162
|
+
// SEL_SADM_006: DYNAMIC SELECTORS (PATTERN VALIDATION)
|
|
155
163
|
// These test the selector pattern, not actual elements
|
|
156
164
|
// ============================================
|
|
157
|
-
describe('Dynamic Selectors (Pattern Validation)', () => {
|
|
165
|
+
describe('SEL_SADM_006: Dynamic Selectors (Pattern Validation)', { tags: '@SEL_SADM_006' }, () => {
|
|
158
166
|
beforeEach(() => {
|
|
159
167
|
loginAsDefaultSuperadmin()
|
|
160
168
|
cy.visit('/superadmin/users', { timeout: 60000, failOnStatusCode: false })
|