@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,215 @@
|
|
|
1
|
+
# Cypress Documentation Videos
|
|
2
|
+
|
|
3
|
+
This directory contains Cypress tests designed to generate documentation videos with narration support.
|
|
4
|
+
|
|
5
|
+
## Concept
|
|
6
|
+
|
|
7
|
+
Instead of manually recording tutorial videos, we use Cypress tests that:
|
|
8
|
+
1. **Slow down execution** to human-readable speed using `cypress-slow-down`
|
|
9
|
+
2. **Add narration markers** that are saved as JSON for post-processing
|
|
10
|
+
3. **Highlight elements** visually during important steps
|
|
11
|
+
4. **Generate MP4 videos** automatically via Cypress video recording
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
### Run a documentation test
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Interactive mode (watch the test execute)
|
|
19
|
+
NEXT_PUBLIC_ACTIVE_THEME=default pnpm cy:open
|
|
20
|
+
|
|
21
|
+
# Headless mode (generates video file)
|
|
22
|
+
NEXT_PUBLIC_ACTIVE_THEME=default pnpm cy:run --spec "**/teams-system.doc.cy.ts"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Output Files
|
|
26
|
+
|
|
27
|
+
After running, you'll find:
|
|
28
|
+
- **Video**: `cypress/videos/docs/tutorials/teams-system.doc.cy.ts.mp4`
|
|
29
|
+
- **Narrations**: `cypress/docs-output/narrations/teams-system.doc-narrations.json`
|
|
30
|
+
|
|
31
|
+
## File Structure
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
cypress/e2e/docs/
|
|
35
|
+
├── README.md # This file
|
|
36
|
+
└── tutorials/
|
|
37
|
+
├── teams-system.doc.cy.ts # The actual Cypress test
|
|
38
|
+
└── teams-system.narration.json # Narration script (reference)
|
|
39
|
+
|
|
40
|
+
cypress/docs-output/
|
|
41
|
+
└── narrations/
|
|
42
|
+
└── teams-system.doc-narrations.json # Generated narration timing
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Creating a New Documentation Video
|
|
46
|
+
|
|
47
|
+
### 1. Plan the narration
|
|
48
|
+
|
|
49
|
+
Create a `.narration.json` file with your script:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"title": "Feature Name Tutorial",
|
|
54
|
+
"chapters": [
|
|
55
|
+
{
|
|
56
|
+
"id": "intro",
|
|
57
|
+
"title": "Introduction",
|
|
58
|
+
"narrations": [
|
|
59
|
+
{
|
|
60
|
+
"step": 1,
|
|
61
|
+
"text": "Welcome to this tutorial...",
|
|
62
|
+
"action": "none",
|
|
63
|
+
"estimatedSeconds": 5
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 2. Create the test file
|
|
72
|
+
|
|
73
|
+
Use the `*.doc.cy.ts` naming convention:
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
import { slowCypressDown } from 'cypress-slow-down'
|
|
77
|
+
import 'cypress-slow-down/commands'
|
|
78
|
+
|
|
79
|
+
const CONFIG = {
|
|
80
|
+
commandDelay: 600, // ms between commands
|
|
81
|
+
narration: {
|
|
82
|
+
short: 2500,
|
|
83
|
+
medium: 4000,
|
|
84
|
+
long: 5500,
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
describe('Tutorial: Feature Name', { tags: ['@doc'] }, () => {
|
|
89
|
+
before(() => {
|
|
90
|
+
slowCypressDown(CONFIG.commandDelay)
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
it('demonstrates the feature', () => {
|
|
94
|
+
// Chapter marker
|
|
95
|
+
cy.log('📖 **CHAPTER: Introduction**')
|
|
96
|
+
cy.wait(2000)
|
|
97
|
+
|
|
98
|
+
// Narration with wait
|
|
99
|
+
cy.log('🎙️ Welcome to this tutorial about...')
|
|
100
|
+
cy.wait(4000) // Time for narration
|
|
101
|
+
|
|
102
|
+
// Your test actions...
|
|
103
|
+
cy.visit('/some-page')
|
|
104
|
+
|
|
105
|
+
// Highlight important elements
|
|
106
|
+
cy.get('[data-cy="important"]').then($el => {
|
|
107
|
+
$el.css({ outline: '4px solid red' })
|
|
108
|
+
})
|
|
109
|
+
cy.wait(2000) // Let viewer see highlight
|
|
110
|
+
})
|
|
111
|
+
})
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 3. Run and collect outputs
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Generate video and narrations
|
|
118
|
+
NEXT_PUBLIC_ACTIVE_THEME=default pnpm cy:run --spec "**/your-feature.doc.cy.ts"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Post-Processing Pipeline
|
|
122
|
+
|
|
123
|
+
The generated outputs can be processed with AI tools:
|
|
124
|
+
|
|
125
|
+
### Video + Narrations → Final Documentation
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
129
|
+
│ Cypress Video │ │ Narration JSON │ │ AI Service │
|
|
130
|
+
│ (MP4, no audio)│───►│ (timestamps) │───►│ (Guidde/HeyGen)│
|
|
131
|
+
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
132
|
+
│
|
|
133
|
+
▼
|
|
134
|
+
┌─────────────────┐
|
|
135
|
+
│ Final Video │
|
|
136
|
+
│ + AI Narration │
|
|
137
|
+
│ + Subtitles │
|
|
138
|
+
└─────────────────┘
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Narration JSON Format
|
|
142
|
+
|
|
143
|
+
The generated `*-narrations.json` contains:
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
[
|
|
147
|
+
{
|
|
148
|
+
"timestamp": 1702400000000,
|
|
149
|
+
"step": 1,
|
|
150
|
+
"text": "=== Introduction ===",
|
|
151
|
+
"chapter": "Introduction",
|
|
152
|
+
"duration": 2500
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"timestamp": 1702400002500,
|
|
156
|
+
"step": 2,
|
|
157
|
+
"text": "Welcome to this tutorial...",
|
|
158
|
+
"duration": 4000
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
This can be used to:
|
|
164
|
+
- Generate SRT subtitle files
|
|
165
|
+
- Send to text-to-speech APIs (ElevenLabs, Google TTS)
|
|
166
|
+
- Sync audio with video using FFmpeg
|
|
167
|
+
|
|
168
|
+
## Speed Configuration
|
|
169
|
+
|
|
170
|
+
Adjust the `commandDelay` and narration durations based on your needs:
|
|
171
|
+
|
|
172
|
+
| Setting | Value | Use Case |
|
|
173
|
+
|---------|-------|----------|
|
|
174
|
+
| `commandDelay: 300` | Fast | Quick demos |
|
|
175
|
+
| `commandDelay: 600` | Normal | Standard tutorials |
|
|
176
|
+
| `commandDelay: 1000` | Slow | Detailed explanations |
|
|
177
|
+
|
|
178
|
+
### Narration Timing Guide
|
|
179
|
+
|
|
180
|
+
| Duration | Words | Use For |
|
|
181
|
+
|----------|-------|---------|
|
|
182
|
+
| 2500ms | ~8-10 | Short phrases |
|
|
183
|
+
| 4000ms | ~15-18 | Standard sentences |
|
|
184
|
+
| 5500ms | ~22-25 | Longer explanations |
|
|
185
|
+
|
|
186
|
+
## Tips
|
|
187
|
+
|
|
188
|
+
1. **Use `cy.wait()` strategically** - Add pauses after important actions
|
|
189
|
+
2. **Highlight sparingly** - Only highlight what you're talking about
|
|
190
|
+
3. **Chapter markers** - Help viewers navigate in longer videos
|
|
191
|
+
4. **Test first without slow-down** - Ensure test passes before recording
|
|
192
|
+
5. **Keep videos under 5 minutes** - Split longer tutorials into parts
|
|
193
|
+
|
|
194
|
+
## Running Only Doc Tests
|
|
195
|
+
|
|
196
|
+
Use tags to filter:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
# Run only documentation tests
|
|
200
|
+
pnpm cy:run --env grepTags=@doc
|
|
201
|
+
|
|
202
|
+
# Run only tutorial tests
|
|
203
|
+
pnpm cy:run --env grepTags=@tutorial
|
|
204
|
+
|
|
205
|
+
# Exclude doc tests from regular test runs
|
|
206
|
+
pnpm cy:run --env grepTags=-@doc
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Future Enhancements
|
|
210
|
+
|
|
211
|
+
- [ ] Automated subtitle generation script
|
|
212
|
+
- [ ] Integration with AI narration APIs
|
|
213
|
+
- [ ] FFmpeg post-processing script
|
|
214
|
+
- [ ] Multi-language support
|
|
215
|
+
- [ ] Automated upload to docs site
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Sector 7 - SuperAdmin Teams View",
|
|
3
|
+
"description": "Tutorial que muestra cómo un super administrador puede acceder a Sector 7 y visualizar todos los equipos del sistema.",
|
|
4
|
+
"language": "es",
|
|
5
|
+
"estimatedDuration": "1-1:30 minutos",
|
|
6
|
+
"targetAudience": "Usuarios finales con rol superadmin",
|
|
7
|
+
"chapters": [
|
|
8
|
+
{
|
|
9
|
+
"id": "intro",
|
|
10
|
+
"title": "Introducción",
|
|
11
|
+
"narrations": [
|
|
12
|
+
{
|
|
13
|
+
"step": 1,
|
|
14
|
+
"text": "Bienvenido a Sector 7, el área exclusiva para super administradores.",
|
|
15
|
+
"action": "none",
|
|
16
|
+
"estimatedSeconds": 4
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"step": 2,
|
|
20
|
+
"text": "Hoy veremos cómo acceder y visualizar todos los equipos del sistema.",
|
|
21
|
+
"action": "none",
|
|
22
|
+
"estimatedSeconds": 4
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "login",
|
|
28
|
+
"title": "Login como SuperAdmin",
|
|
29
|
+
"narrations": [
|
|
30
|
+
{
|
|
31
|
+
"step": 3,
|
|
32
|
+
"text": "Iniciamos sesión con las credenciales de superadmin.",
|
|
33
|
+
"action": "visit-login",
|
|
34
|
+
"estimatedSeconds": 3
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"step": 4,
|
|
38
|
+
"text": "Usamos el email del superadmin de prueba.",
|
|
39
|
+
"action": "fill-email",
|
|
40
|
+
"estimatedSeconds": 4
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"step": 5,
|
|
44
|
+
"text": "Ingresamos la contraseña y enviamos.",
|
|
45
|
+
"action": "fill-password-submit",
|
|
46
|
+
"estimatedSeconds": 5
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"step": 6,
|
|
50
|
+
"text": "Acceso concedido. Observa el icono de Sector 7 en la barra superior.",
|
|
51
|
+
"action": "highlight-sector7-icon",
|
|
52
|
+
"estimatedSeconds": 5
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "navigation",
|
|
58
|
+
"title": "Navegación a Sector 7",
|
|
59
|
+
"narrations": [
|
|
60
|
+
{
|
|
61
|
+
"step": 7,
|
|
62
|
+
"text": "Hacemos clic para ingresar al área restringida.",
|
|
63
|
+
"action": "click-sector7",
|
|
64
|
+
"estimatedSeconds": 3
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"step": 8,
|
|
68
|
+
"text": "Este es el panel de control del super administrador.",
|
|
69
|
+
"action": "show-dashboard",
|
|
70
|
+
"estimatedSeconds": 5
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"step": 9,
|
|
74
|
+
"text": "En el menú lateral vemos las opciones disponibles.",
|
|
75
|
+
"action": "highlight-teams-nav",
|
|
76
|
+
"estimatedSeconds": 4
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "teams-view",
|
|
82
|
+
"title": "Visualización de Teams",
|
|
83
|
+
"narrations": [
|
|
84
|
+
{
|
|
85
|
+
"step": 10,
|
|
86
|
+
"text": "Navegamos a la sección de Equipos.",
|
|
87
|
+
"action": "click-teams-nav",
|
|
88
|
+
"estimatedSeconds": 3
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"step": 11,
|
|
92
|
+
"text": "Aquí vemos todos los equipos del sistema con estadísticas.",
|
|
93
|
+
"action": "show-stats",
|
|
94
|
+
"estimatedSeconds": 5
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"step": 12,
|
|
98
|
+
"text": "La pestaña Work Teams muestra equipos colaborativos.",
|
|
99
|
+
"action": "highlight-work-tab",
|
|
100
|
+
"estimatedSeconds": 4
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"step": 13,
|
|
104
|
+
"text": "También podemos ver los equipos personales de cada usuario.",
|
|
105
|
+
"action": "click-personal-tab",
|
|
106
|
+
"estimatedSeconds": 5
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"step": 14,
|
|
110
|
+
"text": "El buscador permite filtrar equipos por nombre o email del propietario.",
|
|
111
|
+
"action": "highlight-search",
|
|
112
|
+
"estimatedSeconds": 4
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "conclusion",
|
|
118
|
+
"title": "Conclusión",
|
|
119
|
+
"narrations": [
|
|
120
|
+
{
|
|
121
|
+
"step": 15,
|
|
122
|
+
"text": "Así funciona Sector 7: acceso exclusivo a la gestión global del sistema.",
|
|
123
|
+
"action": "none",
|
|
124
|
+
"estimatedSeconds": 5
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"step": 16,
|
|
128
|
+
"text": "Gracias por ver este tutorial.",
|
|
129
|
+
"action": "none",
|
|
130
|
+
"estimatedSeconds": 3
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"totalSteps": 16,
|
|
136
|
+
"technicalNotes": {
|
|
137
|
+
"users": {
|
|
138
|
+
"superadmin": "superadmin@cypress.com",
|
|
139
|
+
"password": "Pandora1234"
|
|
140
|
+
},
|
|
141
|
+
"routes": [
|
|
142
|
+
"/login",
|
|
143
|
+
"/dashboard",
|
|
144
|
+
"/sector7",
|
|
145
|
+
"/sector7/teams"
|
|
146
|
+
],
|
|
147
|
+
"selectors": {
|
|
148
|
+
"topnavSector7": "[data-cy='topnav-sector7']",
|
|
149
|
+
"sector7NavTeams": "[data-cy='sector7-nav-teams']",
|
|
150
|
+
"teamsSearchInput": "[data-cy='teams-search-input']",
|
|
151
|
+
"workTeamsTab": "[value='work']",
|
|
152
|
+
"personalTeamsTab": "[value='personal']"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|