@nextsparkjs/theme-default 0.1.0-beta.20 → 0.1.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/tests/cypress/e2e/_devtools/access.bdd.md +262 -0
- package/tests/cypress/e2e/_devtools/access.cy.ts +171 -0
- package/tests/cypress/e2e/_devtools/navigation.bdd.md +261 -0
- package/tests/cypress/e2e/_devtools/navigation.cy.ts +157 -0
- package/tests/cypress/e2e/_devtools/pages.bdd.md +303 -0
- package/tests/cypress/e2e/_devtools/pages.cy.ts +184 -0
- package/tests/cypress/e2e/_docs/README.md +215 -0
- package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin-teams.narration.json +155 -0
- package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin.cy.ts +390 -0
- package/tests/cypress/e2e/_docs/tutorials/teams-system.doc.cy.ts +349 -0
- package/tests/cypress/e2e/_docs/tutorials/teams-system.narration.json +165 -0
- package/tests/cypress/e2e/_selectors/auth.cy.ts +306 -0
- package/tests/cypress/e2e/_selectors/billing.cy.ts +89 -0
- package/tests/cypress/e2e/_selectors/dashboard-mobile.cy.ts +113 -0
- package/tests/cypress/e2e/_selectors/dashboard-navigation.cy.ts +89 -0
- package/tests/cypress/e2e/_selectors/dashboard-sidebar.cy.ts +60 -0
- package/tests/cypress/e2e/_selectors/dashboard-topnav.cy.ts +146 -0
- package/tests/cypress/e2e/_selectors/devtools.cy.ts +210 -0
- package/tests/cypress/e2e/_selectors/global-search.cy.ts +88 -0
- package/tests/cypress/e2e/_selectors/pages-editor.cy.ts +179 -0
- package/tests/cypress/e2e/_selectors/posts-editor.cy.ts +282 -0
- package/tests/cypress/e2e/_selectors/public.cy.ts +112 -0
- package/tests/cypress/e2e/_selectors/settings-api-keys.cy.ts +228 -0
- package/tests/cypress/e2e/_selectors/settings-billing.cy.ts +105 -0
- package/tests/cypress/e2e/_selectors/settings-layout.cy.ts +119 -0
- package/tests/cypress/e2e/_selectors/settings-password.cy.ts +71 -0
- package/tests/cypress/e2e/_selectors/settings-profile.cy.ts +82 -0
- package/tests/cypress/e2e/_selectors/settings-teams.cy.ts +68 -0
- package/tests/cypress/e2e/_selectors/superadmin.cy.ts +185 -0
- package/tests/cypress/e2e/_selectors/tasks.cy.ts +242 -0
- package/tests/cypress/e2e/_selectors/taxonomies.cy.ts +126 -0
- package/tests/cypress/e2e/_selectors/teams.cy.ts +142 -0
- package/tests/cypress/e2e/_superadmin/all-teams.bdd.md +261 -0
- package/tests/cypress/e2e/_superadmin/all-teams.cy.ts +177 -0
- package/tests/cypress/e2e/_superadmin/all-users.bdd.md +406 -0
- package/tests/cypress/e2e/_superadmin/all-users.cy.ts +294 -0
- package/tests/cypress/e2e/_superadmin/dashboard.bdd.md +235 -0
- package/tests/cypress/e2e/_superadmin/dashboard.cy.ts +149 -0
- package/tests/cypress/e2e/_superadmin/subscriptions-overview.bdd.md +290 -0
- package/tests/cypress/e2e/_superadmin/subscriptions-overview.cy.ts +194 -0
- package/tests/cypress/e2e/ai/ai-usage.cy.ts +209 -0
- package/tests/cypress/e2e/ai/chat-api.cy.ts +107 -0
- package/tests/cypress/e2e/ai/guardrails.cy.ts +332 -0
- package/tests/cypress/e2e/api/billing/BillingAPIController.js +319 -0
- package/tests/cypress/e2e/api/billing/check-action.cy.ts +326 -0
- package/tests/cypress/e2e/api/billing/checkout.cy.ts +358 -0
- package/tests/cypress/e2e/api/billing/lifecycle.cy.ts +423 -0
- package/tests/cypress/e2e/api/billing/plans/README.md +345 -0
- package/tests/cypress/e2e/api/billing/plans/business.cy.ts +412 -0
- package/tests/cypress/e2e/api/billing/plans/downgrade.cy.ts +510 -0
- package/tests/cypress/e2e/api/billing/plans/fixtures/billing-plans.json +163 -0
- package/tests/cypress/e2e/api/billing/plans/free.cy.ts +500 -0
- package/tests/cypress/e2e/api/billing/plans/pro.cy.ts +497 -0
- package/tests/cypress/e2e/api/billing/plans/starter.cy.ts +342 -0
- package/tests/cypress/e2e/api/billing/portal.cy.ts +313 -0
- package/tests/cypress/e2e/api/devtools/registries.bdd.md +300 -0
- package/tests/cypress/e2e/api/devtools/registries.cy.ts +368 -0
- package/tests/cypress/e2e/api/entities/blocks-scope.cy.ts +396 -0
- package/tests/cypress/e2e/api/entities/customers-crud.cy.ts +648 -0
- package/tests/cypress/e2e/api/entities/customers-metas.cy.ts +839 -0
- package/tests/cypress/e2e/api/entities/pages-crud.cy.ts +425 -0
- package/tests/cypress/e2e/api/entities/pages-status.cy.ts +335 -0
- package/tests/cypress/e2e/api/entities/post-categories-crud.cy.ts +610 -0
- package/tests/cypress/e2e/api/entities/posts-crud.cy.ts +709 -0
- package/tests/cypress/e2e/api/entities/posts-status.cy.ts +396 -0
- package/tests/cypress/e2e/api/entities/tasks-crud.cy.ts +602 -0
- package/tests/cypress/e2e/api/entities/tasks-metas.cy.ts +878 -0
- package/tests/cypress/e2e/api/entities/users-crud.cy.ts +469 -0
- package/tests/cypress/e2e/api/entities/users-metas.cy.ts +913 -0
- package/tests/cypress/e2e/api/entities/users-security.cy.ts +375 -0
- package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.bdd.md +375 -0
- package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.cy.ts +346 -0
- package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.bdd.md +451 -0
- package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.cy.ts +447 -0
- package/tests/cypress/e2e/api/scheduled-actions/scheduling.bdd.md +649 -0
- package/tests/cypress/e2e/api/scheduled-actions/scheduling.cy.ts +333 -0
- package/tests/cypress/e2e/api/settings/api-keys.crud.cy.ts +923 -0
- package/tests/cypress/e2e/uat/auth/app-roles/developer-login.bdd.md +231 -0
- package/tests/cypress/e2e/uat/auth/app-roles/developer-login.cy.ts +144 -0
- package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.bdd.md +118 -0
- package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.cy.ts +84 -0
- package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.bdd.md +288 -0
- package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.cy.ts +188 -0
- package/tests/cypress/e2e/uat/auth/login-logout.bdd.md +160 -0
- package/tests/cypress/e2e/uat/auth/login-logout.cy.ts +116 -0
- package/tests/cypress/e2e/uat/auth/password-reset.bdd.md +289 -0
- package/tests/cypress/e2e/uat/auth/password-reset.cy.ts +200 -0
- package/tests/cypress/e2e/uat/auth/team-roles/admin-login.bdd.md +225 -0
- package/tests/cypress/e2e/uat/auth/team-roles/admin-login.cy.ts +148 -0
- package/tests/cypress/e2e/uat/auth/team-roles/member-login.bdd.md +251 -0
- package/tests/cypress/e2e/uat/auth/team-roles/member-login.cy.ts +163 -0
- package/tests/cypress/e2e/uat/auth/team-roles/owner-login.bdd.md +231 -0
- package/tests/cypress/e2e/uat/auth/team-roles/owner-login.cy.ts +141 -0
- package/tests/cypress/e2e/uat/billing/extended.bdd.md +273 -0
- package/tests/cypress/e2e/uat/billing/extended.cy.ts +209 -0
- package/tests/cypress/e2e/uat/billing/feature-gates.bdd.md +407 -0
- package/tests/cypress/e2e/uat/billing/feature-gates.cy.ts +307 -0
- package/tests/cypress/e2e/uat/billing/page.bdd.md +329 -0
- package/tests/cypress/e2e/uat/billing/page.cy.ts +250 -0
- package/tests/cypress/e2e/uat/billing/status.bdd.md +190 -0
- package/tests/cypress/e2e/uat/billing/status.cy.ts +145 -0
- package/tests/cypress/e2e/uat/billing/team-switch.bdd.md +156 -0
- package/tests/cypress/e2e/uat/billing/team-switch.cy.ts +122 -0
- package/tests/cypress/e2e/uat/billing/usage.bdd.md +218 -0
- package/tests/cypress/e2e/uat/billing/usage.cy.ts +176 -0
- package/tests/cypress/e2e/uat/blocks/hero.bdd.md +124 -0
- package/tests/cypress/e2e/uat/blocks/hero.cy.ts +56 -0
- package/tests/cypress/e2e/uat/devtools/api-tester.cy.ts +390 -0
- package/tests/cypress/e2e/uat/entities/customers/member.bdd.md +275 -0
- package/tests/cypress/e2e/uat/entities/customers/member.cy.ts +122 -0
- package/tests/cypress/e2e/uat/entities/customers/owner.bdd.md +243 -0
- package/tests/cypress/e2e/uat/entities/customers/owner.cy.ts +165 -0
- package/tests/cypress/e2e/uat/entities/pages/block-crud.bdd.md +476 -0
- package/tests/cypress/e2e/uat/entities/pages/block-crud.cy.ts +486 -0
- package/tests/cypress/e2e/uat/entities/pages/block-editor.bdd.md +460 -0
- package/tests/cypress/e2e/uat/entities/pages/block-editor.cy.ts +301 -0
- package/tests/cypress/e2e/uat/entities/pages/list.bdd.md +432 -0
- package/tests/cypress/e2e/uat/entities/pages/list.cy.ts +273 -0
- package/tests/cypress/e2e/uat/entities/pages/public-rendering.bdd.md +696 -0
- package/tests/cypress/e2e/uat/entities/pages/public-rendering.cy.ts +340 -0
- package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.bdd.md +161 -0
- package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.cy.ts +104 -0
- package/tests/cypress/e2e/uat/entities/posts/categories.bdd.md +375 -0
- package/tests/cypress/e2e/uat/entities/posts/categories.cy.ts +241 -0
- package/tests/cypress/e2e/uat/entities/posts/editor.bdd.md +429 -0
- package/tests/cypress/e2e/uat/entities/posts/editor.cy.ts +257 -0
- package/tests/cypress/e2e/uat/entities/posts/list.bdd.md +340 -0
- package/tests/cypress/e2e/uat/entities/posts/list.cy.ts +177 -0
- package/tests/cypress/e2e/uat/entities/posts/public.bdd.md +614 -0
- package/tests/cypress/e2e/uat/entities/posts/public.cy.ts +249 -0
- package/tests/cypress/e2e/uat/entities/tasks/member.bdd.md +222 -0
- package/tests/cypress/e2e/uat/entities/tasks/member.cy.ts +165 -0
- package/tests/cypress/e2e/uat/entities/tasks/owner.bdd.md +419 -0
- package/tests/cypress/e2e/uat/entities/tasks/owner.cy.ts +191 -0
- package/tests/cypress/e2e/uat/roles/editor-role.bdd.md +552 -0
- package/tests/cypress/e2e/uat/roles/editor-role.cy.ts +210 -0
- package/tests/cypress/e2e/uat/roles/member-restrictions.bdd.md +450 -0
- package/tests/cypress/e2e/uat/roles/member-restrictions.cy.ts +189 -0
- package/tests/cypress/e2e/uat/roles/owner-full-crud.bdd.md +530 -0
- package/tests/cypress/e2e/uat/roles/owner-full-crud.cy.ts +247 -0
- package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.bdd.md +736 -0
- package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.cy.ts +740 -0
- package/tests/cypress/e2e/uat/teams/roles-matrix.bdd.md +553 -0
- package/tests/cypress/e2e/uat/teams/roles-matrix.cy.ts +185 -0
- package/tests/cypress/e2e/uat/teams/switcher.bdd.md +1151 -0
- package/tests/cypress/e2e/uat/teams/switcher.cy.ts +497 -0
- package/tests/cypress/e2e/uat/teams/team-switcher.md +198 -0
- package/tests/cypress/fixtures/blocks.json +218 -0
- package/tests/cypress/fixtures/entities.json +78 -0
- package/tests/cypress/fixtures/page-builder.json +21 -0
- package/tests/cypress/src/components/CategoriesPOM.ts +382 -0
- package/tests/cypress/src/components/CustomersPOM.ts +439 -0
- package/tests/cypress/src/components/DevKeyringPOM.ts +160 -0
- package/tests/cypress/src/components/EntityForm.ts +375 -0
- package/tests/cypress/src/components/EntityList.ts +389 -0
- package/tests/cypress/src/components/PageBuilderPOM.ts +710 -0
- package/tests/cypress/src/components/PostEditorPOM.ts +370 -0
- package/tests/cypress/src/components/PostsListPOM.ts +223 -0
- package/tests/cypress/src/components/PublicPagePOM.ts +447 -0
- package/tests/cypress/src/components/PublicPostPOM.ts +146 -0
- package/tests/cypress/src/components/TasksPOM.ts +272 -0
- package/tests/cypress/src/components/TeamSwitcherPOM.ts +450 -0
- package/tests/cypress/src/components/index.ts +21 -0
- package/tests/cypress/src/controllers/ApiKeysAPIController.js +178 -0
- package/tests/cypress/src/controllers/BaseAPIController.js +317 -0
- package/tests/cypress/src/controllers/CustomerAPIController.js +251 -0
- package/tests/cypress/src/controllers/PagesAPIController.js +226 -0
- package/tests/cypress/src/controllers/PostsAPIController.js +250 -0
- package/tests/cypress/src/controllers/TaskAPIController.js +240 -0
- package/tests/cypress/src/controllers/UsersAPIController.js +242 -0
- package/tests/cypress/src/controllers/index.js +25 -0
- package/tests/cypress/src/core/AuthPOM.ts +450 -0
- package/tests/cypress/src/core/BasePOM.ts +86 -0
- package/tests/cypress/src/core/BlockEditorBasePOM.ts +576 -0
- package/tests/cypress/src/core/DashboardEntityPOM.ts +692 -0
- package/tests/cypress/src/core/index.ts +14 -0
- package/tests/cypress/src/entities/CustomersPOM.ts +172 -0
- package/tests/cypress/src/entities/PagesPOM.ts +137 -0
- package/tests/cypress/src/entities/PostsPOM.ts +137 -0
- package/tests/cypress/src/entities/TasksPOM.ts +176 -0
- package/tests/cypress/src/entities/index.ts +14 -0
- package/tests/cypress/src/features/BillingPOM.ts +385 -0
- package/tests/cypress/src/features/DashboardPOM.ts +245 -0
- package/tests/cypress/src/features/DevtoolsPOM.ts +739 -0
- package/tests/cypress/src/features/PageBuilderPOM.ts +263 -0
- package/tests/cypress/src/features/PostEditorPOM.ts +313 -0
- package/tests/cypress/src/features/ScheduledActionsPOM.ts +463 -0
- package/tests/cypress/src/features/SettingsPOM.ts +362 -0
- package/tests/cypress/src/features/SuperadminPOM.ts +331 -0
- package/tests/cypress/src/features/SuperadminTeamRolesPOM.ts +285 -0
- package/tests/cypress/src/features/index.ts +28 -0
- package/tests/cypress/src/helpers/ApiInterceptor.ts +177 -0
- package/tests/cypress/src/index.ts +101 -0
- package/tests/cypress/src/pages/dashboard/Dashboard.js +677 -0
- package/tests/cypress/src/pages/dashboard/DashboardPage.js +43 -0
- package/tests/cypress/src/pages/dashboard/DashboardStats.js +546 -0
- package/tests/cypress/src/pages/dashboard/index.js +6 -0
- package/tests/cypress/src/pages/index.js +5 -0
- package/tests/cypress/src/pages/public/FeaturesPage.js +28 -0
- package/tests/cypress/src/pages/public/LandingPage.js +69 -0
- package/tests/cypress/src/pages/public/PricingPage.js +33 -0
- package/tests/cypress/src/pages/public/index.js +6 -0
- package/tests/cypress/src/selectors.ts +46 -0
- package/tests/cypress/src/session-helpers.ts +500 -0
- package/tests/cypress/support/doc-commands.ts +260 -0
- package/tests/cypress.config.ts +150 -0
- package/tests/jest/components/post-header.test.tsx +377 -0
- package/tests/jest/config/role-config.test.ts +529 -0
- package/tests/jest/jest.config.ts +81 -0
- package/tests/jest/langchain/COVERAGE.md +372 -0
- package/tests/jest/langchain/guardrails.test.ts +465 -0
- package/tests/jest/langchain/streaming.test.ts +367 -0
- package/tests/jest/langchain/token-tracker.test.ts +455 -0
- package/tests/jest/langchain/tracer-callbacks.test.ts +881 -0
- package/tests/jest/langchain/tracer.test.ts +823 -0
- package/tests/jest/user-roles/role-helpers.test.ts +432 -0
- package/tests/jest/validation/categories.test.ts +429 -0
- package/tests/jest/validation/posts.test.ts +546 -0
- package/tests/tsconfig.json +15 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/// <reference types="cypress" />
|
|
2
|
+
|
|
3
|
+
import * as allure from 'allure-cypress'
|
|
4
|
+
import { DevtoolsPOM } from '../../src/features/DevtoolsPOM'
|
|
5
|
+
import { loginAsDefaultDeveloper } from '../../src/session-helpers'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* DevTools Navigation Tests
|
|
9
|
+
*
|
|
10
|
+
* Tests the navigation functionality within the /devtools area:
|
|
11
|
+
* - Sidebar navigation items work correctly
|
|
12
|
+
* - All nav links are clickable and navigate to correct pages
|
|
13
|
+
* - Exit links (Dashboard, Admin) work
|
|
14
|
+
* - URL changes reflect navigation
|
|
15
|
+
*
|
|
16
|
+
* Test User:
|
|
17
|
+
* - Developer: developer@nextspark.dev (via loginAsDefaultDeveloper)
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
describe('DevTools - Navigation', {
|
|
21
|
+
tags: ['@uat', '@feat-devtools', '@regression']
|
|
22
|
+
}, () => {
|
|
23
|
+
const devtools = DevtoolsPOM.create()
|
|
24
|
+
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
allure.epic('UAT')
|
|
27
|
+
allure.feature('DevTools')
|
|
28
|
+
allure.story('Navigation')
|
|
29
|
+
|
|
30
|
+
// Login as developer before each test
|
|
31
|
+
loginAsDefaultDeveloper()
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
describe('NAV-001: Sidebar navigation works', () => {
|
|
35
|
+
it('should display all sidebar navigation items', () => {
|
|
36
|
+
allure.severity('high')
|
|
37
|
+
|
|
38
|
+
// 1. Visit /devtools home
|
|
39
|
+
devtools.visitHome()
|
|
40
|
+
|
|
41
|
+
// 2. Verify all navigation items are visible
|
|
42
|
+
devtools.assertSidebarNavigationVisible()
|
|
43
|
+
|
|
44
|
+
// 3. Verify exit links are visible
|
|
45
|
+
devtools.assertExitLinksVisible()
|
|
46
|
+
|
|
47
|
+
cy.log(`✅ Sidebar navigation displayed correctly`)
|
|
48
|
+
})
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
describe('NAV-002: All nav links are clickable', () => {
|
|
52
|
+
it('should navigate to Style Gallery via sidebar', () => {
|
|
53
|
+
allure.severity('high')
|
|
54
|
+
|
|
55
|
+
// 1. Start at /devtools home
|
|
56
|
+
devtools.visitHome()
|
|
57
|
+
|
|
58
|
+
// 2. Click Style Gallery nav item
|
|
59
|
+
devtools.clickNavStyleGallery()
|
|
60
|
+
|
|
61
|
+
// 3. Verify navigation to /devtools/style
|
|
62
|
+
devtools.assertOnStyleGallery()
|
|
63
|
+
devtools.assertStylePageVisible()
|
|
64
|
+
|
|
65
|
+
cy.log(`✅ Style Gallery navigation works`)
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
it('should navigate to Test Cases via sidebar', () => {
|
|
69
|
+
allure.severity('high')
|
|
70
|
+
|
|
71
|
+
// 1. Start at /devtools home
|
|
72
|
+
devtools.visitHome()
|
|
73
|
+
|
|
74
|
+
// 2. Click Test Cases nav item
|
|
75
|
+
devtools.clickNavTestCases()
|
|
76
|
+
|
|
77
|
+
// 3. Verify navigation to /devtools/tests
|
|
78
|
+
devtools.assertOnTestCases()
|
|
79
|
+
devtools.assertTestsPageVisible()
|
|
80
|
+
|
|
81
|
+
cy.log(`✅ Test Cases navigation works`)
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
it('should navigate to Config Viewer via sidebar', () => {
|
|
85
|
+
allure.severity('high')
|
|
86
|
+
|
|
87
|
+
// 1. Start at /devtools home
|
|
88
|
+
devtools.visitHome()
|
|
89
|
+
|
|
90
|
+
// 2. Click Config nav item
|
|
91
|
+
devtools.clickNavConfig()
|
|
92
|
+
|
|
93
|
+
// 3. Verify navigation to /devtools/config
|
|
94
|
+
devtools.assertOnConfig()
|
|
95
|
+
devtools.assertConfigPageVisible()
|
|
96
|
+
|
|
97
|
+
cy.log(`✅ Config Viewer navigation works`)
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
it('should navigate back to Home via sidebar', () => {
|
|
101
|
+
allure.severity('high')
|
|
102
|
+
|
|
103
|
+
// 1. Start at /devtools/style
|
|
104
|
+
devtools.visitStyleGallery()
|
|
105
|
+
|
|
106
|
+
// 2. Click Home nav item
|
|
107
|
+
devtools.clickNavHome()
|
|
108
|
+
|
|
109
|
+
// 3. Verify navigation to /devtools
|
|
110
|
+
devtools.assertOnDevtoolsHome()
|
|
111
|
+
devtools.assertHomePageVisible()
|
|
112
|
+
|
|
113
|
+
cy.log(`✅ Home navigation works`)
|
|
114
|
+
})
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
describe('NAV-003: Back to Dashboard link works', () => {
|
|
118
|
+
it('should navigate to Dashboard when clicking exit link', () => {
|
|
119
|
+
allure.severity('high')
|
|
120
|
+
|
|
121
|
+
// 1. Start at /devtools home
|
|
122
|
+
devtools.visitHome()
|
|
123
|
+
|
|
124
|
+
// 2. Click "Exit to Dashboard" link
|
|
125
|
+
devtools.clickExitToDashboard()
|
|
126
|
+
|
|
127
|
+
// 3. Verify navigation to /dashboard
|
|
128
|
+
cy.url().should('include', '/dashboard')
|
|
129
|
+
cy.url().should('not.include', '/devtools')
|
|
130
|
+
cy.get('[data-cy="dashboard-container"]').should('be.visible')
|
|
131
|
+
|
|
132
|
+
cy.log(`✅ Exit to Dashboard works`)
|
|
133
|
+
})
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
describe('NAV-004: Go to Admin link works', () => {
|
|
137
|
+
it('should navigate to Admin when clicking exit link', () => {
|
|
138
|
+
allure.severity('high')
|
|
139
|
+
|
|
140
|
+
// 1. Start at /devtools home
|
|
141
|
+
devtools.visitHome()
|
|
142
|
+
|
|
143
|
+
// 2. Click "Go to Admin" link
|
|
144
|
+
devtools.clickGoToAdmin()
|
|
145
|
+
|
|
146
|
+
// 3. Verify navigation to /admin
|
|
147
|
+
devtools.assertOnAdmin()
|
|
148
|
+
cy.get('[data-cy="admin-container"]').should('be.visible')
|
|
149
|
+
|
|
150
|
+
cy.log(`✅ Go to Admin works`)
|
|
151
|
+
})
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
after(() => {
|
|
155
|
+
cy.log('✅ DevTools navigation tests completed')
|
|
156
|
+
})
|
|
157
|
+
})
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature: DevTools Page Content
|
|
3
|
+
priority: high
|
|
4
|
+
tags: [dev-area, pages, content]
|
|
5
|
+
grepTags: [uat, feat-dev-area, regression]
|
|
6
|
+
coverage: 6
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# DevTools Page Content
|
|
10
|
+
|
|
11
|
+
> Tests the content and functionality of each /devtools page including Home quick links, Style Gallery components, Test Cases viewer, and Config viewer tabs.
|
|
12
|
+
|
|
13
|
+
## @test PAGE-001: Home page renders quick links
|
|
14
|
+
|
|
15
|
+
### Metadata
|
|
16
|
+
- **Priority:** High
|
|
17
|
+
- **Type:** Smoke
|
|
18
|
+
- **Tags:** home, quick-links
|
|
19
|
+
- **Grep:** `@smoke`
|
|
20
|
+
|
|
21
|
+
```gherkin:en
|
|
22
|
+
Scenario: Display all quick link cards on home page
|
|
23
|
+
|
|
24
|
+
Given I am logged in as Developer (developer@nextspark.dev)
|
|
25
|
+
When I visit /devtools home
|
|
26
|
+
Then the home page container should be visible
|
|
27
|
+
And all quick links should be visible (Style, Tests, Config)
|
|
28
|
+
|
|
29
|
+
When I click Style Gallery quick link
|
|
30
|
+
Then I should be on /devtools/style
|
|
31
|
+
|
|
32
|
+
When I go back to /devtools home
|
|
33
|
+
And I click Test Cases quick link
|
|
34
|
+
Then I should be on /devtools/tests
|
|
35
|
+
|
|
36
|
+
When I go back to /devtools home
|
|
37
|
+
And I click Config Viewer quick link
|
|
38
|
+
Then I should be on /devtools/config
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```gherkin:es
|
|
42
|
+
Scenario: Mostrar todas las tarjetas de enlaces rapidos en home
|
|
43
|
+
|
|
44
|
+
Given estoy logueado como Developer (developer@nextspark.dev)
|
|
45
|
+
When visito /devtools home
|
|
46
|
+
Then el contenedor de home page deberia estar visible
|
|
47
|
+
And todos los enlaces rapidos deberian estar visibles (Style, Tests, Config)
|
|
48
|
+
|
|
49
|
+
When hago clic en el enlace rapido Style Gallery
|
|
50
|
+
Then deberia estar en /devtools/style
|
|
51
|
+
|
|
52
|
+
When vuelvo a /devtools home
|
|
53
|
+
And hago clic en el enlace rapido Test Cases
|
|
54
|
+
Then deberia estar en /devtools/tests
|
|
55
|
+
|
|
56
|
+
When vuelvo a /devtools home
|
|
57
|
+
And hago clic en el enlace rapido Config Viewer
|
|
58
|
+
Then deberia estar en /devtools/config
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Expected Results
|
|
62
|
+
- Home page container visible
|
|
63
|
+
- All 3 quick link cards displayed
|
|
64
|
+
- Each quick link navigates correctly
|
|
65
|
+
- All target pages load successfully
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## @test PAGE-002: Style Gallery loads components
|
|
70
|
+
|
|
71
|
+
### Metadata
|
|
72
|
+
- **Priority:** High
|
|
73
|
+
- **Type:** Smoke
|
|
74
|
+
- **Tags:** style-gallery, components, tabs
|
|
75
|
+
|
|
76
|
+
```gherkin:en
|
|
77
|
+
Scenario: Display all Style Gallery sections
|
|
78
|
+
|
|
79
|
+
Given I am logged in as Developer (developer@nextspark.dev)
|
|
80
|
+
When I visit /devtools/style
|
|
81
|
+
Then the style page should be visible
|
|
82
|
+
|
|
83
|
+
And I verify all tab sections by clicking through them:
|
|
84
|
+
| Tab | Content Section |
|
|
85
|
+
| Components | Component Gallery |
|
|
86
|
+
| Field Types | Field Types Gallery |
|
|
87
|
+
| Theme | Theme Preview |
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```gherkin:es
|
|
91
|
+
Scenario: Mostrar todas las secciones de Style Gallery
|
|
92
|
+
|
|
93
|
+
Given estoy logueado como Developer (developer@nextspark.dev)
|
|
94
|
+
When visito /devtools/style
|
|
95
|
+
Then la pagina de estilos deberia estar visible
|
|
96
|
+
|
|
97
|
+
And verifico todas las secciones de tabs haciendo clic en cada una:
|
|
98
|
+
| Tab | Seccion de Contenido |
|
|
99
|
+
| Components | Component Gallery |
|
|
100
|
+
| Field Types | Field Types Gallery |
|
|
101
|
+
| Theme | Theme Preview |
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Expected Results
|
|
105
|
+
- Style page container visible
|
|
106
|
+
- Components tab visible by default
|
|
107
|
+
- Field Types tab content loads on click
|
|
108
|
+
- Theme tab content loads on click
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## @test PAGE-003a: Test Cases viewer shows file tree
|
|
113
|
+
|
|
114
|
+
### Metadata
|
|
115
|
+
- **Priority:** High
|
|
116
|
+
- **Type:** Smoke
|
|
117
|
+
- **Tags:** test-cases, file-tree
|
|
118
|
+
|
|
119
|
+
```gherkin:en
|
|
120
|
+
Scenario: Display test cases viewer with file tree
|
|
121
|
+
|
|
122
|
+
Given I am logged in as Developer (developer@nextspark.dev)
|
|
123
|
+
When I visit /devtools/tests
|
|
124
|
+
Then the tests page should be visible
|
|
125
|
+
And the viewer container should be visible
|
|
126
|
+
And either file tree or empty state should be displayed
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
```gherkin:es
|
|
130
|
+
Scenario: Mostrar visor de test cases con arbol de archivos
|
|
131
|
+
|
|
132
|
+
Given estoy logueado como Developer (developer@nextspark.dev)
|
|
133
|
+
When visito /devtools/tests
|
|
134
|
+
Then la pagina de tests deberia estar visible
|
|
135
|
+
And el contenedor del visor deberia estar visible
|
|
136
|
+
And deberia mostrarse el arbol de archivos o estado vacio
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Expected Results
|
|
140
|
+
- Tests page container visible
|
|
141
|
+
- Viewer component rendered
|
|
142
|
+
- File tree shows .bdd.md files (or empty state)
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## @test PAGE-003b: Test Cases viewer shows markdown content
|
|
147
|
+
|
|
148
|
+
### Metadata
|
|
149
|
+
- **Priority:** Medium
|
|
150
|
+
- **Type:** Regression
|
|
151
|
+
- **Tags:** test-cases, markdown, file-select
|
|
152
|
+
|
|
153
|
+
```gherkin:en
|
|
154
|
+
Scenario: Show markdown content when selecting a file
|
|
155
|
+
|
|
156
|
+
Given I am on /devtools/tests
|
|
157
|
+
When I check if file tree has files
|
|
158
|
+
And files exist
|
|
159
|
+
And I click on the first file
|
|
160
|
+
Then the content area should be visible
|
|
161
|
+
And markdown content should be rendered
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
```gherkin:es
|
|
165
|
+
Scenario: Mostrar contenido markdown al seleccionar un archivo
|
|
166
|
+
|
|
167
|
+
Given estoy en /devtools/tests
|
|
168
|
+
When verifico si el arbol de archivos tiene archivos
|
|
169
|
+
And existen archivos
|
|
170
|
+
And hago clic en el primer archivo
|
|
171
|
+
Then el area de contenido deberia estar visible
|
|
172
|
+
And el contenido markdown deberia estar renderizado
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Expected Results
|
|
176
|
+
- File selection works
|
|
177
|
+
- Markdown content loads
|
|
178
|
+
- Content is properly formatted
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## @test PAGE-004a: Config viewer shows tabs
|
|
183
|
+
|
|
184
|
+
### Metadata
|
|
185
|
+
- **Priority:** High
|
|
186
|
+
- **Type:** Smoke
|
|
187
|
+
- **Tags:** config, tabs
|
|
188
|
+
|
|
189
|
+
```gherkin:en
|
|
190
|
+
Scenario: Display config viewer with tabs
|
|
191
|
+
|
|
192
|
+
Given I am logged in as Developer (developer@nextspark.dev)
|
|
193
|
+
When I visit /devtools/config
|
|
194
|
+
Then the config page should be visible
|
|
195
|
+
And config tabs should be visible (Theme, Entities)
|
|
196
|
+
|
|
197
|
+
When I click Theme tab
|
|
198
|
+
Then Theme content should be visible
|
|
199
|
+
|
|
200
|
+
When I click Entities tab
|
|
201
|
+
Then Entities content should be visible
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
```gherkin:es
|
|
205
|
+
Scenario: Mostrar visor de config con tabs
|
|
206
|
+
|
|
207
|
+
Given estoy logueado como Developer (developer@nextspark.dev)
|
|
208
|
+
When visito /devtools/config
|
|
209
|
+
Then la pagina de config deberia estar visible
|
|
210
|
+
And los tabs de config deberian estar visibles (Theme, Entities)
|
|
211
|
+
|
|
212
|
+
When hago clic en el tab Theme
|
|
213
|
+
Then el contenido de Theme deberia estar visible
|
|
214
|
+
|
|
215
|
+
When hago clic en el tab Entities
|
|
216
|
+
Then el contenido de Entities deberia estar visible
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Expected Results
|
|
220
|
+
- Config page container visible
|
|
221
|
+
- Theme and Entities tabs visible
|
|
222
|
+
- Tab switching works correctly
|
|
223
|
+
- Each tab shows correct content
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## @test PAGE-004b: Config viewer shows copy buttons
|
|
228
|
+
|
|
229
|
+
### Metadata
|
|
230
|
+
- **Priority:** Medium
|
|
231
|
+
- **Type:** Regression
|
|
232
|
+
- **Tags:** config, copy-buttons
|
|
233
|
+
|
|
234
|
+
```gherkin:en
|
|
235
|
+
Scenario: Display copy buttons in config viewer
|
|
236
|
+
|
|
237
|
+
Given I am on /devtools/config
|
|
238
|
+
When I click Theme tab
|
|
239
|
+
Then copy button for theme config should be visible
|
|
240
|
+
|
|
241
|
+
When I click Entities tab
|
|
242
|
+
Then copy button for entities config should be visible
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
```gherkin:es
|
|
246
|
+
Scenario: Mostrar botones de copia en el visor de config
|
|
247
|
+
|
|
248
|
+
Given estoy en /devtools/config
|
|
249
|
+
When hago clic en el tab Theme
|
|
250
|
+
Then el boton de copia para config de theme deberia estar visible
|
|
251
|
+
|
|
252
|
+
When hago clic en el tab Entities
|
|
253
|
+
Then el boton de copia para config de entities deberia estar visible
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Expected Results
|
|
257
|
+
- Copy buttons present in both tabs
|
|
258
|
+
- Copy functionality available for developers
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## UI Elements
|
|
263
|
+
|
|
264
|
+
| Element | Selector | Description |
|
|
265
|
+
|---------|----------|-------------|
|
|
266
|
+
| Home Page | `[data-cy="dev-home-page"]` | Dev home page container |
|
|
267
|
+
| Home Style Link | `[data-cy="dev-home-style-link"]` | Quick link to Style Gallery |
|
|
268
|
+
| Home Tests Link | `[data-cy="dev-home-tests-link"]` | Quick link to Test Cases |
|
|
269
|
+
| Home Config Link | `[data-cy="dev-home-config-link"]` | Quick link to Config Viewer |
|
|
270
|
+
| Style Page | `[data-cy="dev-style-page"]` | Style Gallery page container |
|
|
271
|
+
| Style Tab Components | `[data-cy="dev-style-tab-components"]` | Components tab trigger |
|
|
272
|
+
| Style Tab Field Types | `[data-cy="dev-style-tab-field-types"]` | Field Types tab trigger |
|
|
273
|
+
| Style Tab Theme | `[data-cy="dev-style-tab-theme"]` | Theme tab trigger |
|
|
274
|
+
| Style Component Gallery | `[data-cy="dev-style-component-gallery"]` | Components tab content |
|
|
275
|
+
| Style Field Types | `[data-cy="dev-style-field-types"]` | Field Types tab content |
|
|
276
|
+
| Style Theme Preview | `[data-cy="dev-style-theme-preview"]` | Theme tab content |
|
|
277
|
+
| Tests Page | `[data-cy="dev-tests-page"]` | Test Cases page container |
|
|
278
|
+
| Tests Viewer | `[data-cy="dev-tests-viewer"]` | Test viewer container |
|
|
279
|
+
| Tests Tree | `[data-cy="dev-tests-tree"]` | File tree component |
|
|
280
|
+
| Tests Empty State | `[data-cy="dev-tests-empty-state"]` | Empty state when no files |
|
|
281
|
+
| Tests Content | `[data-cy="dev-tests-content"]` | Content display area |
|
|
282
|
+
| Tests Markdown | `[data-cy="dev-tests-markdown-content"]` | Rendered markdown content |
|
|
283
|
+
| Config Page | `[data-cy="dev-config-page"]` | Config Viewer page container |
|
|
284
|
+
| Config Viewer | `[data-cy="dev-config-viewer"]` | Config viewer container |
|
|
285
|
+
| Config Tab Theme | `[data-cy="dev-config-tab-theme"]` | Theme tab trigger |
|
|
286
|
+
| Config Tab Entities | `[data-cy="dev-config-tab-entities"]` | Entities tab trigger |
|
|
287
|
+
| Config Theme Content | `[data-cy="dev-config-theme-content"]` | Theme config content |
|
|
288
|
+
| Config Entities Content | `[data-cy="dev-config-entities-content"]` | Entities config content |
|
|
289
|
+
| Config Copy Theme | `[data-cy="dev-config-copy-theme"]` | Copy theme config button |
|
|
290
|
+
| Config Copy Entities | `[data-cy="dev-config-copy-entities"]` | Copy entities config button |
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Summary
|
|
295
|
+
|
|
296
|
+
| Test ID | Block | Description | Tags |
|
|
297
|
+
|---------|-------|-------------|------|
|
|
298
|
+
| PAGE-001 | Home Page | Quick links display and work | `@smoke` |
|
|
299
|
+
| PAGE-002 | Style Gallery | All tab sections load | |
|
|
300
|
+
| PAGE-003a | Test Cases | File tree viewer works | |
|
|
301
|
+
| PAGE-003b | Test Cases | Markdown content renders | |
|
|
302
|
+
| PAGE-004a | Config Viewer | Tabs display and switch | |
|
|
303
|
+
| PAGE-004b | Config Viewer | Copy buttons available | |
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/// <reference types="cypress" />
|
|
2
|
+
|
|
3
|
+
import * as allure from 'allure-cypress'
|
|
4
|
+
import { DevtoolsPOM } from '../../src/features/DevtoolsPOM'
|
|
5
|
+
import { loginAsDefaultDeveloper } from '../../src/session-helpers'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* DevTools Page Content Tests
|
|
9
|
+
*
|
|
10
|
+
* Tests the content and functionality of each /devtools page:
|
|
11
|
+
* - Home page renders quick links
|
|
12
|
+
* - Style Gallery loads all components
|
|
13
|
+
* - Test Cases viewer shows file tree
|
|
14
|
+
* - Config viewer shows tabs and content
|
|
15
|
+
*
|
|
16
|
+
* Test User:
|
|
17
|
+
* - Developer: developer@nextspark.dev (via loginAsDefaultDeveloper)
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
describe('DevTools - Page Content', {
|
|
21
|
+
tags: ['@uat', '@feat-devtools', '@regression']
|
|
22
|
+
}, () => {
|
|
23
|
+
const devtools = DevtoolsPOM.create()
|
|
24
|
+
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
allure.epic('UAT')
|
|
27
|
+
allure.feature('DevTools')
|
|
28
|
+
allure.story('Page Content')
|
|
29
|
+
|
|
30
|
+
// Login as developer before each test
|
|
31
|
+
loginAsDefaultDeveloper()
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
describe('PAGE-001: Home page renders quick links', () => {
|
|
35
|
+
it('should display all quick link cards on home page', () => {
|
|
36
|
+
allure.severity('high')
|
|
37
|
+
|
|
38
|
+
// 1. Visit /devtools home
|
|
39
|
+
devtools.visitHome()
|
|
40
|
+
|
|
41
|
+
// 2. Verify page container is visible
|
|
42
|
+
devtools.assertHomePageVisible()
|
|
43
|
+
|
|
44
|
+
// 3. Verify all quick links are visible
|
|
45
|
+
devtools.assertHomeQuickLinksVisible()
|
|
46
|
+
|
|
47
|
+
// 4. Verify quick links are clickable and navigate correctly
|
|
48
|
+
cy.log('Testing Style Gallery quick link...')
|
|
49
|
+
devtools.clickHomeStyleLink()
|
|
50
|
+
devtools.assertOnStyleGallery()
|
|
51
|
+
|
|
52
|
+
cy.log('Testing Test Cases quick link...')
|
|
53
|
+
devtools.visitHome()
|
|
54
|
+
devtools.clickHomeTestsLink()
|
|
55
|
+
devtools.assertOnTestCases()
|
|
56
|
+
|
|
57
|
+
cy.log('Testing Config Viewer quick link...')
|
|
58
|
+
devtools.visitHome()
|
|
59
|
+
devtools.clickHomeConfigLink()
|
|
60
|
+
devtools.assertOnConfig()
|
|
61
|
+
|
|
62
|
+
cy.log(`✅ Home page quick links work correctly`)
|
|
63
|
+
})
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
describe('PAGE-002: Style Gallery loads components', () => {
|
|
67
|
+
it('should display all Style Gallery sections', () => {
|
|
68
|
+
allure.severity('high')
|
|
69
|
+
|
|
70
|
+
// 1. Visit /devtools/style
|
|
71
|
+
devtools.visitStyleGallery()
|
|
72
|
+
|
|
73
|
+
// 2. Verify page is visible
|
|
74
|
+
devtools.assertStylePageVisible()
|
|
75
|
+
|
|
76
|
+
// 3. Verify all tab sections by clicking through them
|
|
77
|
+
// (assertStyleSectionsVisible clicks each tab and verifies content)
|
|
78
|
+
devtools.assertStyleSectionsVisible()
|
|
79
|
+
|
|
80
|
+
cy.log(`✅ Style Gallery sections loaded correctly`)
|
|
81
|
+
})
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
describe('PAGE-003: Test Cases viewer shows file tree', () => {
|
|
85
|
+
it('should display test cases viewer with file tree', () => {
|
|
86
|
+
allure.severity('high')
|
|
87
|
+
|
|
88
|
+
// 1. Visit /devtools/tests
|
|
89
|
+
devtools.visitTestCases()
|
|
90
|
+
|
|
91
|
+
// 2. Verify page is visible
|
|
92
|
+
devtools.assertTestsPageVisible()
|
|
93
|
+
|
|
94
|
+
// 3. Verify viewer container is visible
|
|
95
|
+
devtools.assertTestsViewerVisible()
|
|
96
|
+
|
|
97
|
+
// 4. Verify file tree is present (or empty state if no files)
|
|
98
|
+
cy.get('body').then(($body) => {
|
|
99
|
+
if ($body.find(devtools.selectors.testsTree).length > 0) {
|
|
100
|
+
// File tree exists
|
|
101
|
+
cy.get(devtools.selectors.testsTree).should('be.visible')
|
|
102
|
+
cy.log('✅ File tree displayed')
|
|
103
|
+
} else if ($body.find(devtools.selectors.testsEmptyState).length > 0) {
|
|
104
|
+
// Empty state (no test files)
|
|
105
|
+
cy.get(devtools.selectors.testsEmptyState).should('be.visible')
|
|
106
|
+
cy.log('✅ Empty state displayed (no test files found)')
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
cy.log(`✅ Test Cases viewer loaded correctly`)
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
it('should show markdown content when selecting a file', () => {
|
|
114
|
+
allure.severity('medium')
|
|
115
|
+
|
|
116
|
+
// 1. Visit /devtools/tests
|
|
117
|
+
devtools.visitTestCases()
|
|
118
|
+
|
|
119
|
+
// 2. Check if file tree has files
|
|
120
|
+
cy.get('body').then(($body) => {
|
|
121
|
+
if ($body.find('[data-cy^="dev-tests-file-"]').length > 0) {
|
|
122
|
+
// Files exist - click first file
|
|
123
|
+
cy.get('[data-cy^="dev-tests-file-"]').first().click()
|
|
124
|
+
|
|
125
|
+
// 3. Verify markdown content is displayed
|
|
126
|
+
cy.get(devtools.selectors.testsContent).should('be.visible')
|
|
127
|
+
cy.get(devtools.selectors.testsMarkdownContent).should('be.visible')
|
|
128
|
+
|
|
129
|
+
cy.log('✅ File content displayed when selected')
|
|
130
|
+
} else {
|
|
131
|
+
cy.log('⚠️ No test files found - skipping file selection test')
|
|
132
|
+
}
|
|
133
|
+
})
|
|
134
|
+
})
|
|
135
|
+
})
|
|
136
|
+
|
|
137
|
+
describe('PAGE-004: Config viewer shows tabs', () => {
|
|
138
|
+
it('should display config viewer with tabs', () => {
|
|
139
|
+
allure.severity('high')
|
|
140
|
+
|
|
141
|
+
// 1. Visit /devtools/config
|
|
142
|
+
devtools.visitConfig()
|
|
143
|
+
|
|
144
|
+
// 2. Verify page is visible
|
|
145
|
+
devtools.assertConfigPageVisible()
|
|
146
|
+
|
|
147
|
+
// 3. Verify tabs are visible
|
|
148
|
+
devtools.assertConfigTabsVisible()
|
|
149
|
+
|
|
150
|
+
// 4. Test Theme tab
|
|
151
|
+
cy.log('Testing Theme tab...')
|
|
152
|
+
devtools.clickConfigTabTheme()
|
|
153
|
+
cy.get(devtools.selectors.configThemeContent).should('be.visible')
|
|
154
|
+
|
|
155
|
+
// 5. Test Entities tab
|
|
156
|
+
cy.log('Testing Entities tab...')
|
|
157
|
+
devtools.clickConfigTabEntities()
|
|
158
|
+
cy.get(devtools.selectors.configEntitiesContent).should('be.visible')
|
|
159
|
+
|
|
160
|
+
cy.log(`✅ Config viewer tabs work correctly`)
|
|
161
|
+
})
|
|
162
|
+
|
|
163
|
+
it('should display copy buttons in config viewer', () => {
|
|
164
|
+
allure.severity('medium')
|
|
165
|
+
|
|
166
|
+
// 1. Visit /devtools/config
|
|
167
|
+
devtools.visitConfig()
|
|
168
|
+
|
|
169
|
+
// 2. Verify copy buttons exist for theme config
|
|
170
|
+
devtools.clickConfigTabTheme()
|
|
171
|
+
cy.get(devtools.selectors.configCopyTheme).should('be.visible')
|
|
172
|
+
|
|
173
|
+
// 3. Verify copy buttons exist for entities config
|
|
174
|
+
devtools.clickConfigTabEntities()
|
|
175
|
+
cy.get(devtools.selectors.configCopyEntities).should('be.visible')
|
|
176
|
+
|
|
177
|
+
cy.log(`✅ Copy buttons displayed correctly`)
|
|
178
|
+
})
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
after(() => {
|
|
182
|
+
cy.log('✅ DevTools page content tests completed')
|
|
183
|
+
})
|
|
184
|
+
})
|