@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
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature: Dashboard Topnav UI Selectors Validation
|
|
3
|
+
priority: high
|
|
4
|
+
tags: [selectors, topnav, dashboard, ui-validation]
|
|
5
|
+
grepTags: [ui-selectors, topnav, SEL_TNAV_001, SEL_TNAV_002, SEL_TNAV_003, SEL_TNAV_004, SEL_TNAV_006]
|
|
6
|
+
coverage: 5
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Dashboard Topnav UI Selectors Validation
|
|
10
|
+
|
|
11
|
+
> Validates that dashboard topnav component selectors exist in the DOM. This is a lightweight test that ONLY checks selector presence, not functionality. Uses `loginAsDefaultDeveloper()` which has access to superadmin and devtools links.
|
|
12
|
+
|
|
13
|
+
**NOTE:** Public navbar tests (logo, signin, signup) are in `public.cy.ts`.
|
|
14
|
+
|
|
15
|
+
## @test SEL_TNAV_001: Topnav Structure
|
|
16
|
+
|
|
17
|
+
### Metadata
|
|
18
|
+
- **Priority:** High
|
|
19
|
+
- **Type:** Selector Validation
|
|
20
|
+
- **Tags:** topnav, structure, desktop
|
|
21
|
+
- **Grep:** `@ui-selectors` `@SEL_TNAV_001`
|
|
22
|
+
- **Status:** Active - 3 tests
|
|
23
|
+
|
|
24
|
+
```gherkin:en
|
|
25
|
+
Scenario: Dashboard topnav has complete structure
|
|
26
|
+
|
|
27
|
+
Given I am logged in as a developer user
|
|
28
|
+
And I navigate to the dashboard
|
|
29
|
+
Then I should find the topnav header
|
|
30
|
+
And I should find the topnav actions container
|
|
31
|
+
And I should find the topnav search section
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```gherkin:es
|
|
35
|
+
Scenario: Topnav del dashboard tiene estructura completa
|
|
36
|
+
|
|
37
|
+
Given estoy logueado como usuario developer
|
|
38
|
+
And navego al dashboard
|
|
39
|
+
Then deberia encontrar el header del topnav
|
|
40
|
+
And deberia encontrar el contenedor de acciones del topnav
|
|
41
|
+
And deberia encontrar la seccion de busqueda del topnav
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Expected Results
|
|
45
|
+
- `topnav-header` selector exists
|
|
46
|
+
- `topnav-actions` selector exists
|
|
47
|
+
- `topnav-search-section` selector exists
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## @test SEL_TNAV_002: Topnav Actions
|
|
52
|
+
|
|
53
|
+
### Metadata
|
|
54
|
+
- **Priority:** High
|
|
55
|
+
- **Type:** Selector Validation
|
|
56
|
+
- **Tags:** topnav, actions, buttons
|
|
57
|
+
- **Grep:** `@ui-selectors` `@SEL_TNAV_002`
|
|
58
|
+
- **Status:** Active - 4 passing
|
|
59
|
+
|
|
60
|
+
```gherkin:en
|
|
61
|
+
Scenario: Dashboard topnav has all action buttons
|
|
62
|
+
|
|
63
|
+
Given I am logged in as a valid user
|
|
64
|
+
And I navigate to the dashboard
|
|
65
|
+
Then I should find the sidebar toggle button
|
|
66
|
+
And I should find the notifications button
|
|
67
|
+
And I should find the help button
|
|
68
|
+
And I should find the theme toggle button
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```gherkin:es
|
|
72
|
+
Scenario: Topnav del dashboard tiene todos los botones de accion
|
|
73
|
+
|
|
74
|
+
Given estoy logueado como usuario valido
|
|
75
|
+
And navego al dashboard
|
|
76
|
+
Then deberia encontrar el boton de toggle del sidebar
|
|
77
|
+
And deberia encontrar el boton de notificaciones
|
|
78
|
+
And deberia encontrar el boton de ayuda
|
|
79
|
+
And deberia encontrar el boton de cambio de tema
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Expected Results
|
|
83
|
+
- `topnav-sidebar-toggle` selector exists
|
|
84
|
+
- `topnav-notifications` selector exists
|
|
85
|
+
- `topnav-help` selector exists
|
|
86
|
+
- `topnav-theme-toggle` selector exists
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## @test SEL_TNAV_003: Topnav Admin Links
|
|
91
|
+
|
|
92
|
+
### Metadata
|
|
93
|
+
- **Priority:** Medium
|
|
94
|
+
- **Type:** Selector Validation
|
|
95
|
+
- **Tags:** topnav, admin, superadmin, devtools
|
|
96
|
+
- **Grep:** `@ui-selectors` `@SEL_TNAV_003`
|
|
97
|
+
- **Status:** Active - 2 tests
|
|
98
|
+
|
|
99
|
+
```gherkin:en
|
|
100
|
+
Scenario: Topnav shows admin links for developer users
|
|
101
|
+
|
|
102
|
+
Given I am logged in as a developer user
|
|
103
|
+
And superadminAccess.showToDevelopers is enabled (default: true)
|
|
104
|
+
And devtoolsAccess is enabled (default: true)
|
|
105
|
+
And I navigate to the dashboard
|
|
106
|
+
Then I should find the superadmin link
|
|
107
|
+
And I should find the devtools link
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```gherkin:es
|
|
111
|
+
Scenario: Topnav muestra links de admin para usuarios developer
|
|
112
|
+
|
|
113
|
+
Given estoy logueado como usuario developer
|
|
114
|
+
And superadminAccess.showToDevelopers esta habilitado (default: true)
|
|
115
|
+
And devtoolsAccess esta habilitado (default: true)
|
|
116
|
+
And navego al dashboard
|
|
117
|
+
Then deberia encontrar el link de superadmin
|
|
118
|
+
And deberia encontrar el link de devtools
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Expected Results
|
|
122
|
+
- `topnav-superadmin` selector exists (developer sees with showToDevelopers: true)
|
|
123
|
+
- `topnav-devtools` selector exists (developer has access)
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## @test SEL_TNAV_004: User Menu
|
|
128
|
+
|
|
129
|
+
### Metadata
|
|
130
|
+
- **Priority:** High
|
|
131
|
+
- **Type:** Selector Validation
|
|
132
|
+
- **Tags:** topnav, user-menu, dropdown
|
|
133
|
+
- **Grep:** `@ui-selectors` `@SEL_TNAV_004`
|
|
134
|
+
- **Status:** Active - 5 passing
|
|
135
|
+
|
|
136
|
+
```gherkin:en
|
|
137
|
+
Scenario: User menu opens and shows all items
|
|
138
|
+
|
|
139
|
+
Given I am logged in as a valid user
|
|
140
|
+
And I navigate to the dashboard
|
|
141
|
+
Then I should find the user menu trigger
|
|
142
|
+
When I click on the user menu trigger
|
|
143
|
+
Then I should see the user menu dropdown
|
|
144
|
+
And I should find the profile menu item
|
|
145
|
+
And I should find the settings menu item
|
|
146
|
+
And I should find the signOut action
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
```gherkin:es
|
|
150
|
+
Scenario: Menu de usuario se abre y muestra todos los items
|
|
151
|
+
|
|
152
|
+
Given estoy logueado como usuario valido
|
|
153
|
+
And navego al dashboard
|
|
154
|
+
Then deberia encontrar el trigger del menu de usuario
|
|
155
|
+
When hago click en el trigger del menu de usuario
|
|
156
|
+
Then deberia ver el dropdown del menu de usuario
|
|
157
|
+
And deberia encontrar el item de menu de perfil
|
|
158
|
+
And deberia encontrar el item de menu de configuracion
|
|
159
|
+
And deberia encontrar la accion de cerrar sesion
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Expected Results
|
|
163
|
+
- `topnav-user-menu-trigger` selector exists
|
|
164
|
+
- `topnav-user-menu` visible when opened
|
|
165
|
+
- `topnav-menu-item-user` selector exists
|
|
166
|
+
- `topnav-menu-item-settings` selector exists
|
|
167
|
+
- `topnav-menu-action-signOut` selector exists
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## @test SEL_TNAV_006: Loading State
|
|
172
|
+
|
|
173
|
+
### Metadata
|
|
174
|
+
- **Priority:** Low
|
|
175
|
+
- **Type:** Selector Validation
|
|
176
|
+
- **Tags:** topnav, loading, skeleton
|
|
177
|
+
- **Grep:** `@ui-selectors` `@SEL_TNAV_006`
|
|
178
|
+
- **Status:** 1 Skipped - transient state cannot be reliably tested
|
|
179
|
+
|
|
180
|
+
```gherkin:en
|
|
181
|
+
Scenario: Topnav shows loading state during auth
|
|
182
|
+
|
|
183
|
+
Given the authentication state is loading
|
|
184
|
+
And I navigate to the dashboard
|
|
185
|
+
Then I should find the user loading state indicator
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```gherkin:es
|
|
189
|
+
Scenario: Topnav muestra estado de carga durante autenticacion
|
|
190
|
+
|
|
191
|
+
Given el estado de autenticacion esta cargando
|
|
192
|
+
And navego al dashboard
|
|
193
|
+
Then deberia encontrar el indicador de estado de carga del usuario
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Expected Results
|
|
197
|
+
- `topnav-user-loading` - only visible during auth loading
|
|
198
|
+
|
|
199
|
+
### Notes
|
|
200
|
+
This transient state is difficult to test in normal flow.
|
|
@@ -14,35 +14,37 @@
|
|
|
14
14
|
* - Assert elements exist in DOM (no form submissions)
|
|
15
15
|
* - Fast execution (< 30 seconds per describe block)
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* Test IDs:
|
|
18
|
+
* - SEL_TNAV_001: Topnav Structure (3 selectors)
|
|
19
|
+
* - SEL_TNAV_002: Topnav Actions (4 selectors)
|
|
20
|
+
* - SEL_TNAV_003: Topnav Admin Links (2 selectors - developer has access)
|
|
21
|
+
* - SEL_TNAV_004: User Menu (5 selectors)
|
|
22
|
+
* - SEL_TNAV_006: Loading State (1 skipped - transient state)
|
|
23
|
+
*
|
|
24
|
+
* NOTE: Public navbar tests (logo, signin, signup) are in public.cy.ts
|
|
19
25
|
*/
|
|
20
26
|
|
|
21
|
-
import { DashboardPOM } from '
|
|
22
|
-
import {
|
|
27
|
+
import { DashboardPOM } from '../../../src/features/DashboardPOM'
|
|
28
|
+
import { loginAsDefaultDeveloper } from '../../../src/session-helpers'
|
|
23
29
|
|
|
24
|
-
describe('Dashboard Topnav Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
30
|
+
describe('Dashboard Topnav Selectors Validation', { tags: ['@ui-selectors', '@topnav'] }, () => {
|
|
25
31
|
const dashboard = DashboardPOM.create()
|
|
26
32
|
|
|
27
33
|
beforeEach(() => {
|
|
28
|
-
|
|
34
|
+
loginAsDefaultDeveloper()
|
|
29
35
|
cy.visit('/dashboard', { timeout: 60000, failOnStatusCode: false })
|
|
30
36
|
cy.url().should('include', '/dashboard')
|
|
31
37
|
})
|
|
32
38
|
|
|
33
39
|
// ============================================
|
|
34
|
-
// TOPNAV STRUCTURE (
|
|
40
|
+
// SEL_TNAV_001: TOPNAV STRUCTURE (3 selectors)
|
|
41
|
+
// NOTE: Logo test moved to public.cy.ts (only visible when not logged in)
|
|
35
42
|
// ============================================
|
|
36
|
-
describe('Topnav Structure', () => {
|
|
43
|
+
describe('SEL_TNAV_001: Topnav Structure', { tags: '@SEL_TNAV_001' }, () => {
|
|
37
44
|
it('should find topnav header', () => {
|
|
38
45
|
cy.get(dashboard.selectors.topnavHeader).should('exist')
|
|
39
46
|
})
|
|
40
47
|
|
|
41
|
-
// NOTE: Logo only visible when NOT logged in
|
|
42
|
-
it.skip('should find topnav logo (only visible when not logged in)', () => {
|
|
43
|
-
cy.get(dashboard.selectors.topnavLogo).should('exist')
|
|
44
|
-
})
|
|
45
|
-
|
|
46
48
|
it('should find topnav actions container', () => {
|
|
47
49
|
cy.get(dashboard.selectors.topnavActions).should('exist')
|
|
48
50
|
})
|
|
@@ -53,9 +55,9 @@ describe('Dashboard Topnav Selectors Validation', { tags: ['@ui-selectors'] }, (
|
|
|
53
55
|
})
|
|
54
56
|
|
|
55
57
|
// ============================================
|
|
56
|
-
// TOPNAV ACTIONS (4 selectors)
|
|
58
|
+
// SEL_TNAV_002: TOPNAV ACTIONS (4 selectors)
|
|
57
59
|
// ============================================
|
|
58
|
-
describe('Topnav Actions', () => {
|
|
60
|
+
describe('SEL_TNAV_002: Topnav Actions', { tags: '@SEL_TNAV_002' }, () => {
|
|
59
61
|
it('should find sidebar toggle button', () => {
|
|
60
62
|
cy.get(dashboard.selectors.topnavSidebarToggle).should('exist')
|
|
61
63
|
})
|
|
@@ -74,26 +76,25 @@ describe('Dashboard Topnav Selectors Validation', { tags: ['@ui-selectors'] }, (
|
|
|
74
76
|
})
|
|
75
77
|
|
|
76
78
|
// ============================================
|
|
77
|
-
// TOPNAV ADMIN LINKS (2 selectors)
|
|
78
|
-
// NOTE:
|
|
79
|
-
// Default owner does NOT have these roles
|
|
79
|
+
// SEL_TNAV_003: TOPNAV ADMIN LINKS (2 selectors)
|
|
80
|
+
// NOTE: Developer user has access (showToDevelopers: true by default)
|
|
80
81
|
// ============================================
|
|
81
|
-
describe('Topnav Admin Links', () => {
|
|
82
|
-
it
|
|
83
|
-
//
|
|
82
|
+
describe('SEL_TNAV_003: Topnav Admin Links', { tags: '@SEL_TNAV_003' }, () => {
|
|
83
|
+
it('should find superadmin link (developer sees with showToDevelopers)', () => {
|
|
84
|
+
// Config: superadminAccess.enabled && (isSuperAdmin || (isDeveloper && showToDevelopers))
|
|
84
85
|
cy.get(dashboard.selectors.topnavSuperadmin).should('exist')
|
|
85
86
|
})
|
|
86
87
|
|
|
87
|
-
it
|
|
88
|
-
//
|
|
89
|
-
cy.get(dashboard.selectors.
|
|
88
|
+
it('should find devtools link (developer role)', () => {
|
|
89
|
+
// Config: devtoolsAccess.enabled && isDeveloper
|
|
90
|
+
cy.get(dashboard.selectors.topnavDevtools).should('exist')
|
|
90
91
|
})
|
|
91
92
|
})
|
|
92
93
|
|
|
93
94
|
// ============================================
|
|
94
|
-
// USER MENU (4+ selectors)
|
|
95
|
+
// SEL_TNAV_004: USER MENU (4+ selectors)
|
|
95
96
|
// ============================================
|
|
96
|
-
describe('User Menu', () => {
|
|
97
|
+
describe('SEL_TNAV_004: User Menu', { tags: '@SEL_TNAV_004' }, () => {
|
|
97
98
|
it('should find user menu trigger', () => {
|
|
98
99
|
cy.get(dashboard.selectors.topnavUserMenuTrigger).should('exist')
|
|
99
100
|
})
|
|
@@ -121,24 +122,10 @@ describe('Dashboard Topnav Selectors Validation', { tags: ['@ui-selectors'] }, (
|
|
|
121
122
|
})
|
|
122
123
|
|
|
123
124
|
// ============================================
|
|
124
|
-
//
|
|
125
|
-
// NOTE: Only visible
|
|
126
|
-
// ============================================
|
|
127
|
-
describe('Public Navbar Selectors', () => {
|
|
128
|
-
it.skip('should find signin button (only visible when not logged in)', () => {
|
|
129
|
-
cy.get(dashboard.selectors.topnavSignin).should('exist')
|
|
130
|
-
})
|
|
131
|
-
|
|
132
|
-
it.skip('should find signup button (only visible when not logged in)', () => {
|
|
133
|
-
cy.get(dashboard.selectors.topnavSignup).should('exist')
|
|
134
|
-
})
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
// ============================================
|
|
138
|
-
// LOADING STATE SELECTOR (1 selector)
|
|
139
|
-
// NOTE: Only visible during auth loading
|
|
125
|
+
// SEL_TNAV_006: LOADING STATE SELECTOR (1 selector)
|
|
126
|
+
// NOTE: Only visible during auth loading - transient state
|
|
140
127
|
// ============================================
|
|
141
|
-
describe('Loading State
|
|
128
|
+
describe('SEL_TNAV_006: Loading State', { tags: '@SEL_TNAV_006' }, () => {
|
|
142
129
|
it.skip('should find user loading state (only visible during auth loading)', () => {
|
|
143
130
|
cy.get(dashboard.selectors.topnavUserLoading).should('exist')
|
|
144
131
|
})
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature: DevTools UI Selectors Validation
|
|
3
|
+
priority: medium
|
|
4
|
+
tags: [selectors, devtools, developer, ui-validation]
|
|
5
|
+
grepTags: [ui-selectors, devtools, SEL_DEVT_001, SEL_DEVT_002, SEL_DEVT_003, SEL_DEVT_004, SEL_DEVT_005, SEL_DEVT_006]
|
|
6
|
+
coverage: 6
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# DevTools UI Selectors Validation
|
|
10
|
+
|
|
11
|
+
> Validates that DevTools (devzone) component selectors exist in the DOM. This is a lightweight test that ONLY checks selector presence, not functionality.
|
|
12
|
+
|
|
13
|
+
**IMPORTANT:** DevTools is only accessible to users with 'developer' app role. All tests use `loginAsDefaultDeveloper()`.
|
|
14
|
+
|
|
15
|
+
## @test SEL_DEVT_001: Navigation Structure
|
|
16
|
+
|
|
17
|
+
### Metadata
|
|
18
|
+
- **Priority:** High
|
|
19
|
+
- **Type:** Selector Validation
|
|
20
|
+
- **Tags:** devtools, navigation, sidebar
|
|
21
|
+
- **Grep:** `@ui-selectors` `@SEL_DEVT_001`
|
|
22
|
+
- **Status:** Active - 8 tests
|
|
23
|
+
|
|
24
|
+
```gherkin:en
|
|
25
|
+
Scenario: DevTools navigation has complete structure
|
|
26
|
+
|
|
27
|
+
Given I am logged in as a developer user
|
|
28
|
+
And I navigate to /devtools
|
|
29
|
+
Then I should find the sidebar container
|
|
30
|
+
And I should find the sidebar collapse toggle
|
|
31
|
+
And I should find the nav home item
|
|
32
|
+
And I should find the nav style gallery item
|
|
33
|
+
And I should find the nav test cases item
|
|
34
|
+
And I should find the nav config item
|
|
35
|
+
And I should find the exit to dashboard link
|
|
36
|
+
And I should find the go to admin link
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```gherkin:es
|
|
40
|
+
Scenario: Navegacion de DevTools tiene estructura completa
|
|
41
|
+
|
|
42
|
+
Given estoy logueado como usuario developer
|
|
43
|
+
And navego a /devtools
|
|
44
|
+
Then deberia encontrar el contenedor del sidebar
|
|
45
|
+
And deberia encontrar el toggle de colapso del sidebar
|
|
46
|
+
And deberia encontrar el item de navegacion home
|
|
47
|
+
And deberia encontrar el item de navegacion style gallery
|
|
48
|
+
And deberia encontrar el item de navegacion test cases
|
|
49
|
+
And deberia encontrar el item de navegacion config
|
|
50
|
+
And deberia encontrar el link de salir al dashboard
|
|
51
|
+
And deberia encontrar el link de ir a admin
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Expected Results
|
|
55
|
+
- `devtools-sidebar` selector exists
|
|
56
|
+
- `devtools-sidebar-collapse` selector exists
|
|
57
|
+
- `devtools-nav-home` selector exists
|
|
58
|
+
- `devtools-nav-style` selector exists
|
|
59
|
+
- `devtools-nav-tests` selector exists
|
|
60
|
+
- `devtools-nav-config` selector exists
|
|
61
|
+
- `devtools-exit-dashboard` selector exists
|
|
62
|
+
- `devtools-go-admin` selector exists
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## @test SEL_DEVT_002: Home Page
|
|
67
|
+
|
|
68
|
+
### Metadata
|
|
69
|
+
- **Priority:** Medium
|
|
70
|
+
- **Type:** Selector Validation
|
|
71
|
+
- **Tags:** devtools, home, quicklinks
|
|
72
|
+
- **Grep:** `@ui-selectors` `@SEL_DEVT_002`
|
|
73
|
+
- **Status:** Active - 4 tests
|
|
74
|
+
|
|
75
|
+
```gherkin:en
|
|
76
|
+
Scenario: DevTools home page has quick links
|
|
77
|
+
|
|
78
|
+
Given I am logged in as a developer user
|
|
79
|
+
And I navigate to /devtools
|
|
80
|
+
Then I should find the home page container
|
|
81
|
+
And I should find the style gallery quick link
|
|
82
|
+
And I should find the tests quick link
|
|
83
|
+
And I should find the config quick link
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```gherkin:es
|
|
87
|
+
Scenario: Pagina home de DevTools tiene links rapidos
|
|
88
|
+
|
|
89
|
+
Given estoy logueado como usuario developer
|
|
90
|
+
And navego a /devtools
|
|
91
|
+
Then deberia encontrar el contenedor de la pagina home
|
|
92
|
+
And deberia encontrar el link rapido a style gallery
|
|
93
|
+
And deberia encontrar el link rapido a tests
|
|
94
|
+
And deberia encontrar el link rapido a config
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Expected Results
|
|
98
|
+
- `devtools-home-page` selector exists
|
|
99
|
+
- `devtools-home-style-link` selector exists
|
|
100
|
+
- `devtools-home-tests-link` selector exists
|
|
101
|
+
- `devtools-home-config-link` selector exists
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## @test SEL_DEVT_003: Style Gallery Page
|
|
106
|
+
|
|
107
|
+
### Metadata
|
|
108
|
+
- **Priority:** Medium
|
|
109
|
+
- **Type:** Selector Validation
|
|
110
|
+
- **Tags:** devtools, style, gallery, tabs
|
|
111
|
+
- **Grep:** `@ui-selectors` `@SEL_DEVT_003`
|
|
112
|
+
- **Status:** Active - 8 tests
|
|
113
|
+
|
|
114
|
+
```gherkin:en
|
|
115
|
+
Scenario: DevTools style gallery has all tabs and content
|
|
116
|
+
|
|
117
|
+
Given I am logged in as a developer user
|
|
118
|
+
And I navigate to /devtools/style
|
|
119
|
+
Then I should find the style page container
|
|
120
|
+
And I should find the components tab
|
|
121
|
+
And I should find the field types tab
|
|
122
|
+
And I should find the theme tab
|
|
123
|
+
And I should find the guidelines tab
|
|
124
|
+
And I should find the component gallery (default tab)
|
|
125
|
+
When I click the field types tab
|
|
126
|
+
Then I should find the field types content
|
|
127
|
+
When I click the theme tab
|
|
128
|
+
Then I should find the theme preview
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
```gherkin:es
|
|
132
|
+
Scenario: Style gallery de DevTools tiene todas las tabs y contenido
|
|
133
|
+
|
|
134
|
+
Given estoy logueado como usuario developer
|
|
135
|
+
And navego a /devtools/style
|
|
136
|
+
Then deberia encontrar el contenedor de la pagina style
|
|
137
|
+
And deberia encontrar la tab de components
|
|
138
|
+
And deberia encontrar la tab de field types
|
|
139
|
+
And deberia encontrar la tab de theme
|
|
140
|
+
And deberia encontrar la tab de guidelines
|
|
141
|
+
And deberia encontrar la galeria de componentes (tab por defecto)
|
|
142
|
+
When hago click en la tab de field types
|
|
143
|
+
Then deberia encontrar el contenido de field types
|
|
144
|
+
When hago click en la tab de theme
|
|
145
|
+
Then deberia encontrar el preview del tema
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Expected Results
|
|
149
|
+
- `devtools-style-page` selector exists
|
|
150
|
+
- `devtools-style-tab-components` selector exists
|
|
151
|
+
- `devtools-style-tab-fieldtypes` selector exists
|
|
152
|
+
- `devtools-style-tab-theme` selector exists
|
|
153
|
+
- `devtools-style-tab-guidelines` selector exists
|
|
154
|
+
- `devtools-style-component-gallery` selector exists
|
|
155
|
+
- `devtools-style-fieldtypes` selector exists (when tab clicked)
|
|
156
|
+
- `devtools-style-theme-preview` selector exists (when tab clicked)
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## @test SEL_DEVT_004: Config Viewer Page
|
|
161
|
+
|
|
162
|
+
### Metadata
|
|
163
|
+
- **Priority:** Medium
|
|
164
|
+
- **Type:** Selector Validation
|
|
165
|
+
- **Tags:** devtools, config, viewer, tabs
|
|
166
|
+
- **Grep:** `@ui-selectors` `@SEL_DEVT_004`
|
|
167
|
+
- **Status:** Active - 8 tests
|
|
168
|
+
|
|
169
|
+
```gherkin:en
|
|
170
|
+
Scenario: DevTools config viewer has all tabs and actions
|
|
171
|
+
|
|
172
|
+
Given I am logged in as a developer user
|
|
173
|
+
And I navigate to /devtools/config
|
|
174
|
+
Then I should find the config page container
|
|
175
|
+
And I should find the config viewer container
|
|
176
|
+
And I should find the theme tab
|
|
177
|
+
And I should find the entities tab
|
|
178
|
+
And I should find the theme content (default tab)
|
|
179
|
+
And I should find the copy theme button
|
|
180
|
+
When I click the entities tab
|
|
181
|
+
Then I should find the entities content
|
|
182
|
+
And I should find the copy entities button
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
```gherkin:es
|
|
186
|
+
Scenario: Config viewer de DevTools tiene todas las tabs y acciones
|
|
187
|
+
|
|
188
|
+
Given estoy logueado como usuario developer
|
|
189
|
+
And navego a /devtools/config
|
|
190
|
+
Then deberia encontrar el contenedor de la pagina config
|
|
191
|
+
And deberia encontrar el contenedor del config viewer
|
|
192
|
+
And deberia encontrar la tab de theme
|
|
193
|
+
And deberia encontrar la tab de entities
|
|
194
|
+
And deberia encontrar el contenido de theme (tab por defecto)
|
|
195
|
+
And deberia encontrar el boton de copiar theme
|
|
196
|
+
When hago click en la tab de entities
|
|
197
|
+
Then deberia encontrar el contenido de entities
|
|
198
|
+
And deberia encontrar el boton de copiar entities
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Expected Results
|
|
202
|
+
- `devtools-config-page` selector exists
|
|
203
|
+
- `devtools-config-viewer` selector exists
|
|
204
|
+
- `devtools-config-tab-theme` selector exists
|
|
205
|
+
- `devtools-config-tab-entities` selector exists
|
|
206
|
+
- `devtools-config-theme-content` selector exists
|
|
207
|
+
- `devtools-config-copy-theme` selector exists
|
|
208
|
+
- `devtools-config-entities-content` selector exists (when tab clicked)
|
|
209
|
+
- `devtools-config-copy-entities` selector exists (when tab clicked)
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## @test SEL_DEVT_005: Test Cases Page
|
|
214
|
+
|
|
215
|
+
### Metadata
|
|
216
|
+
- **Priority:** Medium
|
|
217
|
+
- **Type:** Selector Validation
|
|
218
|
+
- **Tags:** devtools, tests, viewer
|
|
219
|
+
- **Grep:** `@ui-selectors` `@SEL_DEVT_005`
|
|
220
|
+
- **Status:** Active - 3 tests
|
|
221
|
+
|
|
222
|
+
```gherkin:en
|
|
223
|
+
Scenario: DevTools test cases page has viewer components
|
|
224
|
+
|
|
225
|
+
Given I am logged in as a developer user
|
|
226
|
+
And I navigate to /devtools/tests
|
|
227
|
+
Then I should find the tests page container
|
|
228
|
+
And I should find the tests viewer container
|
|
229
|
+
And I should find the tests tree
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
```gherkin:es
|
|
233
|
+
Scenario: Pagina test cases de DevTools tiene componentes del viewer
|
|
234
|
+
|
|
235
|
+
Given estoy logueado como usuario developer
|
|
236
|
+
And navego a /devtools/tests
|
|
237
|
+
Then deberia encontrar el contenedor de la pagina tests
|
|
238
|
+
And deberia encontrar el contenedor del tests viewer
|
|
239
|
+
And deberia encontrar el arbol de tests
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Expected Results
|
|
243
|
+
- `devtools-tests-page` selector exists
|
|
244
|
+
- `devtools-tests-viewer` selector exists
|
|
245
|
+
- `devtools-tests-tree` selector exists
|
|
246
|
+
|
|
247
|
+
### Notes
|
|
248
|
+
Conditional states (loading, empty, error) are not tested in selector validation.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## @test SEL_DEVT_006: Test Coverage Dashboard
|
|
253
|
+
|
|
254
|
+
### Metadata
|
|
255
|
+
- **Priority:** Medium
|
|
256
|
+
- **Type:** Selector Validation
|
|
257
|
+
- **Tags:** devtools, tests, dashboard, coverage
|
|
258
|
+
- **Grep:** `@ui-selectors` `@SEL_DEVT_006`
|
|
259
|
+
- **Status:** Active - 9 tests
|
|
260
|
+
|
|
261
|
+
```gherkin:en
|
|
262
|
+
Scenario: DevTools test coverage dashboard has all components
|
|
263
|
+
|
|
264
|
+
Given I am logged in as a developer user
|
|
265
|
+
And I navigate to /devtools/tests
|
|
266
|
+
Then I should find the dashboard container
|
|
267
|
+
And I should find the dashboard stats container
|
|
268
|
+
And I should find the features stat card
|
|
269
|
+
And I should find the flows stat card
|
|
270
|
+
And I should find the files stat card
|
|
271
|
+
And I should find the tags stat card
|
|
272
|
+
And I should find the coverage gaps container
|
|
273
|
+
When I select a test file from the tree
|
|
274
|
+
Then I should find the dashboard button in sidebar
|
|
275
|
+
When I click the dashboard button
|
|
276
|
+
Then I should see the dashboard again
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
```gherkin:es
|
|
280
|
+
Scenario: Dashboard de cobertura de DevTools tiene todos los componentes
|
|
281
|
+
|
|
282
|
+
Given estoy logueado como usuario developer
|
|
283
|
+
And navego a /devtools/tests
|
|
284
|
+
Then deberia encontrar el contenedor del dashboard
|
|
285
|
+
And deberia encontrar el contenedor de estadisticas
|
|
286
|
+
And deberia encontrar la tarjeta de estadisticas de features
|
|
287
|
+
And deberia encontrar la tarjeta de estadisticas de flows
|
|
288
|
+
And deberia encontrar la tarjeta de estadisticas de files
|
|
289
|
+
And deberia encontrar la tarjeta de estadisticas de tags
|
|
290
|
+
And deberia encontrar el contenedor de gaps de cobertura
|
|
291
|
+
When selecciono un archivo de test del arbol
|
|
292
|
+
Then deberia encontrar el boton de dashboard en el sidebar
|
|
293
|
+
When hago click en el boton de dashboard
|
|
294
|
+
Then deberia ver el dashboard nuevamente
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Expected Results
|
|
298
|
+
- `devtools-tests-dashboard` selector exists (when no file selected)
|
|
299
|
+
- `devtools-tests-dashboard-stats` selector exists
|
|
300
|
+
- `devtools-tests-dashboard-stat-features` selector exists
|
|
301
|
+
- `devtools-tests-dashboard-stat-flows` selector exists
|
|
302
|
+
- `devtools-tests-dashboard-stat-files` selector exists
|
|
303
|
+
- `devtools-tests-dashboard-stat-tags` selector exists
|
|
304
|
+
- `devtools-tests-dashboard-gaps` selector exists
|
|
305
|
+
- `devtools-tests-dashboard-button` selector exists (when file selected)
|
|
306
|
+
- Dashboard button returns to dashboard view
|