@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,13 +14,20 @@
|
|
|
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_DEVT_001: Navigation Structure
|
|
19
|
+
* - SEL_DEVT_002: Home Page
|
|
20
|
+
* - SEL_DEVT_003: Style Gallery Page
|
|
21
|
+
* - SEL_DEVT_004: Config Viewer Page
|
|
22
|
+
* - SEL_DEVT_005: Test Cases Page
|
|
23
|
+
*
|
|
17
24
|
* IMPORTANT: DevTools is only accessible to users with 'developer' app role.
|
|
18
25
|
*/
|
|
19
26
|
|
|
20
|
-
import { DevtoolsPOM } from '
|
|
21
|
-
import { loginAsDefaultDeveloper } from '
|
|
27
|
+
import { DevtoolsPOM } from '../../../src/features/DevtoolsPOM'
|
|
28
|
+
import { loginAsDefaultDeveloper } from '../../../src/session-helpers'
|
|
22
29
|
|
|
23
|
-
describe('DevTools Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
30
|
+
describe('DevTools Selectors Validation', { tags: ['@ui-selectors', '@devtools'] }, () => {
|
|
24
31
|
const dev = DevtoolsPOM.create()
|
|
25
32
|
|
|
26
33
|
beforeEach(() => {
|
|
@@ -28,9 +35,9 @@ describe('DevTools Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
28
35
|
})
|
|
29
36
|
|
|
30
37
|
// ============================================
|
|
31
|
-
// NAVIGATION STRUCTURE (8 selectors)
|
|
38
|
+
// SEL_DEVT_001: NAVIGATION STRUCTURE (8 selectors)
|
|
32
39
|
// ============================================
|
|
33
|
-
describe('Navigation Structure', () => {
|
|
40
|
+
describe('SEL_DEVT_001: Navigation Structure', { tags: '@SEL_DEVT_001' }, () => {
|
|
34
41
|
beforeEach(() => {
|
|
35
42
|
cy.visit('/devtools', { timeout: 60000, failOnStatusCode: false })
|
|
36
43
|
cy.url().should('include', '/devtools')
|
|
@@ -70,9 +77,9 @@ describe('DevTools Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
70
77
|
})
|
|
71
78
|
|
|
72
79
|
// ============================================
|
|
73
|
-
// HOME PAGE (4 selectors)
|
|
80
|
+
// SEL_DEVT_002: HOME PAGE (4 selectors)
|
|
74
81
|
// ============================================
|
|
75
|
-
describe('Home Page', () => {
|
|
82
|
+
describe('SEL_DEVT_002: Home Page', { tags: '@SEL_DEVT_002' }, () => {
|
|
76
83
|
beforeEach(() => {
|
|
77
84
|
cy.visit('/devtools', { timeout: 60000, failOnStatusCode: false })
|
|
78
85
|
cy.url().should('include', '/devtools')
|
|
@@ -96,9 +103,9 @@ describe('DevTools Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
96
103
|
})
|
|
97
104
|
|
|
98
105
|
// ============================================
|
|
99
|
-
// STYLE GALLERY PAGE (8 selectors)
|
|
106
|
+
// SEL_DEVT_003: STYLE GALLERY PAGE (8 selectors)
|
|
100
107
|
// ============================================
|
|
101
|
-
describe('Style Gallery Page', () => {
|
|
108
|
+
describe('SEL_DEVT_003: Style Gallery Page', { tags: '@SEL_DEVT_003' }, () => {
|
|
102
109
|
beforeEach(() => {
|
|
103
110
|
cy.visit('/devtools/style', { timeout: 60000, failOnStatusCode: false })
|
|
104
111
|
cy.url().should('include', '/devtools/style')
|
|
@@ -140,9 +147,9 @@ describe('DevTools Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
140
147
|
})
|
|
141
148
|
|
|
142
149
|
// ============================================
|
|
143
|
-
// CONFIG VIEWER PAGE (8 selectors)
|
|
150
|
+
// SEL_DEVT_004: CONFIG VIEWER PAGE (8 selectors)
|
|
144
151
|
// ============================================
|
|
145
|
-
describe('Config Viewer Page', () => {
|
|
152
|
+
describe('SEL_DEVT_004: Config Viewer Page', { tags: '@SEL_DEVT_004' }, () => {
|
|
146
153
|
beforeEach(() => {
|
|
147
154
|
cy.visit('/devtools/config', { timeout: 60000, failOnStatusCode: false })
|
|
148
155
|
cy.url().should('include', '/devtools/config')
|
|
@@ -186,10 +193,10 @@ describe('DevTools Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
186
193
|
})
|
|
187
194
|
|
|
188
195
|
// ============================================
|
|
189
|
-
// TEST CASES PAGE (3 selectors)
|
|
190
|
-
// NOTE:
|
|
196
|
+
// SEL_DEVT_005: TEST CASES PAGE (3 selectors)
|
|
197
|
+
// NOTE: Tests page components may not implement all data-cy selectors
|
|
191
198
|
// ============================================
|
|
192
|
-
describe('Test Cases Page', () => {
|
|
199
|
+
describe('SEL_DEVT_005: Test Cases Page', { tags: '@SEL_DEVT_005' }, () => {
|
|
193
200
|
beforeEach(() => {
|
|
194
201
|
cy.visit('/devtools/tests', { timeout: 60000, failOnStatusCode: false })
|
|
195
202
|
cy.url().should('include', '/devtools/tests')
|
|
@@ -207,4 +214,60 @@ describe('DevTools Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
|
207
214
|
cy.get(dev.selectors.testsTree).should('exist')
|
|
208
215
|
})
|
|
209
216
|
})
|
|
217
|
+
|
|
218
|
+
// ============================================
|
|
219
|
+
// SEL_DEVT_006: TEST COVERAGE DASHBOARD (9 selectors)
|
|
220
|
+
// ============================================
|
|
221
|
+
describe('SEL_DEVT_006: Test Coverage Dashboard', { tags: '@SEL_DEVT_006' }, () => {
|
|
222
|
+
beforeEach(() => {
|
|
223
|
+
cy.visit('/devtools/tests', { timeout: 60000, failOnStatusCode: false })
|
|
224
|
+
cy.url().should('include', '/devtools/tests')
|
|
225
|
+
})
|
|
226
|
+
|
|
227
|
+
it('should find dashboard container (no file selected)', () => {
|
|
228
|
+
cy.get(dev.selectors.testsDashboard).should('exist')
|
|
229
|
+
})
|
|
230
|
+
|
|
231
|
+
it('should find dashboard stats container', () => {
|
|
232
|
+
cy.get(dev.selectors.testsDashboardStats).should('exist')
|
|
233
|
+
})
|
|
234
|
+
|
|
235
|
+
it('should find features stat card', () => {
|
|
236
|
+
cy.get(dev.selectors.testsDashboardStatFeatures).should('exist')
|
|
237
|
+
})
|
|
238
|
+
|
|
239
|
+
it('should find flows stat card', () => {
|
|
240
|
+
cy.get(dev.selectors.testsDashboardStatFlows).should('exist')
|
|
241
|
+
})
|
|
242
|
+
|
|
243
|
+
it('should find files stat card', () => {
|
|
244
|
+
cy.get(dev.selectors.testsDashboardStatFiles).should('exist')
|
|
245
|
+
})
|
|
246
|
+
|
|
247
|
+
it('should find tags stat card', () => {
|
|
248
|
+
cy.get(dev.selectors.testsDashboardStatTags).should('exist')
|
|
249
|
+
})
|
|
250
|
+
|
|
251
|
+
it('should find coverage gaps container', () => {
|
|
252
|
+
cy.get(dev.selectors.testsDashboardGaps).should('exist')
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
it('should find dashboard button when file selected', () => {
|
|
256
|
+
// First expand a folder to reveal files
|
|
257
|
+
cy.get(dev.selectors.testsTree).find('[data-cy*="folder"]').first().click()
|
|
258
|
+
// Then select a file
|
|
259
|
+
cy.get(dev.selectors.testsTree).find('[data-cy*="file"]').first().click()
|
|
260
|
+
cy.get(dev.selectors.testsDashboardButton).should('exist')
|
|
261
|
+
})
|
|
262
|
+
|
|
263
|
+
it('should return to dashboard when button clicked', () => {
|
|
264
|
+
// Expand folder and select a file
|
|
265
|
+
cy.get(dev.selectors.testsTree).find('[data-cy*="folder"]').first().click()
|
|
266
|
+
cy.get(dev.selectors.testsTree).find('[data-cy*="file"]').first().click()
|
|
267
|
+
// Click dashboard button
|
|
268
|
+
cy.get(dev.selectors.testsDashboardButton).click()
|
|
269
|
+
// Dashboard should be visible again
|
|
270
|
+
cy.get(dev.selectors.testsDashboard).should('exist')
|
|
271
|
+
})
|
|
272
|
+
})
|
|
210
273
|
})
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature: Global Search UI Selectors Validation
|
|
3
|
+
priority: medium
|
|
4
|
+
tags: [selectors, search, modal, ui-validation]
|
|
5
|
+
grepTags: [ui-selectors, search, SEL_GSRCH_001, SEL_GSRCH_002, SEL_GSRCH_003]
|
|
6
|
+
coverage: 3
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Global Search UI Selectors Validation
|
|
10
|
+
|
|
11
|
+
> Validates that global search component selectors exist in the DOM. This is a lightweight test that ONLY checks selector presence, not functionality. Most selectors require the search modal to be open.
|
|
12
|
+
|
|
13
|
+
## @test SEL_GSRCH_001: Search Trigger
|
|
14
|
+
|
|
15
|
+
### Metadata
|
|
16
|
+
- **Priority:** Medium
|
|
17
|
+
- **Type:** Selector Validation
|
|
18
|
+
- **Tags:** search, trigger, button
|
|
19
|
+
- **Grep:** `@ui-selectors` `@SEL_GSRCH_001`
|
|
20
|
+
- **Status:** Skipped - selector not implemented
|
|
21
|
+
|
|
22
|
+
```gherkin:en
|
|
23
|
+
Scenario: Search trigger button is accessible
|
|
24
|
+
|
|
25
|
+
Given I am logged in as a valid user
|
|
26
|
+
And I navigate to the dashboard
|
|
27
|
+
Then I should find the search trigger button
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```gherkin:es
|
|
31
|
+
Scenario: Boton de trigger de busqueda es accesible
|
|
32
|
+
|
|
33
|
+
Given estoy logueado como usuario valido
|
|
34
|
+
And navego al dashboard
|
|
35
|
+
Then deberia encontrar el boton de trigger de busqueda
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Expected Results
|
|
39
|
+
- `global-search-trigger` selector exists
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## @test SEL_GSRCH_002: Search Modal (when open)
|
|
44
|
+
|
|
45
|
+
### Metadata
|
|
46
|
+
- **Priority:** High
|
|
47
|
+
- **Type:** Selector Validation
|
|
48
|
+
- **Tags:** search, modal, input
|
|
49
|
+
- **Grep:** `@ui-selectors` `@SEL_GSRCH_002`
|
|
50
|
+
- **Status:** Partial - 1 passing, 3 skipped
|
|
51
|
+
|
|
52
|
+
```gherkin:en
|
|
53
|
+
Scenario: Search modal has required components when opened
|
|
54
|
+
|
|
55
|
+
Given I am logged in as a valid user
|
|
56
|
+
And I navigate to the dashboard
|
|
57
|
+
When I press Cmd+K to open the search modal
|
|
58
|
+
Then I should find the search modal container
|
|
59
|
+
And I should find the search input
|
|
60
|
+
And I should find the search results container (when query entered)
|
|
61
|
+
And I should find search result items (when results available)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```gherkin:es
|
|
65
|
+
Scenario: Modal de busqueda tiene componentes requeridos cuando esta abierto
|
|
66
|
+
|
|
67
|
+
Given estoy logueado como usuario valido
|
|
68
|
+
And navego al dashboard
|
|
69
|
+
When presiono Cmd+K para abrir el modal de busqueda
|
|
70
|
+
Then deberia encontrar el contenedor del modal de busqueda
|
|
71
|
+
And deberia encontrar el input de busqueda
|
|
72
|
+
And deberia encontrar el contenedor de resultados (cuando hay query)
|
|
73
|
+
And deberia encontrar items de resultados (cuando hay resultados)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Expected Results
|
|
77
|
+
- `global-search-modal` skipped - selector not implemented
|
|
78
|
+
- `global-search-input` selector exists (WORKING)
|
|
79
|
+
- `global-search-results` skipped - requires search query
|
|
80
|
+
- `global-search-result` skipped - requires results
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## @test SEL_GSRCH_003: Search Modal (opened via click)
|
|
85
|
+
|
|
86
|
+
### Metadata
|
|
87
|
+
- **Priority:** Low
|
|
88
|
+
- **Type:** Selector Validation
|
|
89
|
+
- **Tags:** search, modal, click
|
|
90
|
+
- **Grep:** `@ui-selectors` `@SEL_GSRCH_003`
|
|
91
|
+
- **Status:** Skipped - trigger selector not implemented
|
|
92
|
+
|
|
93
|
+
```gherkin:en
|
|
94
|
+
Scenario: Search modal opens via click on trigger
|
|
95
|
+
|
|
96
|
+
Given I am logged in as a valid user
|
|
97
|
+
And I navigate to the dashboard
|
|
98
|
+
When I click on the search trigger button
|
|
99
|
+
Then the search modal should open
|
|
100
|
+
And I should find the search input
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
```gherkin:es
|
|
104
|
+
Scenario: Modal de busqueda se abre via click en trigger
|
|
105
|
+
|
|
106
|
+
Given estoy logueado como usuario valido
|
|
107
|
+
And navego al dashboard
|
|
108
|
+
When hago click en el boton de trigger de busqueda
|
|
109
|
+
Then el modal de busqueda deberia abrirse
|
|
110
|
+
And deberia encontrar el input de busqueda
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Expected Results
|
|
114
|
+
- Search modal opens when trigger is clicked
|
|
115
|
+
- `global-search-input` selector exists inside modal
|
|
@@ -14,13 +14,18 @@
|
|
|
14
14
|
* - Open search modal
|
|
15
15
|
* - Assert elements exist in DOM (no actual search)
|
|
16
16
|
*
|
|
17
|
+
* Test IDs:
|
|
18
|
+
* - SEL_GSRCH_001: Search Trigger
|
|
19
|
+
* - SEL_GSRCH_002: Search Modal (when open)
|
|
20
|
+
* - SEL_GSRCH_003: Search Modal (opened via click)
|
|
21
|
+
*
|
|
17
22
|
* NOTE: Search modal must be opened via keyboard shortcut or trigger button.
|
|
18
23
|
*/
|
|
19
24
|
|
|
20
|
-
import { cySelector } from '
|
|
21
|
-
import {
|
|
25
|
+
import { cySelector } from '../../../src/selectors'
|
|
26
|
+
import { loginAsDefaultDeveloper } from '../../../src/session-helpers'
|
|
22
27
|
|
|
23
|
-
describe('Global Search Selectors Validation', { tags: ['@ui-selectors'] }, () => {
|
|
28
|
+
describe('Global Search Selectors Validation', { tags: ['@ui-selectors', '@search'] }, () => {
|
|
24
29
|
// Define selectors locally since globalSearch might not be in selectors.ts
|
|
25
30
|
const selectors = {
|
|
26
31
|
modal: cySelector('globalSearch.modal'),
|
|
@@ -31,25 +36,25 @@ describe('Global Search Selectors Validation', { tags: ['@ui-selectors'] }, () =
|
|
|
31
36
|
}
|
|
32
37
|
|
|
33
38
|
beforeEach(() => {
|
|
34
|
-
|
|
39
|
+
loginAsDefaultDeveloper()
|
|
35
40
|
cy.visit('/dashboard', { timeout: 60000, failOnStatusCode: false })
|
|
36
41
|
cy.url().should('include', '/dashboard')
|
|
37
42
|
})
|
|
38
43
|
|
|
39
44
|
// ============================================
|
|
40
|
-
// SEARCH TRIGGER (1 selector)
|
|
45
|
+
// SEL_GSRCH_001: SEARCH TRIGGER (1 selector)
|
|
41
46
|
// ============================================
|
|
42
|
-
describe('Search Trigger', () => {
|
|
47
|
+
describe('SEL_GSRCH_001: Search Trigger', { tags: '@SEL_GSRCH_001' }, () => {
|
|
43
48
|
it.skip('should find search trigger button (selector not implemented)', () => {
|
|
44
49
|
cy.get(selectors.trigger).should('exist')
|
|
45
50
|
})
|
|
46
51
|
})
|
|
47
52
|
|
|
48
53
|
// ============================================
|
|
49
|
-
// SEARCH MODAL (4 selectors)
|
|
54
|
+
// SEL_GSRCH_002: SEARCH MODAL (4 selectors)
|
|
50
55
|
// These require the modal to be open
|
|
51
56
|
// ============================================
|
|
52
|
-
describe('Search Modal (when open)', () => {
|
|
57
|
+
describe('SEL_GSRCH_002: Search Modal (when open)', { tags: '@SEL_GSRCH_002' }, () => {
|
|
53
58
|
beforeEach(() => {
|
|
54
59
|
// Try to open search modal via keyboard shortcut (Cmd+K or Ctrl+K)
|
|
55
60
|
cy.get('body').type('{meta}k')
|
|
@@ -75,9 +80,9 @@ describe('Global Search Selectors Validation', { tags: ['@ui-selectors'] }, () =
|
|
|
75
80
|
})
|
|
76
81
|
|
|
77
82
|
// ============================================
|
|
78
|
-
//
|
|
83
|
+
// SEL_GSRCH_003: SEARCH MODAL VIA CLICK
|
|
79
84
|
// ============================================
|
|
80
|
-
describe('Search Modal (opened via click)', () => {
|
|
85
|
+
describe('SEL_GSRCH_003: Search Modal (opened via click)', { tags: '@SEL_GSRCH_003' }, () => {
|
|
81
86
|
it.skip('should open search modal when clicking trigger (trigger selector not implemented)', () => {
|
|
82
87
|
cy.get(selectors.trigger).click()
|
|
83
88
|
cy.wait(500)
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature: Pages Block Editor UI Selectors Validation
|
|
3
|
+
priority: high
|
|
4
|
+
tags: [selectors, pages, editor, page-builder, ui-validation]
|
|
5
|
+
grepTags: [ui-selectors, pages, editor, SEL_PGED_001, SEL_PGED_002, SEL_PGED_003, SEL_PGED_004, SEL_PGED_005, SEL_PGED_006]
|
|
6
|
+
coverage: 6
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Pages Block Editor UI Selectors Validation
|
|
10
|
+
|
|
11
|
+
> Validates selectors specific to the Page Builder including page settings, SEO, and locale features. These tests ensure the page editor has all required UI elements.
|
|
12
|
+
|
|
13
|
+
## @test SEL_PGED_001: Pages List Page Selectors
|
|
14
|
+
|
|
15
|
+
### Metadata
|
|
16
|
+
- **Priority:** High
|
|
17
|
+
- **Type:** Selector Validation
|
|
18
|
+
- **Tags:** pages, list, table
|
|
19
|
+
- **Grep:** `@ui-selectors` `@SEL_PGED_001`
|
|
20
|
+
- **Status:** Active
|
|
21
|
+
|
|
22
|
+
```gherkin:en
|
|
23
|
+
Scenario: Pages list has required selectors
|
|
24
|
+
|
|
25
|
+
Given I am logged in as a valid user
|
|
26
|
+
And I navigate to the pages list
|
|
27
|
+
Then I should find the pages table container
|
|
28
|
+
And I should find the add page button
|
|
29
|
+
And I should find at least one page row
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```gherkin:es
|
|
33
|
+
Scenario: Lista de paginas tiene selectores requeridos
|
|
34
|
+
|
|
35
|
+
Given estoy logueado como usuario valido
|
|
36
|
+
And navego a la lista de paginas
|
|
37
|
+
Then deberia encontrar el contenedor de tabla de paginas
|
|
38
|
+
And deberia encontrar el boton de agregar pagina
|
|
39
|
+
And deberia encontrar al menos una fila de pagina
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## @test SEL_PGED_002: Block Editor Core Selectors
|
|
45
|
+
|
|
46
|
+
### Metadata
|
|
47
|
+
- **Priority:** High
|
|
48
|
+
- **Type:** Selector Validation
|
|
49
|
+
- **Tags:** pages, editor, core
|
|
50
|
+
- **Grep:** `@ui-selectors` `@SEL_PGED_002`
|
|
51
|
+
- **Status:** Active
|
|
52
|
+
|
|
53
|
+
```gherkin:en
|
|
54
|
+
Scenario: Page editor has core selectors
|
|
55
|
+
|
|
56
|
+
Given I am logged in as a valid user
|
|
57
|
+
And I create a new page
|
|
58
|
+
Then I should find the editor container
|
|
59
|
+
And I should find the title input
|
|
60
|
+
And I should find the slug input
|
|
61
|
+
And I should find the save button
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```gherkin:es
|
|
65
|
+
Scenario: Editor de paginas tiene selectores core
|
|
66
|
+
|
|
67
|
+
Given estoy logueado como usuario valido
|
|
68
|
+
And creo una nueva pagina
|
|
69
|
+
Then deberia encontrar el contenedor del editor
|
|
70
|
+
And deberia encontrar el input de titulo
|
|
71
|
+
And deberia encontrar el input de slug
|
|
72
|
+
And deberia encontrar el boton de guardar
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## @test SEL_PGED_003: Page Settings Selectors
|
|
78
|
+
|
|
79
|
+
### Metadata
|
|
80
|
+
- **Priority:** Medium
|
|
81
|
+
- **Type:** Selector Validation
|
|
82
|
+
- **Tags:** pages, settings, seo, locale
|
|
83
|
+
- **Grep:** `@ui-selectors` `@SEL_PGED_003`
|
|
84
|
+
- **Status:** Partial - 2 passing, 2 skipped (SEO not implemented)
|
|
85
|
+
|
|
86
|
+
```gherkin:en
|
|
87
|
+
Scenario: Page editor has settings and SEO selectors
|
|
88
|
+
|
|
89
|
+
Given I am logged in as a valid user
|
|
90
|
+
And I edit an existing page
|
|
91
|
+
When I click on the fields tab
|
|
92
|
+
Then I should find the entity fields sidebar
|
|
93
|
+
And I should find the locale selector
|
|
94
|
+
And the SEO trigger should exist (skipped - not implemented)
|
|
95
|
+
And the SEO fields should exist when expanded (skipped - not implemented)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```gherkin:es
|
|
99
|
+
Scenario: Editor de paginas tiene selectores de configuracion y SEO
|
|
100
|
+
|
|
101
|
+
Given estoy logueado como usuario valido
|
|
102
|
+
And edito una pagina existente
|
|
103
|
+
When hago click en la tab de campos
|
|
104
|
+
Then deberia encontrar el sidebar de campos de entidad
|
|
105
|
+
And deberia encontrar el selector de locale
|
|
106
|
+
And el trigger de SEO deberia existir (skipped - no implementado)
|
|
107
|
+
And los campos de SEO deberian existir cuando se expanden (skipped - no implementado)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## @test SEL_PGED_004: Block Picker Selectors
|
|
113
|
+
|
|
114
|
+
### Metadata
|
|
115
|
+
- **Priority:** High
|
|
116
|
+
- **Type:** Selector Validation
|
|
117
|
+
- **Tags:** pages, blocks, picker
|
|
118
|
+
- **Grep:** `@ui-selectors` `@SEL_PGED_004`
|
|
119
|
+
- **Status:** Active
|
|
120
|
+
|
|
121
|
+
```gherkin:en
|
|
122
|
+
Scenario: Page editor has block picker selectors
|
|
123
|
+
|
|
124
|
+
Given I am logged in as a valid user
|
|
125
|
+
And I create a new page
|
|
126
|
+
Then I should find the block picker container
|
|
127
|
+
And I should find the hero block item
|
|
128
|
+
And I should find the add hero block button
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
```gherkin:es
|
|
132
|
+
Scenario: Editor de paginas tiene selectores de block picker
|
|
133
|
+
|
|
134
|
+
Given estoy logueado como usuario valido
|
|
135
|
+
And creo una nueva pagina
|
|
136
|
+
Then deberia encontrar el contenedor del block picker
|
|
137
|
+
And deberia encontrar el item de bloque hero
|
|
138
|
+
And deberia encontrar el boton de agregar bloque hero
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## @test SEL_PGED_005: Block Canvas and Settings
|
|
144
|
+
|
|
145
|
+
### Metadata
|
|
146
|
+
- **Priority:** High
|
|
147
|
+
- **Type:** Selector Validation
|
|
148
|
+
- **Tags:** pages, canvas, settings
|
|
149
|
+
- **Grep:** `@ui-selectors` `@SEL_PGED_005`
|
|
150
|
+
- **Status:** Active
|
|
151
|
+
|
|
152
|
+
```gherkin:en
|
|
153
|
+
Scenario: Page editor canvas and settings work
|
|
154
|
+
|
|
155
|
+
Given I am logged in as a valid user
|
|
156
|
+
And I create a new page
|
|
157
|
+
Then I should find the empty state when no blocks added
|
|
158
|
+
When I add a hero block
|
|
159
|
+
Then I should find the block canvas
|
|
160
|
+
And I should find the settings panel
|
|
161
|
+
And I should find the content and design tabs
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
```gherkin:es
|
|
165
|
+
Scenario: Canvas y configuracion del editor de paginas funcionan
|
|
166
|
+
|
|
167
|
+
Given estoy logueado como usuario valido
|
|
168
|
+
And creo una nueva pagina
|
|
169
|
+
Then deberia encontrar el estado vacio cuando no hay bloques
|
|
170
|
+
When agrego un bloque hero
|
|
171
|
+
Then deberia encontrar el canvas de bloques
|
|
172
|
+
And deberia encontrar el panel de configuracion
|
|
173
|
+
And deberia encontrar las tabs de contenido y diseno
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## @test SEL_PGED_006: Edit Existing Page
|
|
179
|
+
|
|
180
|
+
### Metadata
|
|
181
|
+
- **Priority:** High
|
|
182
|
+
- **Type:** Selector Validation
|
|
183
|
+
- **Tags:** pages, edit, existing
|
|
184
|
+
- **Grep:** `@ui-selectors` `@SEL_PGED_006`
|
|
185
|
+
- **Status:** Active
|
|
186
|
+
|
|
187
|
+
```gherkin:en
|
|
188
|
+
Scenario: Editing existing page loads editor correctly
|
|
189
|
+
|
|
190
|
+
Given I am logged in as a valid user
|
|
191
|
+
And I navigate to the pages list
|
|
192
|
+
When I select an existing page to edit
|
|
193
|
+
Then I should find the editor container
|
|
194
|
+
And I should find the title input with existing content
|
|
195
|
+
And I should find the save button
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
```gherkin:es
|
|
199
|
+
Scenario: Editar pagina existente carga el editor correctamente
|
|
200
|
+
|
|
201
|
+
Given estoy logueado como usuario valido
|
|
202
|
+
And navego a la lista de paginas
|
|
203
|
+
When selecciono una pagina existente para editar
|
|
204
|
+
Then deberia encontrar el contenedor del editor
|
|
205
|
+
And deberia encontrar el input de titulo con contenido existente
|
|
206
|
+
And deberia encontrar el boton de guardar
|
|
207
|
+
```
|
|
@@ -14,22 +14,39 @@
|
|
|
14
14
|
* Scope:
|
|
15
15
|
* - Only login and navigate
|
|
16
16
|
* - Assert elements exist in DOM (no full CRUD operations)
|
|
17
|
+
*
|
|
18
|
+
* Test IDs:
|
|
19
|
+
* - SEL_PGED_001: Pages List Page Selectors
|
|
20
|
+
* - SEL_PGED_002: Block Editor Core Selectors
|
|
21
|
+
* - SEL_PGED_003: Page Settings Selectors
|
|
22
|
+
* - SEL_PGED_004: Block Picker Selectors
|
|
23
|
+
* - SEL_PGED_005: Block Canvas and Settings
|
|
24
|
+
* - SEL_PGED_006: Edit Existing Page
|
|
17
25
|
*/
|
|
18
26
|
|
|
19
|
-
import { PageBuilderPOM } from '
|
|
20
|
-
import { PagesPOM } from '
|
|
21
|
-
import {
|
|
27
|
+
import { PageBuilderPOM } from '../../../src/features/PageBuilderPOM'
|
|
28
|
+
import { PagesPOM } from '../../../src/entities/PagesPOM'
|
|
29
|
+
import { loginAsDefaultDeveloper } from '../../../src/session-helpers'
|
|
30
|
+
|
|
31
|
+
// Team ID for developer's team (NextSpark Team)
|
|
32
|
+
const DEVELOPER_TEAM_ID = 'team-nextspark-001'
|
|
22
33
|
|
|
23
|
-
describe('Pages Block Editor Selectors Validation', { tags: ['@ui-selectors'] }, ()
|
|
24
|
-
=> {
|
|
34
|
+
describe('Pages Block Editor Selectors Validation', { tags: ['@ui-selectors', '@pages', '@editor'] }, () => {
|
|
25
35
|
const pageBuilder = PageBuilderPOM.create()
|
|
26
36
|
const pages = PagesPOM.create()
|
|
27
37
|
|
|
28
38
|
beforeEach(() => {
|
|
29
|
-
|
|
39
|
+
loginAsDefaultDeveloper()
|
|
40
|
+
// Set team context for entity API calls (pages is team-based)
|
|
41
|
+
cy.window().then((win) => {
|
|
42
|
+
win.localStorage.setItem('activeTeamId', DEVELOPER_TEAM_ID)
|
|
43
|
+
})
|
|
30
44
|
})
|
|
31
45
|
|
|
32
|
-
|
|
46
|
+
// ============================================
|
|
47
|
+
// SEL_PGED_001: PAGES LIST PAGE SELECTORS
|
|
48
|
+
// ============================================
|
|
49
|
+
describe('SEL_PGED_001: Pages List Page Selectors', { tags: '@SEL_PGED_001' }, () => {
|
|
33
50
|
beforeEach(() => {
|
|
34
51
|
pages.visitList()
|
|
35
52
|
pages.waitForList()
|
|
@@ -48,7 +65,10 @@ describe('Pages Block Editor Selectors Validation', { tags: ['@ui-selectors'] },
|
|
|
48
65
|
})
|
|
49
66
|
})
|
|
50
67
|
|
|
51
|
-
|
|
68
|
+
// ============================================
|
|
69
|
+
// SEL_PGED_002: BLOCK EDITOR CORE SELECTORS
|
|
70
|
+
// ============================================
|
|
71
|
+
describe('SEL_PGED_002: Block Editor Core Selectors', { tags: '@SEL_PGED_002' }, () => {
|
|
52
72
|
beforeEach(() => {
|
|
53
73
|
pageBuilder.visitCreate()
|
|
54
74
|
pageBuilder.waitForEditor()
|
|
@@ -71,7 +91,10 @@ describe('Pages Block Editor Selectors Validation', { tags: ['@ui-selectors'] },
|
|
|
71
91
|
})
|
|
72
92
|
})
|
|
73
93
|
|
|
74
|
-
|
|
94
|
+
// ============================================
|
|
95
|
+
// SEL_PGED_003: PAGE SETTINGS SELECTORS
|
|
96
|
+
// ============================================
|
|
97
|
+
describe('SEL_PGED_003: Page Settings Selectors', { tags: '@SEL_PGED_003' }, () => {
|
|
75
98
|
beforeEach(() => {
|
|
76
99
|
// Navigate to edit an existing page to see page settings and SEO
|
|
77
100
|
pages.visitList()
|
|
@@ -115,7 +138,10 @@ describe('Pages Block Editor Selectors Validation', { tags: ['@ui-selectors'] },
|
|
|
115
138
|
})
|
|
116
139
|
})
|
|
117
140
|
|
|
118
|
-
|
|
141
|
+
// ============================================
|
|
142
|
+
// SEL_PGED_004: BLOCK PICKER SELECTORS
|
|
143
|
+
// ============================================
|
|
144
|
+
describe('SEL_PGED_004: Block Picker Selectors', { tags: '@SEL_PGED_004' }, () => {
|
|
119
145
|
beforeEach(() => {
|
|
120
146
|
pageBuilder.visitCreate()
|
|
121
147
|
pageBuilder.waitForEditor()
|
|
@@ -131,7 +157,10 @@ describe('Pages Block Editor Selectors Validation', { tags: ['@ui-selectors'] },
|
|
|
131
157
|
})
|
|
132
158
|
})
|
|
133
159
|
|
|
134
|
-
|
|
160
|
+
// ============================================
|
|
161
|
+
// SEL_PGED_005: BLOCK CANVAS AND SETTINGS
|
|
162
|
+
// ============================================
|
|
163
|
+
describe('SEL_PGED_005: Block Canvas and Settings', { tags: '@SEL_PGED_005' }, () => {
|
|
135
164
|
beforeEach(() => {
|
|
136
165
|
pageBuilder.visitCreate()
|
|
137
166
|
pageBuilder.waitForEditor()
|
|
@@ -153,7 +182,10 @@ describe('Pages Block Editor Selectors Validation', { tags: ['@ui-selectors'] },
|
|
|
153
182
|
})
|
|
154
183
|
})
|
|
155
184
|
|
|
156
|
-
|
|
185
|
+
// ============================================
|
|
186
|
+
// SEL_PGED_006: EDIT EXISTING PAGE
|
|
187
|
+
// ============================================
|
|
188
|
+
describe('SEL_PGED_006: Edit Existing Page', { tags: '@SEL_PGED_006' }, () => {
|
|
157
189
|
it('should find editor elements when editing an existing page', () => {
|
|
158
190
|
// Get a page ID from the list
|
|
159
191
|
pages.visitList()
|