@nextsparkjs/theme-default 0.1.0-beta.44 → 0.1.0-beta.45
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/components/ai-chat/ChatPanel.tsx +7 -7
- package/components/ai-chat/Message.tsx +2 -2
- package/components/ai-chat/MessageInput.tsx +3 -3
- package/components/ai-chat/MessageList.tsx +3 -3
- package/components/ai-chat/TypingIndicator.tsx +2 -2
- package/entities/customers/api/docs.md +107 -0
- package/entities/customers/api/presets.ts +80 -0
- package/entities/pages/api/docs.md +114 -0
- package/entities/pages/api/presets.ts +72 -0
- package/entities/posts/api/docs.md +120 -0
- package/entities/posts/api/presets.ts +74 -0
- package/entities/tasks/api/docs.md +126 -0
- package/entities/tasks/api/presets.ts +84 -0
- package/lib/selectors.ts +2 -2
- package/messages/de/admin.json +45 -0
- package/messages/en/admin.json +45 -0
- package/messages/es/admin.json +45 -0
- package/messages/fr/admin.json +45 -0
- package/messages/it/admin.json +45 -0
- package/messages/pt/admin.json +45 -0
- package/package.json +3 -3
- package/styles/globals.css +24 -0
- package/tests/cypress/e2e/_utils/selectors/block-editor.bdd.md +491 -0
- package/tests/cypress/e2e/_utils/selectors/block-editor.cy.ts +475 -0
- package/tests/cypress/e2e/_utils/selectors/dashboard-container.cy.ts +52 -0
- package/tests/cypress/e2e/_utils/selectors/dashboard-mobile.cy.ts +14 -14
- package/tests/cypress/e2e/_utils/selectors/dashboard-navigation.cy.ts +3 -3
- package/tests/cypress/e2e/_utils/selectors/dashboard-sidebar.bdd.md +38 -73
- package/tests/cypress/e2e/_utils/selectors/dashboard-sidebar.cy.ts +21 -42
- package/tests/cypress/e2e/_utils/selectors/dashboard-topnav.bdd.md +117 -38
- package/tests/cypress/e2e/_utils/selectors/dashboard-topnav.cy.ts +35 -12
- package/tests/cypress/e2e/_utils/selectors/settings-layout.bdd.md +50 -59
- package/tests/cypress/e2e/_utils/selectors/settings-layout.cy.ts +15 -23
- package/tests/cypress/e2e/_utils/selectors/tasks.bdd.md +395 -155
- package/tests/cypress/e2e/_utils/selectors/tasks.cy.ts +795 -174
- package/tests/cypress/e2e/api/_core/teams/teams-security.cy.ts +415 -0
- package/tests/cypress/e2e/uat/_core/teams/inline-edit.cy.ts +278 -0
- package/tests/cypress/src/core/BlockEditorBasePOM.ts +269 -99
- package/tests/cypress/src/core/DashboardEntityPOM.ts +1 -1
- package/tests/cypress/src/features/DashboardPOM.ts +49 -28
- package/tests/cypress/src/features/PageBuilderPOM.ts +20 -0
- package/tests/cypress/src/features/SettingsPOM.ts +511 -166
- package/tests/cypress/src/features/SuperadminPOM.ts +679 -159
- package/tests/cypress/src/features/index.ts +10 -10
- package/tests/cypress/e2e/_utils/selectors/pages-editor.bdd.md +0 -207
- package/tests/cypress/e2e/_utils/selectors/pages-editor.cy.ts +0 -211
- package/tests/cypress/e2e/_utils/selectors/posts-editor.bdd.md +0 -184
- package/tests/cypress/e2e/_utils/selectors/posts-editor.cy.ts +0 -350
|
@@ -1,36 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
feature: Settings Layout UI Selectors Validation
|
|
3
3
|
priority: high
|
|
4
|
-
tags: [selectors, settings, layout, ui-validation]
|
|
4
|
+
tags: [selectors, settings, layout, sidebar, ui-validation]
|
|
5
5
|
grepTags: [ui-selectors, settings, SEL_LAY_001, SEL_LAY_002]
|
|
6
6
|
coverage: 2
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Settings Layout UI Selectors Validation
|
|
10
10
|
|
|
11
|
-
> Validates that settings layout selectors exist in the DOM. This is a lightweight test that ONLY checks selector presence, not functionality. Runs as Phase 12 sub-gate before functional tests.
|
|
11
|
+
> Validates that settings layout and sidebar selectors exist in the DOM. This is a lightweight test that ONLY checks selector presence, not functionality. Runs as Phase 12 sub-gate before functional tests.
|
|
12
12
|
|
|
13
|
-
## @test SEL_LAY_001: Layout Selectors
|
|
13
|
+
## @test SEL_LAY_001: Layout Selectors (sidebar.layout.*)
|
|
14
14
|
|
|
15
15
|
### Metadata
|
|
16
16
|
- **Priority:** High
|
|
17
17
|
- **Type:** Selector Validation
|
|
18
18
|
- **Tags:** settings, layout, container
|
|
19
19
|
- **Grep:** `@ui-selectors` `@SEL_LAY_001`
|
|
20
|
-
- **Status:** Active (
|
|
20
|
+
- **Status:** Active (6 passing, 0 skipped)
|
|
21
21
|
|
|
22
22
|
```gherkin:en
|
|
23
23
|
Scenario: Settings layout has required selectors
|
|
24
24
|
|
|
25
25
|
Given I am logged in as developer
|
|
26
26
|
And I navigate to the settings page
|
|
27
|
-
Then I should find the
|
|
28
|
-
And I should find the
|
|
29
|
-
And I should find the
|
|
30
|
-
And I should find the
|
|
31
|
-
And I should find the
|
|
32
|
-
And I should find the
|
|
33
|
-
And I should find the settings mobile sheet
|
|
27
|
+
Then I should find the layout main container
|
|
28
|
+
And I should find the back to dashboard link
|
|
29
|
+
And I should find the layout header
|
|
30
|
+
And I should find the layout content area
|
|
31
|
+
And I should find the sidebar container
|
|
32
|
+
And I should find the layout page content
|
|
34
33
|
```
|
|
35
34
|
|
|
36
35
|
```gherkin:es
|
|
@@ -38,23 +37,21 @@ Scenario: El layout de settings tiene los selectores requeridos
|
|
|
38
37
|
|
|
39
38
|
Given estoy logueado como developer
|
|
40
39
|
And navego a la pagina de settings
|
|
41
|
-
Then deberia encontrar el contenedor principal del layout
|
|
42
|
-
And deberia encontrar el
|
|
43
|
-
And deberia encontrar el
|
|
44
|
-
And deberia encontrar el
|
|
45
|
-
And deberia encontrar el contenedor del sidebar
|
|
46
|
-
And deberia encontrar el
|
|
47
|
-
And deberia encontrar el sheet movil de settings
|
|
40
|
+
Then deberia encontrar el contenedor principal del layout
|
|
41
|
+
And deberia encontrar el link de volver al dashboard
|
|
42
|
+
And deberia encontrar el header del layout
|
|
43
|
+
And deberia encontrar el area de contenido del layout
|
|
44
|
+
And deberia encontrar el contenedor del sidebar
|
|
45
|
+
And deberia encontrar el contenido de la pagina del layout
|
|
48
46
|
```
|
|
49
47
|
|
|
50
48
|
### Expected Results
|
|
51
|
-
- `settings.layout.main` selector exists (settings-layout-main)
|
|
52
|
-
- `settings.
|
|
53
|
-
- `settings.layout.
|
|
54
|
-
- `settings.layout.
|
|
55
|
-
- `settings.
|
|
56
|
-
- `settings.layout.
|
|
57
|
-
- `settings.layout.mobileSheet` selector exists (settings-mobile-sheet)
|
|
49
|
+
- `settings.sidebar.layout.main` selector exists (settings-layout-main)
|
|
50
|
+
- `settings.sidebar.backButton` selector exists (settings-back-to-dashboard)
|
|
51
|
+
- `settings.sidebar.layout.header` selector exists (settings-layout-header)
|
|
52
|
+
- `settings.sidebar.layout.contentArea` selector exists (settings-layout-content-area)
|
|
53
|
+
- `settings.sidebar.container` selector exists (settings-sidebar)
|
|
54
|
+
- `settings.sidebar.layout.pageContent` selector exists (settings-layout-page-content)
|
|
58
55
|
|
|
59
56
|
---
|
|
60
57
|
|
|
@@ -65,25 +62,23 @@ And deberia encontrar el sheet movil de settings
|
|
|
65
62
|
- **Type:** Selector Validation
|
|
66
63
|
- **Tags:** settings, sidebar, navigation
|
|
67
64
|
- **Grep:** `@ui-selectors` `@SEL_LAY_002`
|
|
68
|
-
- **Status:** Active (
|
|
65
|
+
- **Status:** Active (10 passing, 0 skipped)
|
|
69
66
|
|
|
70
67
|
```gherkin:en
|
|
71
68
|
Scenario: Settings sidebar has all navigation links
|
|
72
69
|
|
|
73
70
|
Given I am logged in as developer
|
|
74
71
|
And I navigate to the settings page
|
|
75
|
-
Then I should find the
|
|
72
|
+
Then I should find the sidebar container
|
|
73
|
+
And I should find the sidebar header
|
|
74
|
+
And I should find the sidebar nav items container
|
|
75
|
+
And I should find the profile nav link
|
|
76
|
+
And I should find the security nav link
|
|
76
77
|
And I should find the password nav link
|
|
77
|
-
And I should find the teams nav link
|
|
78
|
-
And I should find the API keys nav link
|
|
79
|
-
And I should find the appearance nav link
|
|
80
78
|
And I should find the notifications nav link
|
|
79
|
+
And I should find the api-keys nav link
|
|
81
80
|
And I should find the billing nav link
|
|
82
|
-
And I should find the
|
|
83
|
-
And I should find the invite nav link
|
|
84
|
-
And I should find the roles nav link
|
|
85
|
-
And I should find the danger zone nav link
|
|
86
|
-
And I should find the back to dashboard link
|
|
81
|
+
And I should find the teams nav link
|
|
87
82
|
```
|
|
88
83
|
|
|
89
84
|
```gherkin:es
|
|
@@ -91,36 +86,32 @@ Scenario: El sidebar de settings tiene todos los links de navegacion
|
|
|
91
86
|
|
|
92
87
|
Given estoy logueado como developer
|
|
93
88
|
And navego a la pagina de settings
|
|
94
|
-
Then deberia encontrar el
|
|
89
|
+
Then deberia encontrar el contenedor del sidebar
|
|
90
|
+
And deberia encontrar el header del sidebar
|
|
91
|
+
And deberia encontrar el contenedor de items de navegacion
|
|
92
|
+
And deberia encontrar el link de navegacion a perfil
|
|
93
|
+
And deberia encontrar el link de navegacion a seguridad
|
|
95
94
|
And deberia encontrar el link de navegacion a password
|
|
96
|
-
And deberia encontrar el link de navegacion a equipos
|
|
97
|
-
And deberia encontrar el link de navegacion a API keys
|
|
98
|
-
And deberia encontrar el link de navegacion a apariencia
|
|
99
95
|
And deberia encontrar el link de navegacion a notificaciones
|
|
96
|
+
And deberia encontrar el link de navegacion a api-keys
|
|
100
97
|
And deberia encontrar el link de navegacion a facturacion
|
|
101
|
-
And deberia encontrar el link de navegacion a
|
|
102
|
-
And deberia encontrar el link de navegacion a invitar
|
|
103
|
-
And deberia encontrar el link de navegacion a roles
|
|
104
|
-
And deberia encontrar el link de navegacion a zona de peligro
|
|
105
|
-
And deberia encontrar el link de volver al dashboard
|
|
98
|
+
And deberia encontrar el link de navegacion a equipos
|
|
106
99
|
```
|
|
107
100
|
|
|
108
101
|
### Expected Results
|
|
109
|
-
- `settings.sidebar.
|
|
110
|
-
- `settings.sidebar.
|
|
111
|
-
- `settings.sidebar.
|
|
112
|
-
- `settings.sidebar.
|
|
113
|
-
- `settings.sidebar.
|
|
114
|
-
- `settings.sidebar.
|
|
115
|
-
- `settings.sidebar.
|
|
116
|
-
- `settings.sidebar.
|
|
117
|
-
- `settings.sidebar.
|
|
118
|
-
- `settings.sidebar.
|
|
119
|
-
- `settings.sidebar.dangerZone` selector exists (settings-sidebar-danger-zone)
|
|
120
|
-
- `settings.sidebar.backToDashboard` selector exists (settings-sidebar-back-to-dashboard)
|
|
102
|
+
- `settings.sidebar.container` selector exists (settings-sidebar)
|
|
103
|
+
- `settings.sidebar.header` selector exists (settings-sidebar-header)
|
|
104
|
+
- `settings.sidebar.nav.items` selector exists (settings-sidebar-nav-items)
|
|
105
|
+
- `settings.sidebar.nav.item` with section=profile exists (settings-sidebar-nav-profile)
|
|
106
|
+
- `settings.sidebar.nav.item` with section=security exists (settings-sidebar-nav-security)
|
|
107
|
+
- `settings.sidebar.nav.item` with section=password exists (settings-sidebar-nav-password)
|
|
108
|
+
- `settings.sidebar.nav.item` with section=notifications exists (settings-sidebar-nav-notifications)
|
|
109
|
+
- `settings.sidebar.nav.item` with section=api-keys exists (settings-sidebar-nav-api-keys)
|
|
110
|
+
- `settings.sidebar.nav.item` with section=billing exists (settings-sidebar-nav-billing)
|
|
111
|
+
- `settings.sidebar.nav.item` with section=teams exists (settings-sidebar-nav-teams)
|
|
121
112
|
|
|
122
113
|
### Notes
|
|
123
|
-
Some sidebar items may not be visible depending on user permissions. The test validates selectors that are accessible to the developer role.
|
|
114
|
+
Some sidebar items may not be visible depending on user permissions and theme configuration. The test validates selectors that are accessible to the developer role.
|
|
124
115
|
|
|
125
116
|
---
|
|
126
117
|
|
|
@@ -128,8 +119,8 @@ Some sidebar items may not be visible depending on user permissions. The test va
|
|
|
128
119
|
|
|
129
120
|
| Component | File | Selectors |
|
|
130
121
|
|-----------|------|-----------|
|
|
131
|
-
| SettingsLayout | `packages/core/src/components/settings/SettingsLayout.tsx` | settings-layout-main, settings-layout-header, settings-layout-content |
|
|
132
|
-
| SettingsSidebar | `packages/core/src/components/settings/SettingsSidebar.tsx` | settings-sidebar
|
|
122
|
+
| SettingsLayout | `packages/core/src/components/settings/layouts/SettingsLayout.tsx` | settings-layout-main, settings-layout-header, settings-layout-content-area |
|
|
123
|
+
| SettingsSidebar | `packages/core/src/components/settings/layouts/SettingsSidebar.tsx` | settings-sidebar, settings-sidebar-header, settings-sidebar-nav-* |
|
|
133
124
|
|
|
134
125
|
## Related POMs
|
|
135
126
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Purpose:
|
|
8
8
|
* - Validate SettingsPOM layout and sidebar selectors work correctly
|
|
9
|
-
* - Ensure all settings.
|
|
9
|
+
* - Ensure all settings.sidebar.* and settings.sidebar.layout.* selectors are implemented
|
|
10
10
|
* - Run as Phase 12 sub-gate before functional tests
|
|
11
11
|
*
|
|
12
12
|
* Scope:
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - Fast execution (< 30 seconds per describe block)
|
|
16
16
|
*
|
|
17
17
|
* Test IDs:
|
|
18
|
-
* - SEL_LAY_001: Layout Selectors
|
|
18
|
+
* - SEL_LAY_001: Layout Selectors (under sidebar.layout.*)
|
|
19
19
|
* - SEL_LAY_002: Sidebar Selectors
|
|
20
20
|
*/
|
|
21
21
|
|
|
@@ -30,7 +30,7 @@ describe('Settings Layout Selectors Validation', { tags: ['@ui-selectors', '@set
|
|
|
30
30
|
})
|
|
31
31
|
|
|
32
32
|
// ============================================
|
|
33
|
-
// SEL_LAY_001: LAYOUT SELECTORS
|
|
33
|
+
// SEL_LAY_001: LAYOUT SELECTORS (sidebar.layout.*)
|
|
34
34
|
// ============================================
|
|
35
35
|
describe('SEL_LAY_001: Layout Selectors', { tags: '@SEL_LAY_001' }, () => {
|
|
36
36
|
beforeEach(() => {
|
|
@@ -42,12 +42,8 @@ describe('Settings Layout Selectors Validation', { tags: ['@ui-selectors', '@set
|
|
|
42
42
|
cy.get(settings.selectors.layoutMain).should('exist')
|
|
43
43
|
})
|
|
44
44
|
|
|
45
|
-
it('should find layout nav', () => {
|
|
46
|
-
cy.get(settings.selectors.layoutNav).should('exist')
|
|
47
|
-
})
|
|
48
|
-
|
|
49
45
|
it('should find back to dashboard link', () => {
|
|
50
|
-
cy.get(settings.selectors.
|
|
46
|
+
cy.get(settings.selectors.sidebarBackButton).should('exist')
|
|
51
47
|
})
|
|
52
48
|
|
|
53
49
|
it('should find layout header', () => {
|
|
@@ -58,8 +54,8 @@ describe('Settings Layout Selectors Validation', { tags: ['@ui-selectors', '@set
|
|
|
58
54
|
cy.get(settings.selectors.layoutContentArea).should('exist')
|
|
59
55
|
})
|
|
60
56
|
|
|
61
|
-
it('should find
|
|
62
|
-
cy.get(settings.selectors.
|
|
57
|
+
it('should find sidebar container', () => {
|
|
58
|
+
cy.get(settings.selectors.sidebarContainer).should('exist')
|
|
63
59
|
})
|
|
64
60
|
|
|
65
61
|
it('should find layout page content', () => {
|
|
@@ -76,8 +72,8 @@ describe('Settings Layout Selectors Validation', { tags: ['@ui-selectors', '@set
|
|
|
76
72
|
settings.waitForSettings()
|
|
77
73
|
})
|
|
78
74
|
|
|
79
|
-
it('should find sidebar
|
|
80
|
-
cy.get(settings.selectors.
|
|
75
|
+
it('should find sidebar container', () => {
|
|
76
|
+
cy.get(settings.selectors.sidebarContainer).should('exist')
|
|
81
77
|
})
|
|
82
78
|
|
|
83
79
|
it('should find sidebar header', () => {
|
|
@@ -89,35 +85,31 @@ describe('Settings Layout Selectors Validation', { tags: ['@ui-selectors', '@set
|
|
|
89
85
|
})
|
|
90
86
|
|
|
91
87
|
it('should find profile nav item', () => {
|
|
92
|
-
cy.get(settings.selectors.
|
|
88
|
+
cy.get(settings.selectors.sidebarNavItem('profile')).should('exist')
|
|
93
89
|
})
|
|
94
90
|
|
|
95
91
|
it('should find security nav item', () => {
|
|
96
|
-
cy.get(settings.selectors.
|
|
92
|
+
cy.get(settings.selectors.sidebarNavItem('security')).should('exist')
|
|
97
93
|
})
|
|
98
94
|
|
|
99
95
|
it('should find password nav item', () => {
|
|
100
|
-
cy.get(settings.selectors.
|
|
96
|
+
cy.get(settings.selectors.sidebarNavItem('password')).should('exist')
|
|
101
97
|
})
|
|
102
98
|
|
|
103
99
|
it('should find notifications nav item', () => {
|
|
104
|
-
cy.get(settings.selectors.
|
|
100
|
+
cy.get(settings.selectors.sidebarNavItem('notifications')).should('exist')
|
|
105
101
|
})
|
|
106
102
|
|
|
107
103
|
it('should find api-keys nav item', () => {
|
|
108
|
-
cy.get(settings.selectors.
|
|
104
|
+
cy.get(settings.selectors.sidebarNavItem('api-keys')).should('exist')
|
|
109
105
|
})
|
|
110
106
|
|
|
111
107
|
it('should find billing nav item', () => {
|
|
112
|
-
cy.get(settings.selectors.
|
|
108
|
+
cy.get(settings.selectors.sidebarNavItem('billing')).should('exist')
|
|
113
109
|
})
|
|
114
110
|
|
|
115
111
|
it('should find teams nav item', () => {
|
|
116
|
-
cy.get(settings.selectors.
|
|
117
|
-
})
|
|
118
|
-
|
|
119
|
-
it('should find plans nav item', () => {
|
|
120
|
-
cy.get(settings.selectors.navItem('plans')).should('exist')
|
|
112
|
+
cy.get(settings.selectors.sidebarNavItem('teams')).should('exist')
|
|
121
113
|
})
|
|
122
114
|
})
|
|
123
115
|
})
|