@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.
Files changed (220) hide show
  1. package/package.json +1 -1
  2. package/tests/cypress/e2e/_devtools/access.bdd.md +262 -0
  3. package/tests/cypress/e2e/_devtools/access.cy.ts +171 -0
  4. package/tests/cypress/e2e/_devtools/navigation.bdd.md +261 -0
  5. package/tests/cypress/e2e/_devtools/navigation.cy.ts +157 -0
  6. package/tests/cypress/e2e/_devtools/pages.bdd.md +303 -0
  7. package/tests/cypress/e2e/_devtools/pages.cy.ts +184 -0
  8. package/tests/cypress/e2e/_docs/README.md +215 -0
  9. package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin-teams.narration.json +155 -0
  10. package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin.cy.ts +390 -0
  11. package/tests/cypress/e2e/_docs/tutorials/teams-system.doc.cy.ts +349 -0
  12. package/tests/cypress/e2e/_docs/tutorials/teams-system.narration.json +165 -0
  13. package/tests/cypress/e2e/_selectors/auth.cy.ts +306 -0
  14. package/tests/cypress/e2e/_selectors/billing.cy.ts +89 -0
  15. package/tests/cypress/e2e/_selectors/dashboard-mobile.cy.ts +113 -0
  16. package/tests/cypress/e2e/_selectors/dashboard-navigation.cy.ts +89 -0
  17. package/tests/cypress/e2e/_selectors/dashboard-sidebar.cy.ts +60 -0
  18. package/tests/cypress/e2e/_selectors/dashboard-topnav.cy.ts +146 -0
  19. package/tests/cypress/e2e/_selectors/devtools.cy.ts +210 -0
  20. package/tests/cypress/e2e/_selectors/global-search.cy.ts +88 -0
  21. package/tests/cypress/e2e/_selectors/pages-editor.cy.ts +179 -0
  22. package/tests/cypress/e2e/_selectors/posts-editor.cy.ts +282 -0
  23. package/tests/cypress/e2e/_selectors/public.cy.ts +112 -0
  24. package/tests/cypress/e2e/_selectors/settings-api-keys.cy.ts +228 -0
  25. package/tests/cypress/e2e/_selectors/settings-billing.cy.ts +105 -0
  26. package/tests/cypress/e2e/_selectors/settings-layout.cy.ts +119 -0
  27. package/tests/cypress/e2e/_selectors/settings-password.cy.ts +71 -0
  28. package/tests/cypress/e2e/_selectors/settings-profile.cy.ts +82 -0
  29. package/tests/cypress/e2e/_selectors/settings-teams.cy.ts +68 -0
  30. package/tests/cypress/e2e/_selectors/superadmin.cy.ts +185 -0
  31. package/tests/cypress/e2e/_selectors/tasks.cy.ts +242 -0
  32. package/tests/cypress/e2e/_selectors/taxonomies.cy.ts +126 -0
  33. package/tests/cypress/e2e/_selectors/teams.cy.ts +142 -0
  34. package/tests/cypress/e2e/_superadmin/all-teams.bdd.md +261 -0
  35. package/tests/cypress/e2e/_superadmin/all-teams.cy.ts +177 -0
  36. package/tests/cypress/e2e/_superadmin/all-users.bdd.md +406 -0
  37. package/tests/cypress/e2e/_superadmin/all-users.cy.ts +294 -0
  38. package/tests/cypress/e2e/_superadmin/dashboard.bdd.md +235 -0
  39. package/tests/cypress/e2e/_superadmin/dashboard.cy.ts +149 -0
  40. package/tests/cypress/e2e/_superadmin/subscriptions-overview.bdd.md +290 -0
  41. package/tests/cypress/e2e/_superadmin/subscriptions-overview.cy.ts +194 -0
  42. package/tests/cypress/e2e/ai/ai-usage.cy.ts +209 -0
  43. package/tests/cypress/e2e/ai/chat-api.cy.ts +107 -0
  44. package/tests/cypress/e2e/ai/guardrails.cy.ts +332 -0
  45. package/tests/cypress/e2e/api/billing/BillingAPIController.js +319 -0
  46. package/tests/cypress/e2e/api/billing/check-action.cy.ts +326 -0
  47. package/tests/cypress/e2e/api/billing/checkout.cy.ts +358 -0
  48. package/tests/cypress/e2e/api/billing/lifecycle.cy.ts +423 -0
  49. package/tests/cypress/e2e/api/billing/plans/README.md +345 -0
  50. package/tests/cypress/e2e/api/billing/plans/business.cy.ts +412 -0
  51. package/tests/cypress/e2e/api/billing/plans/downgrade.cy.ts +510 -0
  52. package/tests/cypress/e2e/api/billing/plans/fixtures/billing-plans.json +163 -0
  53. package/tests/cypress/e2e/api/billing/plans/free.cy.ts +500 -0
  54. package/tests/cypress/e2e/api/billing/plans/pro.cy.ts +497 -0
  55. package/tests/cypress/e2e/api/billing/plans/starter.cy.ts +342 -0
  56. package/tests/cypress/e2e/api/billing/portal.cy.ts +313 -0
  57. package/tests/cypress/e2e/api/devtools/registries.bdd.md +300 -0
  58. package/tests/cypress/e2e/api/devtools/registries.cy.ts +368 -0
  59. package/tests/cypress/e2e/api/entities/blocks-scope.cy.ts +396 -0
  60. package/tests/cypress/e2e/api/entities/customers-crud.cy.ts +648 -0
  61. package/tests/cypress/e2e/api/entities/customers-metas.cy.ts +839 -0
  62. package/tests/cypress/e2e/api/entities/pages-crud.cy.ts +425 -0
  63. package/tests/cypress/e2e/api/entities/pages-status.cy.ts +335 -0
  64. package/tests/cypress/e2e/api/entities/post-categories-crud.cy.ts +610 -0
  65. package/tests/cypress/e2e/api/entities/posts-crud.cy.ts +709 -0
  66. package/tests/cypress/e2e/api/entities/posts-status.cy.ts +396 -0
  67. package/tests/cypress/e2e/api/entities/tasks-crud.cy.ts +602 -0
  68. package/tests/cypress/e2e/api/entities/tasks-metas.cy.ts +878 -0
  69. package/tests/cypress/e2e/api/entities/users-crud.cy.ts +469 -0
  70. package/tests/cypress/e2e/api/entities/users-metas.cy.ts +913 -0
  71. package/tests/cypress/e2e/api/entities/users-security.cy.ts +375 -0
  72. package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.bdd.md +375 -0
  73. package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.cy.ts +346 -0
  74. package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.bdd.md +451 -0
  75. package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.cy.ts +447 -0
  76. package/tests/cypress/e2e/api/scheduled-actions/scheduling.bdd.md +649 -0
  77. package/tests/cypress/e2e/api/scheduled-actions/scheduling.cy.ts +333 -0
  78. package/tests/cypress/e2e/api/settings/api-keys.crud.cy.ts +923 -0
  79. package/tests/cypress/e2e/uat/auth/app-roles/developer-login.bdd.md +231 -0
  80. package/tests/cypress/e2e/uat/auth/app-roles/developer-login.cy.ts +144 -0
  81. package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.bdd.md +118 -0
  82. package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.cy.ts +84 -0
  83. package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.bdd.md +288 -0
  84. package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.cy.ts +188 -0
  85. package/tests/cypress/e2e/uat/auth/login-logout.bdd.md +160 -0
  86. package/tests/cypress/e2e/uat/auth/login-logout.cy.ts +116 -0
  87. package/tests/cypress/e2e/uat/auth/password-reset.bdd.md +289 -0
  88. package/tests/cypress/e2e/uat/auth/password-reset.cy.ts +200 -0
  89. package/tests/cypress/e2e/uat/auth/team-roles/admin-login.bdd.md +225 -0
  90. package/tests/cypress/e2e/uat/auth/team-roles/admin-login.cy.ts +148 -0
  91. package/tests/cypress/e2e/uat/auth/team-roles/member-login.bdd.md +251 -0
  92. package/tests/cypress/e2e/uat/auth/team-roles/member-login.cy.ts +163 -0
  93. package/tests/cypress/e2e/uat/auth/team-roles/owner-login.bdd.md +231 -0
  94. package/tests/cypress/e2e/uat/auth/team-roles/owner-login.cy.ts +141 -0
  95. package/tests/cypress/e2e/uat/billing/extended.bdd.md +273 -0
  96. package/tests/cypress/e2e/uat/billing/extended.cy.ts +209 -0
  97. package/tests/cypress/e2e/uat/billing/feature-gates.bdd.md +407 -0
  98. package/tests/cypress/e2e/uat/billing/feature-gates.cy.ts +307 -0
  99. package/tests/cypress/e2e/uat/billing/page.bdd.md +329 -0
  100. package/tests/cypress/e2e/uat/billing/page.cy.ts +250 -0
  101. package/tests/cypress/e2e/uat/billing/status.bdd.md +190 -0
  102. package/tests/cypress/e2e/uat/billing/status.cy.ts +145 -0
  103. package/tests/cypress/e2e/uat/billing/team-switch.bdd.md +156 -0
  104. package/tests/cypress/e2e/uat/billing/team-switch.cy.ts +122 -0
  105. package/tests/cypress/e2e/uat/billing/usage.bdd.md +218 -0
  106. package/tests/cypress/e2e/uat/billing/usage.cy.ts +176 -0
  107. package/tests/cypress/e2e/uat/blocks/hero.bdd.md +124 -0
  108. package/tests/cypress/e2e/uat/blocks/hero.cy.ts +56 -0
  109. package/tests/cypress/e2e/uat/devtools/api-tester.cy.ts +390 -0
  110. package/tests/cypress/e2e/uat/entities/customers/member.bdd.md +275 -0
  111. package/tests/cypress/e2e/uat/entities/customers/member.cy.ts +122 -0
  112. package/tests/cypress/e2e/uat/entities/customers/owner.bdd.md +243 -0
  113. package/tests/cypress/e2e/uat/entities/customers/owner.cy.ts +165 -0
  114. package/tests/cypress/e2e/uat/entities/pages/block-crud.bdd.md +476 -0
  115. package/tests/cypress/e2e/uat/entities/pages/block-crud.cy.ts +486 -0
  116. package/tests/cypress/e2e/uat/entities/pages/block-editor.bdd.md +460 -0
  117. package/tests/cypress/e2e/uat/entities/pages/block-editor.cy.ts +301 -0
  118. package/tests/cypress/e2e/uat/entities/pages/list.bdd.md +432 -0
  119. package/tests/cypress/e2e/uat/entities/pages/list.cy.ts +273 -0
  120. package/tests/cypress/e2e/uat/entities/pages/public-rendering.bdd.md +696 -0
  121. package/tests/cypress/e2e/uat/entities/pages/public-rendering.cy.ts +340 -0
  122. package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.bdd.md +161 -0
  123. package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.cy.ts +104 -0
  124. package/tests/cypress/e2e/uat/entities/posts/categories.bdd.md +375 -0
  125. package/tests/cypress/e2e/uat/entities/posts/categories.cy.ts +241 -0
  126. package/tests/cypress/e2e/uat/entities/posts/editor.bdd.md +429 -0
  127. package/tests/cypress/e2e/uat/entities/posts/editor.cy.ts +257 -0
  128. package/tests/cypress/e2e/uat/entities/posts/list.bdd.md +340 -0
  129. package/tests/cypress/e2e/uat/entities/posts/list.cy.ts +177 -0
  130. package/tests/cypress/e2e/uat/entities/posts/public.bdd.md +614 -0
  131. package/tests/cypress/e2e/uat/entities/posts/public.cy.ts +249 -0
  132. package/tests/cypress/e2e/uat/entities/tasks/member.bdd.md +222 -0
  133. package/tests/cypress/e2e/uat/entities/tasks/member.cy.ts +165 -0
  134. package/tests/cypress/e2e/uat/entities/tasks/owner.bdd.md +419 -0
  135. package/tests/cypress/e2e/uat/entities/tasks/owner.cy.ts +191 -0
  136. package/tests/cypress/e2e/uat/roles/editor-role.bdd.md +552 -0
  137. package/tests/cypress/e2e/uat/roles/editor-role.cy.ts +210 -0
  138. package/tests/cypress/e2e/uat/roles/member-restrictions.bdd.md +450 -0
  139. package/tests/cypress/e2e/uat/roles/member-restrictions.cy.ts +189 -0
  140. package/tests/cypress/e2e/uat/roles/owner-full-crud.bdd.md +530 -0
  141. package/tests/cypress/e2e/uat/roles/owner-full-crud.cy.ts +247 -0
  142. package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.bdd.md +736 -0
  143. package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.cy.ts +740 -0
  144. package/tests/cypress/e2e/uat/teams/roles-matrix.bdd.md +553 -0
  145. package/tests/cypress/e2e/uat/teams/roles-matrix.cy.ts +185 -0
  146. package/tests/cypress/e2e/uat/teams/switcher.bdd.md +1151 -0
  147. package/tests/cypress/e2e/uat/teams/switcher.cy.ts +497 -0
  148. package/tests/cypress/e2e/uat/teams/team-switcher.md +198 -0
  149. package/tests/cypress/fixtures/blocks.json +218 -0
  150. package/tests/cypress/fixtures/entities.json +78 -0
  151. package/tests/cypress/fixtures/page-builder.json +21 -0
  152. package/tests/cypress/src/components/CategoriesPOM.ts +382 -0
  153. package/tests/cypress/src/components/CustomersPOM.ts +439 -0
  154. package/tests/cypress/src/components/DevKeyringPOM.ts +160 -0
  155. package/tests/cypress/src/components/EntityForm.ts +375 -0
  156. package/tests/cypress/src/components/EntityList.ts +389 -0
  157. package/tests/cypress/src/components/PageBuilderPOM.ts +710 -0
  158. package/tests/cypress/src/components/PostEditorPOM.ts +370 -0
  159. package/tests/cypress/src/components/PostsListPOM.ts +223 -0
  160. package/tests/cypress/src/components/PublicPagePOM.ts +447 -0
  161. package/tests/cypress/src/components/PublicPostPOM.ts +146 -0
  162. package/tests/cypress/src/components/TasksPOM.ts +272 -0
  163. package/tests/cypress/src/components/TeamSwitcherPOM.ts +450 -0
  164. package/tests/cypress/src/components/index.ts +21 -0
  165. package/tests/cypress/src/controllers/ApiKeysAPIController.js +178 -0
  166. package/tests/cypress/src/controllers/BaseAPIController.js +317 -0
  167. package/tests/cypress/src/controllers/CustomerAPIController.js +251 -0
  168. package/tests/cypress/src/controllers/PagesAPIController.js +226 -0
  169. package/tests/cypress/src/controllers/PostsAPIController.js +250 -0
  170. package/tests/cypress/src/controllers/TaskAPIController.js +240 -0
  171. package/tests/cypress/src/controllers/UsersAPIController.js +242 -0
  172. package/tests/cypress/src/controllers/index.js +25 -0
  173. package/tests/cypress/src/core/AuthPOM.ts +450 -0
  174. package/tests/cypress/src/core/BasePOM.ts +86 -0
  175. package/tests/cypress/src/core/BlockEditorBasePOM.ts +576 -0
  176. package/tests/cypress/src/core/DashboardEntityPOM.ts +692 -0
  177. package/tests/cypress/src/core/index.ts +14 -0
  178. package/tests/cypress/src/entities/CustomersPOM.ts +172 -0
  179. package/tests/cypress/src/entities/PagesPOM.ts +137 -0
  180. package/tests/cypress/src/entities/PostsPOM.ts +137 -0
  181. package/tests/cypress/src/entities/TasksPOM.ts +176 -0
  182. package/tests/cypress/src/entities/index.ts +14 -0
  183. package/tests/cypress/src/features/BillingPOM.ts +385 -0
  184. package/tests/cypress/src/features/DashboardPOM.ts +245 -0
  185. package/tests/cypress/src/features/DevtoolsPOM.ts +739 -0
  186. package/tests/cypress/src/features/PageBuilderPOM.ts +263 -0
  187. package/tests/cypress/src/features/PostEditorPOM.ts +313 -0
  188. package/tests/cypress/src/features/ScheduledActionsPOM.ts +463 -0
  189. package/tests/cypress/src/features/SettingsPOM.ts +362 -0
  190. package/tests/cypress/src/features/SuperadminPOM.ts +331 -0
  191. package/tests/cypress/src/features/SuperadminTeamRolesPOM.ts +285 -0
  192. package/tests/cypress/src/features/index.ts +28 -0
  193. package/tests/cypress/src/helpers/ApiInterceptor.ts +177 -0
  194. package/tests/cypress/src/index.ts +101 -0
  195. package/tests/cypress/src/pages/dashboard/Dashboard.js +677 -0
  196. package/tests/cypress/src/pages/dashboard/DashboardPage.js +43 -0
  197. package/tests/cypress/src/pages/dashboard/DashboardStats.js +546 -0
  198. package/tests/cypress/src/pages/dashboard/index.js +6 -0
  199. package/tests/cypress/src/pages/index.js +5 -0
  200. package/tests/cypress/src/pages/public/FeaturesPage.js +28 -0
  201. package/tests/cypress/src/pages/public/LandingPage.js +69 -0
  202. package/tests/cypress/src/pages/public/PricingPage.js +33 -0
  203. package/tests/cypress/src/pages/public/index.js +6 -0
  204. package/tests/cypress/src/selectors.ts +46 -0
  205. package/tests/cypress/src/session-helpers.ts +500 -0
  206. package/tests/cypress/support/doc-commands.ts +260 -0
  207. package/tests/cypress.config.ts +150 -0
  208. package/tests/jest/components/post-header.test.tsx +377 -0
  209. package/tests/jest/config/role-config.test.ts +529 -0
  210. package/tests/jest/jest.config.ts +81 -0
  211. package/tests/jest/langchain/COVERAGE.md +372 -0
  212. package/tests/jest/langchain/guardrails.test.ts +465 -0
  213. package/tests/jest/langchain/streaming.test.ts +367 -0
  214. package/tests/jest/langchain/token-tracker.test.ts +455 -0
  215. package/tests/jest/langchain/tracer-callbacks.test.ts +881 -0
  216. package/tests/jest/langchain/tracer.test.ts +823 -0
  217. package/tests/jest/user-roles/role-helpers.test.ts +432 -0
  218. package/tests/jest/validation/categories.test.ts +429 -0
  219. package/tests/jest/validation/posts.test.ts +546 -0
  220. 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
+ }