create-appraise 0.1.0

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 (330) hide show
  1. package/README.md +52 -0
  2. package/package.json +63 -0
  3. package/templates/default/.env.example +2 -0
  4. package/templates/default/README.md +51 -0
  5. package/templates/default/appraise.config.json +4 -0
  6. package/templates/default/components.json +24 -0
  7. package/templates/default/eslint.config.mjs +15 -0
  8. package/templates/default/next-env.d.ts +6 -0
  9. package/templates/default/next.config.ts +7 -0
  10. package/templates/default/package-lock.json +14321 -0
  11. package/templates/default/package.json +124 -0
  12. package/templates/default/postcss.config.mjs +8 -0
  13. package/templates/default/prisma/migrations/20251026202316_migrate_back_to_sqlite/migration.sql +257 -0
  14. package/templates/default/prisma/migrations/20251104113456_add_type_for_template_step_groups/migration.sql +16 -0
  15. package/templates/default/prisma/migrations/20251104170946_add_tags_to_test_suite_and_test_case/migration.sql +27 -0
  16. package/templates/default/prisma/migrations/20251112190024_add_cascade_delete_to_test_run_test_case/migration.sql +17 -0
  17. package/templates/default/prisma/migrations/20251113181100_add_test_run_log/migration.sql +12 -0
  18. package/templates/default/prisma/migrations/20251119191838_add_tag_type/migration.sql +28 -0
  19. package/templates/default/prisma/migrations/20251121164059_add_conflict_resolution/migration.sql +12 -0
  20. package/templates/default/prisma/migrations/20251130190737_add_trace_path_to_test_run_test_case/migration.sql +2 -0
  21. package/templates/default/prisma/migrations/20251213074835_add_log_path_to_test_run/migration.sql +2 -0
  22. package/templates/default/prisma/migrations/20251213183952_add_name_property_for_the_test_run_entities/migration.sql +30 -0
  23. package/templates/default/prisma/migrations/20251223183400_add_report_model_to_db_schema/migration.sql +10 -0
  24. package/templates/default/prisma/migrations/20251223183637_add_report_test_case_entity_for_storing_test_results_for_individual_test_cases/migration.sql +10 -0
  25. package/templates/default/prisma/migrations/20251224083549_add_comprehensive_report_storage/migration.sql +108 -0
  26. package/templates/default/prisma/migrations/20251229194422_migrate_duration_to_string/migration.sql +55 -0
  27. package/templates/default/prisma/migrations/20251230124637_add_unique_constraint_to_test_run_name/migration.sql +27 -0
  28. package/templates/default/prisma/migrations/20260115094436_add_dashboard_metrics/migration.sql +59 -0
  29. package/templates/default/prisma/migrations/20260127172022_add_cascade_delete_to_step_parameters/migration.sql +34 -0
  30. package/templates/default/prisma/migrations/migration_lock.toml +3 -0
  31. package/templates/default/prisma/schema.prisma +554 -0
  32. package/templates/default/public/favicon.ico +0 -0
  33. package/templates/default/public/file.svg +1 -0
  34. package/templates/default/public/globe.svg +1 -0
  35. package/templates/default/public/next.svg +1 -0
  36. package/templates/default/public/vercel.svg +1 -0
  37. package/templates/default/public/window.svg +1 -0
  38. package/templates/default/scripts/regenerate-features.ts +94 -0
  39. package/templates/default/scripts/setup-env.ts +19 -0
  40. package/templates/default/scripts/sync-all.ts +341 -0
  41. package/templates/default/scripts/sync-environments.ts +323 -0
  42. package/templates/default/scripts/sync-locator-groups.ts +413 -0
  43. package/templates/default/scripts/sync-locators.ts +402 -0
  44. package/templates/default/scripts/sync-modules.ts +349 -0
  45. package/templates/default/scripts/sync-tags.ts +292 -0
  46. package/templates/default/scripts/sync-template-step-groups.ts +399 -0
  47. package/templates/default/scripts/sync-template-steps.ts +806 -0
  48. package/templates/default/scripts/sync-test-cases.ts +905 -0
  49. package/templates/default/scripts/sync-test-suites.ts +411 -0
  50. package/templates/default/src/actions/conflict/conflict.action.ts +33 -0
  51. package/templates/default/src/actions/dashboard/dashboard-actions.ts +241 -0
  52. package/templates/default/src/actions/environments/environment-actions.ts +205 -0
  53. package/templates/default/src/actions/locator/locator-actions.ts +547 -0
  54. package/templates/default/src/actions/locator-groups/locator-group-actions.ts +344 -0
  55. package/templates/default/src/actions/modules/module-actions.ts +133 -0
  56. package/templates/default/src/actions/reports/report-actions.ts +614 -0
  57. package/templates/default/src/actions/review/review-actions.ts +147 -0
  58. package/templates/default/src/actions/tags/tag-actions.ts +104 -0
  59. package/templates/default/src/actions/template-step/template-step-actions.ts +332 -0
  60. package/templates/default/src/actions/template-step-group/template-step-group-actions.ts +278 -0
  61. package/templates/default/src/actions/template-test-case/template-test-case-actions.ts +238 -0
  62. package/templates/default/src/actions/test-case/test-case-actions.ts +419 -0
  63. package/templates/default/src/actions/test-run/test-run-actions.ts +1185 -0
  64. package/templates/default/src/actions/test-suite/test-suite-actions.ts +253 -0
  65. package/templates/default/src/actions/user/user-actions.ts +13 -0
  66. package/templates/default/src/app/(base)/environments/create/page.tsx +28 -0
  67. package/templates/default/src/app/(base)/environments/environment-form.tsx +219 -0
  68. package/templates/default/src/app/(base)/environments/environment-table-columns.tsx +96 -0
  69. package/templates/default/src/app/(base)/environments/environment-table.tsx +24 -0
  70. package/templates/default/src/app/(base)/environments/modify/[id]/page.tsx +46 -0
  71. package/templates/default/src/app/(base)/environments/page.tsx +59 -0
  72. package/templates/default/src/app/(base)/layout.tsx +10 -0
  73. package/templates/default/src/app/(base)/locator-groups/create/page.tsx +44 -0
  74. package/templates/default/src/app/(base)/locator-groups/locator-group-form.tsx +215 -0
  75. package/templates/default/src/app/(base)/locator-groups/locator-group-table-columns.tsx +77 -0
  76. package/templates/default/src/app/(base)/locator-groups/locator-group-table.tsx +28 -0
  77. package/templates/default/src/app/(base)/locator-groups/modify/[id]/page.tsx +46 -0
  78. package/templates/default/src/app/(base)/locator-groups/page.tsx +61 -0
  79. package/templates/default/src/app/(base)/locators/create/page.tsx +38 -0
  80. package/templates/default/src/app/(base)/locators/locator-form.tsx +163 -0
  81. package/templates/default/src/app/(base)/locators/locator-table-columns.tsx +90 -0
  82. package/templates/default/src/app/(base)/locators/locator-table.tsx +28 -0
  83. package/templates/default/src/app/(base)/locators/modify/[id]/page.tsx +45 -0
  84. package/templates/default/src/app/(base)/locators/page.tsx +65 -0
  85. package/templates/default/src/app/(base)/locators/sync-locators-button.tsx +66 -0
  86. package/templates/default/src/app/(base)/modules/create/page.tsx +34 -0
  87. package/templates/default/src/app/(base)/modules/modify/[id]/page.tsx +46 -0
  88. package/templates/default/src/app/(base)/modules/module-form.tsx +126 -0
  89. package/templates/default/src/app/(base)/modules/module-table-columns.tsx +85 -0
  90. package/templates/default/src/app/(base)/modules/module-table.tsx +24 -0
  91. package/templates/default/src/app/(base)/modules/page.tsx +59 -0
  92. package/templates/default/src/app/(base)/reports/[id]/page.tsx +517 -0
  93. package/templates/default/src/app/(base)/reports/duration-chart.tsx +33 -0
  94. package/templates/default/src/app/(base)/reports/feature-chart.tsx +78 -0
  95. package/templates/default/src/app/(base)/reports/overview-chart.tsx +46 -0
  96. package/templates/default/src/app/(base)/reports/page.tsx +98 -0
  97. package/templates/default/src/app/(base)/reports/report-metric-card.tsx +16 -0
  98. package/templates/default/src/app/(base)/reports/report-table-columns.tsx +189 -0
  99. package/templates/default/src/app/(base)/reports/report-table.tsx +72 -0
  100. package/templates/default/src/app/(base)/reports/report-view-table-columns.tsx +131 -0
  101. package/templates/default/src/app/(base)/reports/report-view-table.tsx +82 -0
  102. package/templates/default/src/app/(base)/reports/test-cases/page.tsx +42 -0
  103. package/templates/default/src/app/(base)/reports/test-cases/test-cases-metric-table-columns.tsx +115 -0
  104. package/templates/default/src/app/(base)/reports/test-cases/test-cases-metric-table.tsx +27 -0
  105. package/templates/default/src/app/(base)/reports/test-suites/page.tsx +42 -0
  106. package/templates/default/src/app/(base)/reports/test-suites/test-suites-metric-table-columns.tsx +79 -0
  107. package/templates/default/src/app/(base)/reports/test-suites/test-suites-metric-table.tsx +27 -0
  108. package/templates/default/src/app/(base)/reports/view-logs-button.tsx +60 -0
  109. package/templates/default/src/app/(base)/reviews/create/page.tsx +26 -0
  110. package/templates/default/src/app/(base)/reviews/created-reviews-table.tsx +15 -0
  111. package/templates/default/src/app/(base)/reviews/modify/[id]/page.tsx +26 -0
  112. package/templates/default/src/app/(base)/reviews/page.tsx +26 -0
  113. package/templates/default/src/app/(base)/reviews/review/[id]/page.tsx +26 -0
  114. package/templates/default/src/app/(base)/reviews/review-form.tsx +11 -0
  115. package/templates/default/src/app/(base)/reviews/review-table-by-creator-columns.tsx +9 -0
  116. package/templates/default/src/app/(base)/reviews/review-table-by-reviewer-columns.tsx +9 -0
  117. package/templates/default/src/app/(base)/reviews/reviewer-reviews-table.tsx +15 -0
  118. package/templates/default/src/app/(base)/tags/create/page.tsx +39 -0
  119. package/templates/default/src/app/(base)/tags/modify/[id]/page.tsx +50 -0
  120. package/templates/default/src/app/(base)/tags/page.tsx +58 -0
  121. package/templates/default/src/app/(base)/tags/tag-form.tsx +147 -0
  122. package/templates/default/src/app/(base)/tags/tag-table-columns.tsx +63 -0
  123. package/templates/default/src/app/(base)/tags/tag-table.tsx +29 -0
  124. package/templates/default/src/app/(base)/template-step-groups/create/page.tsx +28 -0
  125. package/templates/default/src/app/(base)/template-step-groups/modify/[id]/page.tsx +45 -0
  126. package/templates/default/src/app/(base)/template-step-groups/page.tsx +60 -0
  127. package/templates/default/src/app/(base)/template-step-groups/template-step-group-form.tsx +167 -0
  128. package/templates/default/src/app/(base)/template-step-groups/template-step-group-table-columns.tsx +89 -0
  129. package/templates/default/src/app/(base)/template-step-groups/template-step-group-table.tsx +32 -0
  130. package/templates/default/src/app/(base)/template-steps/create/page.tsx +37 -0
  131. package/templates/default/src/app/(base)/template-steps/modify/[id]/page.tsx +49 -0
  132. package/templates/default/src/app/(base)/template-steps/page.tsx +59 -0
  133. package/templates/default/src/app/(base)/template-steps/paramChip.tsx +213 -0
  134. package/templates/default/src/app/(base)/template-steps/template-step-form.tsx +384 -0
  135. package/templates/default/src/app/(base)/template-steps/template-step-table-columns.tsx +158 -0
  136. package/templates/default/src/app/(base)/template-steps/template-step-table.tsx +24 -0
  137. package/templates/default/src/app/(base)/template-test-cases/create/page.tsx +56 -0
  138. package/templates/default/src/app/(base)/template-test-cases/modify/[id]/page.tsx +89 -0
  139. package/templates/default/src/app/(base)/template-test-cases/page.tsx +58 -0
  140. package/templates/default/src/app/(base)/template-test-cases/template-test-case-flow.tsx +84 -0
  141. package/templates/default/src/app/(base)/template-test-cases/template-test-case-form.tsx +262 -0
  142. package/templates/default/src/app/(base)/template-test-cases/template-test-case-table-columns.tsx +76 -0
  143. package/templates/default/src/app/(base)/template-test-cases/template-test-case-table.tsx +32 -0
  144. package/templates/default/src/app/(base)/test-cases/create/page.tsx +76 -0
  145. package/templates/default/src/app/(base)/test-cases/create-from-template/generate/[id]/page.tsx +96 -0
  146. package/templates/default/src/app/(base)/test-cases/create-from-template/page.tsx +38 -0
  147. package/templates/default/src/app/(base)/test-cases/create-from-template/template-selection-form.tsx +73 -0
  148. package/templates/default/src/app/(base)/test-cases/modify/[id]/page.tsx +106 -0
  149. package/templates/default/src/app/(base)/test-cases/page.tsx +60 -0
  150. package/templates/default/src/app/(base)/test-cases/test-case-flow.tsx +82 -0
  151. package/templates/default/src/app/(base)/test-cases/test-case-form.tsx +395 -0
  152. package/templates/default/src/app/(base)/test-cases/test-case-table-columns.tsx +90 -0
  153. package/templates/default/src/app/(base)/test-cases/test-case-table.tsx +35 -0
  154. package/templates/default/src/app/(base)/test-runs/[id]/page.tsx +56 -0
  155. package/templates/default/src/app/(base)/test-runs/create/page.tsx +47 -0
  156. package/templates/default/src/app/(base)/test-runs/page.tsx +60 -0
  157. package/templates/default/src/app/(base)/test-runs/test-run-form.tsx +512 -0
  158. package/templates/default/src/app/(base)/test-runs/test-run-table-columns.tsx +229 -0
  159. package/templates/default/src/app/(base)/test-runs/test-run-table.tsx +127 -0
  160. package/templates/default/src/app/(base)/test-suites/create/page.tsx +45 -0
  161. package/templates/default/src/app/(base)/test-suites/modify/[id]/page.tsx +55 -0
  162. package/templates/default/src/app/(base)/test-suites/page.tsx +82 -0
  163. package/templates/default/src/app/(base)/test-suites/test-suite-form.tsx +269 -0
  164. package/templates/default/src/app/(base)/test-suites/test-suite-table-columns.tsx +97 -0
  165. package/templates/default/src/app/(base)/test-suites/test-suite-table.tsx +29 -0
  166. package/templates/default/src/app/(dashboard-components)/app-drawer.tsx +187 -0
  167. package/templates/default/src/app/(dashboard-components)/data-card-grid.tsx +13 -0
  168. package/templates/default/src/app/(dashboard-components)/data-card.tsx +27 -0
  169. package/templates/default/src/app/(dashboard-components)/execution-health-panel.tsx +57 -0
  170. package/templates/default/src/app/(dashboard-components)/ongoing-test-runs-card.tsx +87 -0
  171. package/templates/default/src/app/(dashboard-components)/quick-actions-drawer.tsx +45 -0
  172. package/templates/default/src/app/api/test-runs/[runId]/download/route.ts +133 -0
  173. package/templates/default/src/app/api/test-runs/[runId]/logs/route.ts +420 -0
  174. package/templates/default/src/app/api/test-runs/[runId]/trace/[testCaseId]/route.ts +146 -0
  175. package/templates/default/src/app/favicon.ico +0 -0
  176. package/templates/default/src/app/globals.css +147 -0
  177. package/templates/default/src/app/layout.tsx +171 -0
  178. package/templates/default/src/app/page.tsx +64 -0
  179. package/templates/default/src/assets/icons/empty-tube.tsx +23 -0
  180. package/templates/default/src/assets/icons/tube-plus.tsx +29 -0
  181. package/templates/default/src/components/base-node.tsx +21 -0
  182. package/templates/default/src/components/chart/pie-chart.tsx +73 -0
  183. package/templates/default/src/components/data-extraction/locator-inspector.tsx +460 -0
  184. package/templates/default/src/components/data-state/empty-state.tsx +40 -0
  185. package/templates/default/src/components/data-visualization/info-card.tsx +70 -0
  186. package/templates/default/src/components/data-visualization/info-grid.tsx +22 -0
  187. package/templates/default/src/components/devtools/providers.tsx +13 -0
  188. package/templates/default/src/components/diagram/button-edge.tsx +54 -0
  189. package/templates/default/src/components/diagram/dynamic-parameters.tsx +438 -0
  190. package/templates/default/src/components/diagram/edit-header-option.tsx +36 -0
  191. package/templates/default/src/components/diagram/flow-diagram.tsx +470 -0
  192. package/templates/default/src/components/diagram/node-form.tsx +262 -0
  193. package/templates/default/src/components/diagram/options-header-node.tsx +57 -0
  194. package/templates/default/src/components/diagram/template-step-combobox.tsx +155 -0
  195. package/templates/default/src/components/form/error-message.tsx +7 -0
  196. package/templates/default/src/components/kokonutui/smooth-tab.tsx +453 -0
  197. package/templates/default/src/components/loading-skeleton/data-table/data-table-skeleton.tsx +30 -0
  198. package/templates/default/src/components/loading-skeleton/form/button-skeleton.tsx +8 -0
  199. package/templates/default/src/components/loading-skeleton/form/icon-button-skeleton.tsx +8 -0
  200. package/templates/default/src/components/loading-skeleton/form/text-input-skeleton.tsx +8 -0
  201. package/templates/default/src/components/loading-skeleton/visualization/table-skeleton.tsx +14 -0
  202. package/templates/default/src/components/logo.tsx +15 -0
  203. package/templates/default/src/components/navigation/command-badge.tsx +34 -0
  204. package/templates/default/src/components/navigation/command-chain-input.tsx +51 -0
  205. package/templates/default/src/components/navigation/entity-search-command.tsx +116 -0
  206. package/templates/default/src/components/navigation/nav-card.tsx +31 -0
  207. package/templates/default/src/components/navigation/nav-command.tsx +508 -0
  208. package/templates/default/src/components/navigation/nav-link.tsx +60 -0
  209. package/templates/default/src/components/navigation/nav-menu-card-deck.tsx +112 -0
  210. package/templates/default/src/components/node-header.tsx +159 -0
  211. package/templates/default/src/components/reports/test-case-logs-modal.tsx +253 -0
  212. package/templates/default/src/components/table/table-actions.tsx +172 -0
  213. package/templates/default/src/components/test-run/download-logs-button.tsx +99 -0
  214. package/templates/default/src/components/test-run/log-viewer.tsx +445 -0
  215. package/templates/default/src/components/test-run/test-run-details.tsx +611 -0
  216. package/templates/default/src/components/test-run/test-run-header.tsx +149 -0
  217. package/templates/default/src/components/test-run/view-report-button.tsx +102 -0
  218. package/templates/default/src/components/theme/mode-toggle.tsx +54 -0
  219. package/templates/default/src/components/theme/theme-provider.tsx +8 -0
  220. package/templates/default/src/components/typography/page-header-subtitle.tsx +7 -0
  221. package/templates/default/src/components/typography/page-header.tsx +7 -0
  222. package/templates/default/src/components/ui/alert-dialog.tsx +106 -0
  223. package/templates/default/src/components/ui/alert.tsx +43 -0
  224. package/templates/default/src/components/ui/avatar.tsx +40 -0
  225. package/templates/default/src/components/ui/badge.tsx +29 -0
  226. package/templates/default/src/components/ui/button.tsx +47 -0
  227. package/templates/default/src/components/ui/calendar.tsx +158 -0
  228. package/templates/default/src/components/ui/card.tsx +43 -0
  229. package/templates/default/src/components/ui/chart.tsx +369 -0
  230. package/templates/default/src/components/ui/checkbox.tsx +28 -0
  231. package/templates/default/src/components/ui/command.tsx +135 -0
  232. package/templates/default/src/components/ui/data-table-column-header.tsx +61 -0
  233. package/templates/default/src/components/ui/data-table-pagination.tsx +87 -0
  234. package/templates/default/src/components/ui/data-table-view-options.tsx +50 -0
  235. package/templates/default/src/components/ui/data-table.tsx +267 -0
  236. package/templates/default/src/components/ui/dialog.tsx +97 -0
  237. package/templates/default/src/components/ui/dropdown-menu.tsx +182 -0
  238. package/templates/default/src/components/ui/empty.tsx +104 -0
  239. package/templates/default/src/components/ui/input.tsx +22 -0
  240. package/templates/default/src/components/ui/kbd.tsx +28 -0
  241. package/templates/default/src/components/ui/label.tsx +19 -0
  242. package/templates/default/src/components/ui/loading.tsx +12 -0
  243. package/templates/default/src/components/ui/multi-select-with-preview.tsx +116 -0
  244. package/templates/default/src/components/ui/multi-select.tsx +142 -0
  245. package/templates/default/src/components/ui/navigation-menu.tsx +120 -0
  246. package/templates/default/src/components/ui/popover.tsx +33 -0
  247. package/templates/default/src/components/ui/progress.tsx +25 -0
  248. package/templates/default/src/components/ui/radio-group.tsx +44 -0
  249. package/templates/default/src/components/ui/scroll-area.tsx +40 -0
  250. package/templates/default/src/components/ui/select.tsx +144 -0
  251. package/templates/default/src/components/ui/separator.tsx +22 -0
  252. package/templates/default/src/components/ui/skeleton.tsx +7 -0
  253. package/templates/default/src/components/ui/table.tsx +76 -0
  254. package/templates/default/src/components/ui/tabs.tsx +55 -0
  255. package/templates/default/src/components/ui/textarea.tsx +21 -0
  256. package/templates/default/src/components/ui/toast.tsx +113 -0
  257. package/templates/default/src/components/ui/toaster.tsx +26 -0
  258. package/templates/default/src/components/ui/tooltip.tsx +32 -0
  259. package/templates/default/src/components/user-prompt/delete-prompt.tsx +87 -0
  260. package/templates/default/src/config/db-config.ts +10 -0
  261. package/templates/default/src/constants/form-opts/diagram/node-form.ts +30 -0
  262. package/templates/default/src/constants/form-opts/environment-form-opts.ts +24 -0
  263. package/templates/default/src/constants/form-opts/locator-form-opts.ts +20 -0
  264. package/templates/default/src/constants/form-opts/locator-group-form-opts.ts +28 -0
  265. package/templates/default/src/constants/form-opts/module-form-opts.ts +21 -0
  266. package/templates/default/src/constants/form-opts/review-form-opts.ts +23 -0
  267. package/templates/default/src/constants/form-opts/tag-form-opts.ts +42 -0
  268. package/templates/default/src/constants/form-opts/template-selection-form-opts.ts +16 -0
  269. package/templates/default/src/constants/form-opts/template-step-group-form-opts.ts +24 -0
  270. package/templates/default/src/constants/form-opts/template-test-case-form-opts.ts +39 -0
  271. package/templates/default/src/constants/form-opts/template-test-step-form-opts.ts +36 -0
  272. package/templates/default/src/constants/form-opts/test-case-form-opts.ts +43 -0
  273. package/templates/default/src/constants/form-opts/test-run-form-opts.ts +31 -0
  274. package/templates/default/src/constants/form-opts/test-suite-form-opts.ts +24 -0
  275. package/templates/default/src/hooks/use-toast.ts +187 -0
  276. package/templates/default/src/lib/bidirectional-sync.ts +432 -0
  277. package/templates/default/src/lib/database-sync.ts +531 -0
  278. package/templates/default/src/lib/environment-file-utils.ts +221 -0
  279. package/templates/default/src/lib/feature-file-generator.ts +411 -0
  280. package/templates/default/src/lib/gherkin-parser.ts +259 -0
  281. package/templates/default/src/lib/locator-group-file-utils.ts +370 -0
  282. package/templates/default/src/lib/metrics/metric-calculator.ts +613 -0
  283. package/templates/default/src/lib/module-hierarchy-builder.ts +205 -0
  284. package/templates/default/src/lib/path-helpers/module-path.ts +71 -0
  285. package/templates/default/src/lib/test-case-utils.ts +6 -0
  286. package/templates/default/src/lib/test-run/log-formatter.ts +83 -0
  287. package/templates/default/src/lib/test-run/process-manager.ts +191 -0
  288. package/templates/default/src/lib/test-run/report-parser.ts +316 -0
  289. package/templates/default/src/lib/test-run/test-run-executor.ts +144 -0
  290. package/templates/default/src/lib/test-run/winston-logger.ts +95 -0
  291. package/templates/default/src/lib/transformers/gherkin-converter.ts +42 -0
  292. package/templates/default/src/lib/transformers/key-to-icon-transformer.tsx +95 -0
  293. package/templates/default/src/lib/transformers/template-test-case-converter.ts +160 -0
  294. package/templates/default/src/lib/utils/node-param-validation.ts +81 -0
  295. package/templates/default/src/lib/utils/template-step-file-generator.ts +167 -0
  296. package/templates/default/src/lib/utils/template-step-file-manager-intelligent.ts +723 -0
  297. package/templates/default/src/lib/utils/template-step-file-manager.ts +166 -0
  298. package/templates/default/src/lib/utils.ts +31 -0
  299. package/templates/default/src/tests/config/environments/environments.json +14 -0
  300. package/templates/default/src/tests/config/executor/world.ts +41 -0
  301. package/templates/default/src/tests/executor.ts +80 -0
  302. package/templates/default/src/tests/hooks/hooks.ts +99 -0
  303. package/templates/default/src/tests/mapping/locator-map.json +1 -0
  304. package/templates/default/src/tests/steps/actions/click.step.ts +62 -0
  305. package/templates/default/src/tests/steps/actions/hover.step.ts +31 -0
  306. package/templates/default/src/tests/steps/actions/input.step.ts +149 -0
  307. package/templates/default/src/tests/steps/actions/navigation.step.ts +72 -0
  308. package/templates/default/src/tests/steps/actions/random_data.step.ts +146 -0
  309. package/templates/default/src/tests/steps/actions/store.step.ts +90 -0
  310. package/templates/default/src/tests/steps/actions/wait.step.ts +107 -0
  311. package/templates/default/src/tests/steps/validations/active_state_assertion.step.ts +34 -0
  312. package/templates/default/src/tests/steps/validations/navigation_assertion.step.ts +23 -0
  313. package/templates/default/src/tests/steps/validations/text_assertion.step.ts +111 -0
  314. package/templates/default/src/tests/steps/validations/visibility_assertion.step.ts +30 -0
  315. package/templates/default/src/tests/support/parameter-types.ts +12 -0
  316. package/templates/default/src/tests/utils/cache.util.ts +260 -0
  317. package/templates/default/src/tests/utils/cli.util.ts +177 -0
  318. package/templates/default/src/tests/utils/environment.util.ts +65 -0
  319. package/templates/default/src/tests/utils/locator.util.ts +248 -0
  320. package/templates/default/src/tests/utils/random-data.util.ts +45 -0
  321. package/templates/default/src/tests/utils/spawner.util.ts +617 -0
  322. package/templates/default/src/types/diagram/diagram.ts +34 -0
  323. package/templates/default/src/types/diagram/template-step.ts +11 -0
  324. package/templates/default/src/types/executor/browser.type.ts +1 -0
  325. package/templates/default/src/types/form/actionHandler.ts +6 -0
  326. package/templates/default/src/types/locator/locator.type.ts +11 -0
  327. package/templates/default/src/types/step/step.type.ts +1 -0
  328. package/templates/default/src/types/table/data-table.ts +6 -0
  329. package/templates/default/tailwind.config.ts +62 -0
  330. package/templates/default/tsconfig.json +28 -0
@@ -0,0 +1,108 @@
1
+ -- AlterTable
2
+ ALTER TABLE "Report" ADD COLUMN "reportPath" TEXT;
3
+
4
+ -- AlterTable
5
+ ALTER TABLE "TestRun" ADD COLUMN "reportPath" TEXT;
6
+
7
+ -- CreateTable
8
+ CREATE TABLE "ReportFeature" (
9
+ "id" TEXT NOT NULL PRIMARY KEY,
10
+ "reportId" TEXT NOT NULL,
11
+ "name" TEXT NOT NULL,
12
+ "description" TEXT,
13
+ "uri" TEXT NOT NULL,
14
+ "line" INTEGER NOT NULL,
15
+ "keyword" TEXT NOT NULL,
16
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
17
+ "updatedAt" DATETIME NOT NULL,
18
+ CONSTRAINT "ReportFeature_reportId_fkey" FOREIGN KEY ("reportId") REFERENCES "Report" ("id") ON DELETE CASCADE ON UPDATE CASCADE
19
+ );
20
+
21
+ -- CreateTable
22
+ CREATE TABLE "ReportFeatureTag" (
23
+ "id" TEXT NOT NULL PRIMARY KEY,
24
+ "reportFeatureId" TEXT NOT NULL,
25
+ "tagName" TEXT NOT NULL,
26
+ "line" INTEGER NOT NULL,
27
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
28
+ CONSTRAINT "ReportFeatureTag_reportFeatureId_fkey" FOREIGN KEY ("reportFeatureId") REFERENCES "ReportFeature" ("id") ON DELETE CASCADE ON UPDATE CASCADE
29
+ );
30
+
31
+ -- CreateTable
32
+ CREATE TABLE "ReportScenario" (
33
+ "id" TEXT NOT NULL PRIMARY KEY,
34
+ "reportFeatureId" TEXT NOT NULL,
35
+ "name" TEXT NOT NULL,
36
+ "description" TEXT,
37
+ "line" INTEGER NOT NULL,
38
+ "keyword" TEXT NOT NULL,
39
+ "type" TEXT NOT NULL,
40
+ "cucumberId" TEXT NOT NULL,
41
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
42
+ "updatedAt" DATETIME NOT NULL,
43
+ CONSTRAINT "ReportScenario_reportFeatureId_fkey" FOREIGN KEY ("reportFeatureId") REFERENCES "ReportFeature" ("id") ON DELETE CASCADE ON UPDATE CASCADE
44
+ );
45
+
46
+ -- CreateTable
47
+ CREATE TABLE "ReportScenarioTag" (
48
+ "id" TEXT NOT NULL PRIMARY KEY,
49
+ "reportScenarioId" TEXT NOT NULL,
50
+ "tagName" TEXT NOT NULL,
51
+ "line" INTEGER NOT NULL,
52
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
53
+ CONSTRAINT "ReportScenarioTag_reportScenarioId_fkey" FOREIGN KEY ("reportScenarioId") REFERENCES "ReportScenario" ("id") ON DELETE CASCADE ON UPDATE CASCADE
54
+ );
55
+
56
+ -- CreateTable
57
+ CREATE TABLE "ReportStep" (
58
+ "id" TEXT NOT NULL PRIMARY KEY,
59
+ "reportScenarioId" TEXT NOT NULL,
60
+ "keyword" TEXT NOT NULL,
61
+ "line" INTEGER,
62
+ "name" TEXT NOT NULL,
63
+ "matchLocation" TEXT,
64
+ "status" TEXT NOT NULL,
65
+ "duration" INTEGER NOT NULL,
66
+ "errorMessage" TEXT,
67
+ "errorTrace" TEXT,
68
+ "hidden" BOOLEAN NOT NULL DEFAULT false,
69
+ "order" INTEGER NOT NULL,
70
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
71
+ "updatedAt" DATETIME NOT NULL,
72
+ CONSTRAINT "ReportStep_reportScenarioId_fkey" FOREIGN KEY ("reportScenarioId") REFERENCES "ReportScenario" ("id") ON DELETE CASCADE ON UPDATE CASCADE
73
+ );
74
+
75
+ -- CreateTable
76
+ CREATE TABLE "ReportHook" (
77
+ "id" TEXT NOT NULL PRIMARY KEY,
78
+ "reportScenarioId" TEXT NOT NULL,
79
+ "keyword" TEXT NOT NULL,
80
+ "status" TEXT NOT NULL,
81
+ "duration" INTEGER NOT NULL,
82
+ "errorMessage" TEXT,
83
+ "errorTrace" TEXT,
84
+ "hidden" BOOLEAN NOT NULL DEFAULT false,
85
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
86
+ "updatedAt" DATETIME NOT NULL,
87
+ CONSTRAINT "ReportHook_reportScenarioId_fkey" FOREIGN KEY ("reportScenarioId") REFERENCES "ReportScenario" ("id") ON DELETE CASCADE ON UPDATE CASCADE
88
+ );
89
+
90
+ -- RedefineTables
91
+ PRAGMA defer_foreign_keys=ON;
92
+ PRAGMA foreign_keys=OFF;
93
+ CREATE TABLE "new_ReportTestCase" (
94
+ "id" TEXT NOT NULL PRIMARY KEY,
95
+ "reportId" TEXT NOT NULL,
96
+ "testCaseId" TEXT NOT NULL,
97
+ "testRunTestCaseId" TEXT NOT NULL,
98
+ "reportScenarioId" TEXT,
99
+ "duration" INTEGER NOT NULL,
100
+ CONSTRAINT "ReportTestCase_testRunTestCaseId_fkey" FOREIGN KEY ("testRunTestCaseId") REFERENCES "TestRunTestCase" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
101
+ CONSTRAINT "ReportTestCase_reportId_fkey" FOREIGN KEY ("reportId") REFERENCES "Report" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
102
+ CONSTRAINT "ReportTestCase_reportScenarioId_fkey" FOREIGN KEY ("reportScenarioId") REFERENCES "ReportScenario" ("id") ON DELETE SET NULL ON UPDATE CASCADE
103
+ );
104
+ INSERT INTO "new_ReportTestCase" ("duration", "id", "reportId", "testCaseId", "testRunTestCaseId") SELECT "duration", "id", "reportId", "testCaseId", "testRunTestCaseId" FROM "ReportTestCase";
105
+ DROP TABLE "ReportTestCase";
106
+ ALTER TABLE "new_ReportTestCase" RENAME TO "ReportTestCase";
107
+ PRAGMA foreign_keys=ON;
108
+ PRAGMA defer_foreign_keys=OFF;
@@ -0,0 +1,55 @@
1
+ -- RedefineTables
2
+ PRAGMA defer_foreign_keys=ON;
3
+ PRAGMA foreign_keys=OFF;
4
+ CREATE TABLE "new_ReportHook" (
5
+ "id" TEXT NOT NULL PRIMARY KEY,
6
+ "reportScenarioId" TEXT NOT NULL,
7
+ "keyword" TEXT NOT NULL,
8
+ "status" TEXT NOT NULL,
9
+ "duration" TEXT NOT NULL,
10
+ "errorMessage" TEXT,
11
+ "errorTrace" TEXT,
12
+ "hidden" BOOLEAN NOT NULL DEFAULT false,
13
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
14
+ "updatedAt" DATETIME NOT NULL,
15
+ CONSTRAINT "ReportHook_reportScenarioId_fkey" FOREIGN KEY ("reportScenarioId") REFERENCES "ReportScenario" ("id") ON DELETE CASCADE ON UPDATE CASCADE
16
+ );
17
+ INSERT INTO "new_ReportHook" ("createdAt", "duration", "errorMessage", "errorTrace", "hidden", "id", "keyword", "reportScenarioId", "status", "updatedAt") SELECT "createdAt", CAST("duration" AS TEXT), "errorMessage", "errorTrace", "hidden", "id", "keyword", "reportScenarioId", "status", "updatedAt" FROM "ReportHook";
18
+ DROP TABLE "ReportHook";
19
+ ALTER TABLE "new_ReportHook" RENAME TO "ReportHook";
20
+ CREATE TABLE "new_ReportStep" (
21
+ "id" TEXT NOT NULL PRIMARY KEY,
22
+ "reportScenarioId" TEXT NOT NULL,
23
+ "keyword" TEXT NOT NULL,
24
+ "line" INTEGER,
25
+ "name" TEXT NOT NULL,
26
+ "matchLocation" TEXT,
27
+ "status" TEXT NOT NULL,
28
+ "duration" TEXT NOT NULL,
29
+ "errorMessage" TEXT,
30
+ "errorTrace" TEXT,
31
+ "hidden" BOOLEAN NOT NULL DEFAULT false,
32
+ "order" INTEGER NOT NULL,
33
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
34
+ "updatedAt" DATETIME NOT NULL,
35
+ CONSTRAINT "ReportStep_reportScenarioId_fkey" FOREIGN KEY ("reportScenarioId") REFERENCES "ReportScenario" ("id") ON DELETE CASCADE ON UPDATE CASCADE
36
+ );
37
+ INSERT INTO "new_ReportStep" ("createdAt", "duration", "errorMessage", "errorTrace", "hidden", "id", "keyword", "line", "matchLocation", "name", "order", "reportScenarioId", "status", "updatedAt") SELECT "createdAt", CAST("duration" AS TEXT), "errorMessage", "errorTrace", "hidden", "id", "keyword", "line", "matchLocation", "name", "order", "reportScenarioId", "status", "updatedAt" FROM "ReportStep";
38
+ DROP TABLE "ReportStep";
39
+ ALTER TABLE "new_ReportStep" RENAME TO "ReportStep";
40
+ CREATE TABLE "new_ReportTestCase" (
41
+ "id" TEXT NOT NULL PRIMARY KEY,
42
+ "reportId" TEXT NOT NULL,
43
+ "testCaseId" TEXT NOT NULL,
44
+ "testRunTestCaseId" TEXT NOT NULL,
45
+ "reportScenarioId" TEXT,
46
+ "duration" TEXT NOT NULL,
47
+ CONSTRAINT "ReportTestCase_testRunTestCaseId_fkey" FOREIGN KEY ("testRunTestCaseId") REFERENCES "TestRunTestCase" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
48
+ CONSTRAINT "ReportTestCase_reportId_fkey" FOREIGN KEY ("reportId") REFERENCES "Report" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
49
+ CONSTRAINT "ReportTestCase_reportScenarioId_fkey" FOREIGN KEY ("reportScenarioId") REFERENCES "ReportScenario" ("id") ON DELETE SET NULL ON UPDATE CASCADE
50
+ );
51
+ INSERT INTO "new_ReportTestCase" ("duration", "id", "reportId", "reportScenarioId", "testCaseId", "testRunTestCaseId") SELECT CAST("duration" AS TEXT), "id", "reportId", "reportScenarioId", "testCaseId", "testRunTestCaseId" FROM "ReportTestCase";
52
+ DROP TABLE "ReportTestCase";
53
+ ALTER TABLE "new_ReportTestCase" RENAME TO "ReportTestCase";
54
+ PRAGMA foreign_keys=ON;
55
+ PRAGMA defer_foreign_keys=OFF;
@@ -0,0 +1,27 @@
1
+ -- RedefineTables
2
+ PRAGMA defer_foreign_keys=ON;
3
+ PRAGMA foreign_keys=OFF;
4
+ CREATE TABLE "new_TestRun" (
5
+ "id" TEXT NOT NULL PRIMARY KEY,
6
+ "name" TEXT NOT NULL,
7
+ "runId" TEXT NOT NULL,
8
+ "startedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
9
+ "completedAt" DATETIME,
10
+ "status" TEXT NOT NULL DEFAULT 'QUEUED',
11
+ "result" TEXT NOT NULL DEFAULT 'PENDING',
12
+ "updatedAt" DATETIME NOT NULL,
13
+ "environmentId" TEXT NOT NULL,
14
+ "testWorkersCount" INTEGER DEFAULT 1,
15
+ "browserEngine" TEXT NOT NULL DEFAULT 'CHROMIUM',
16
+ "logPath" TEXT,
17
+ "reportPath" TEXT,
18
+ CONSTRAINT "TestRun_environmentId_fkey" FOREIGN KEY ("environmentId") REFERENCES "Environment" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
19
+ );
20
+ INSERT INTO "new_TestRun" ("browserEngine", "completedAt", "environmentId", "id", "logPath", "name", "reportPath", "result", "runId", "startedAt", "status", "testWorkersCount", "updatedAt") SELECT "browserEngine", "completedAt", "environmentId", "id", "logPath", "name", "reportPath", "result", "runId", "startedAt", "status", "testWorkersCount", "updatedAt" FROM "TestRun";
21
+ DROP TABLE "TestRun";
22
+ ALTER TABLE "new_TestRun" RENAME TO "TestRun";
23
+ CREATE UNIQUE INDEX "TestRun_name_key" ON "TestRun"("name");
24
+ CREATE UNIQUE INDEX "TestRun_runId_key" ON "TestRun"("runId");
25
+ PRAGMA foreign_keys=ON;
26
+ PRAGMA defer_foreign_keys=OFF;
27
+
@@ -0,0 +1,59 @@
1
+ -- CreateTable
2
+ CREATE TABLE "TestCaseMetrics" (
3
+ "id" TEXT NOT NULL PRIMARY KEY,
4
+ "testCaseId" TEXT NOT NULL,
5
+ "isRepeatedlyFailing" BOOLEAN NOT NULL DEFAULT false,
6
+ "isFlaky" BOOLEAN NOT NULL DEFAULT false,
7
+ "consecutiveFailures" INTEGER NOT NULL DEFAULT 0,
8
+ "failureRate" REAL NOT NULL DEFAULT 0,
9
+ "totalRecentRuns" INTEGER NOT NULL DEFAULT 0,
10
+ "failedRecentRuns" INTEGER NOT NULL DEFAULT 0,
11
+ "lastExecutedAt" DATETIME,
12
+ "lastFailedAt" DATETIME,
13
+ "lastPassedAt" DATETIME,
14
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
15
+ "updatedAt" DATETIME NOT NULL,
16
+ CONSTRAINT "TestCaseMetrics_testCaseId_fkey" FOREIGN KEY ("testCaseId") REFERENCES "TestCase" ("id") ON DELETE CASCADE ON UPDATE CASCADE
17
+ );
18
+
19
+ -- CreateTable
20
+ CREATE TABLE "TestSuiteMetrics" (
21
+ "id" TEXT NOT NULL PRIMARY KEY,
22
+ "testSuiteId" TEXT NOT NULL,
23
+ "lastExecutedAt" DATETIME,
24
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
25
+ "updatedAt" DATETIME NOT NULL,
26
+ CONSTRAINT "TestSuiteMetrics_testSuiteId_fkey" FOREIGN KEY ("testSuiteId") REFERENCES "TestSuite" ("id") ON DELETE CASCADE ON UPDATE CASCADE
27
+ );
28
+
29
+ -- CreateTable
30
+ CREATE TABLE "DashboardMetrics" (
31
+ "id" TEXT NOT NULL PRIMARY KEY,
32
+ "failedRecentRunsCount" INTEGER NOT NULL DEFAULT 0,
33
+ "repeatedlyFailingTestsCount" INTEGER NOT NULL DEFAULT 0,
34
+ "flakyTestsCount" INTEGER NOT NULL DEFAULT 0,
35
+ "suitesNotExecutedRecentlyCount" INTEGER NOT NULL DEFAULT 0,
36
+ "lastUpdatedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
37
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
38
+ );
39
+
40
+ -- CreateIndex
41
+ CREATE UNIQUE INDEX "TestCaseMetrics_testCaseId_key" ON "TestCaseMetrics"("testCaseId");
42
+
43
+ -- CreateIndex
44
+ CREATE INDEX "TestCaseMetrics_isRepeatedlyFailing_idx" ON "TestCaseMetrics"("isRepeatedlyFailing");
45
+
46
+ -- CreateIndex
47
+ CREATE INDEX "TestCaseMetrics_isFlaky_idx" ON "TestCaseMetrics"("isFlaky");
48
+
49
+ -- CreateIndex
50
+ CREATE UNIQUE INDEX "TestSuiteMetrics_testSuiteId_key" ON "TestSuiteMetrics"("testSuiteId");
51
+
52
+ -- CreateIndex
53
+ CREATE INDEX "TestSuiteMetrics_lastExecutedAt_idx" ON "TestSuiteMetrics"("lastExecutedAt");
54
+
55
+ -- CreateIndex
56
+ CREATE INDEX "TestRun_completedAt_idx" ON "TestRun"("completedAt");
57
+
58
+ -- CreateIndex
59
+ CREATE INDEX "TestRun_result_idx" ON "TestRun"("result");
@@ -0,0 +1,34 @@
1
+ -- RedefineTables
2
+ PRAGMA defer_foreign_keys=ON;
3
+ PRAGMA foreign_keys=OFF;
4
+ CREATE TABLE "new_TemplateTestCaseStepParameter" (
5
+ "id" TEXT NOT NULL PRIMARY KEY,
6
+ "name" TEXT NOT NULL,
7
+ "defaultValue" TEXT NOT NULL,
8
+ "order" INTEGER NOT NULL,
9
+ "testCaseStepId" TEXT NOT NULL,
10
+ "locatorId" TEXT,
11
+ "type" TEXT NOT NULL,
12
+ "defaultLocatorId" TEXT,
13
+ CONSTRAINT "TemplateTestCaseStepParameter_defaultLocatorId_fkey" FOREIGN KEY ("defaultLocatorId") REFERENCES "Locator" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
14
+ CONSTRAINT "TemplateTestCaseStepParameter_testCaseStepId_fkey" FOREIGN KEY ("testCaseStepId") REFERENCES "TemplateTestCaseStep" ("id") ON DELETE CASCADE ON UPDATE CASCADE
15
+ );
16
+ INSERT INTO "new_TemplateTestCaseStepParameter" ("defaultLocatorId", "defaultValue", "id", "locatorId", "name", "order", "testCaseStepId", "type") SELECT "defaultLocatorId", "defaultValue", "id", "locatorId", "name", "order", "testCaseStepId", "type" FROM "TemplateTestCaseStepParameter";
17
+ DROP TABLE "TemplateTestCaseStepParameter";
18
+ ALTER TABLE "new_TemplateTestCaseStepParameter" RENAME TO "TemplateTestCaseStepParameter";
19
+ CREATE TABLE "new_TestCaseStepParameter" (
20
+ "id" TEXT NOT NULL PRIMARY KEY,
21
+ "name" TEXT NOT NULL,
22
+ "value" TEXT NOT NULL,
23
+ "order" INTEGER NOT NULL,
24
+ "testCaseStepId" TEXT NOT NULL,
25
+ "locatorId" TEXT,
26
+ "type" TEXT NOT NULL,
27
+ CONSTRAINT "TestCaseStepParameter_locatorId_fkey" FOREIGN KEY ("locatorId") REFERENCES "Locator" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
28
+ CONSTRAINT "TestCaseStepParameter_testCaseStepId_fkey" FOREIGN KEY ("testCaseStepId") REFERENCES "TestCaseStep" ("id") ON DELETE CASCADE ON UPDATE CASCADE
29
+ );
30
+ INSERT INTO "new_TestCaseStepParameter" ("id", "locatorId", "name", "order", "testCaseStepId", "type", "value") SELECT "id", "locatorId", "name", "order", "testCaseStepId", "type", "value" FROM "TestCaseStepParameter";
31
+ DROP TABLE "TestCaseStepParameter";
32
+ ALTER TABLE "new_TestCaseStepParameter" RENAME TO "TestCaseStepParameter";
33
+ PRAGMA foreign_keys=ON;
34
+ PRAGMA defer_foreign_keys=OFF;
@@ -0,0 +1,3 @@
1
+ # Please do not edit this file manually
2
+ # It should be added in your version-control system (e.g., Git)
3
+ provider = "sqlite"