create-appraisejs 0.2.0 → 0.3.0-alpha.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.
- package/README.md +12 -1
- package/package.json +1 -1
- package/templates/default/.appraise-template-meta.json +2 -2
- package/templates/default/.env.example +2 -2
- package/templates/default/README.md +57 -53
- package/templates/default/automation/steps/actions/click.step.ts +58 -58
- package/templates/default/automation/steps/actions/hover.step.ts +27 -27
- package/templates/default/automation/steps/actions/navigation.step.ts +70 -70
- package/templates/default/automation/steps/actions/random_data.step.ts +142 -142
- package/templates/default/automation/steps/actions/store.step.ts +86 -86
- package/templates/default/automation/steps/actions/wait.step.ts +110 -90
- package/templates/default/automation/steps/validations/active_state_assertion.step.ts +30 -30
- package/templates/default/automation/steps/validations/navigation_assertion.step.ts +22 -22
- package/templates/default/automation/steps/validations/text_assertion.step.ts +107 -107
- package/templates/default/automation/steps/validations/visibility_assertion.step.ts +26 -26
- package/templates/default/components.json +24 -24
- package/templates/default/cucumber.mjs +16 -16
- package/templates/default/eslint.config.mjs +20 -16
- package/templates/default/next-env.d.ts +6 -6
- package/templates/default/next.config.ts +20 -11
- package/templates/default/package-lock.json +1775 -74
- package/templates/default/package.json +8 -1
- package/templates/default/packages/cucumber-runtime/package.json +13 -13
- package/templates/default/packages/cucumber-runtime/src/cache.util.ts +93 -93
- package/templates/default/packages/cucumber-runtime/src/cli.ts +68 -68
- package/templates/default/packages/cucumber-runtime/src/environment.util.ts +21 -21
- package/templates/default/packages/cucumber-runtime/src/executor.ts +32 -32
- package/templates/default/packages/cucumber-runtime/src/index.ts +17 -17
- package/templates/default/packages/cucumber-runtime/src/locator.util.ts +234 -234
- package/templates/default/packages/cucumber-runtime/src/parameter-types.ts +7 -7
- package/templates/default/packages/cucumber-runtime/src/random-data.util.ts +35 -35
- package/templates/default/packages/cucumber-runtime/src/types.ts +13 -13
- package/templates/default/packages/cucumber-runtime/src/world.ts +44 -44
- package/templates/default/packages/cucumber-runtime/tsconfig.json +11 -11
- package/templates/default/postcss.config.mjs +8 -8
- package/templates/default/prisma/dev.db +0 -0
- package/templates/default/prisma/migrations/20251104113456_add_type_for_template_step_groups/migration.sql +16 -16
- package/templates/default/prisma/migrations/20251104170946_add_tags_to_test_suite_and_test_case/migration.sql +27 -27
- package/templates/default/prisma/migrations/20251112190024_add_cascade_delete_to_test_run_test_case/migration.sql +17 -17
- package/templates/default/prisma/migrations/20251113181100_add_test_run_log/migration.sql +12 -12
- package/templates/default/prisma/migrations/20251119191838_add_tag_type/migration.sql +28 -28
- package/templates/default/prisma/migrations/20251121164059_add_conflict_resolution/migration.sql +12 -12
- package/templates/default/prisma/migrations/20251223183400_add_report_model_to_db_schema/migration.sql +10 -10
- package/templates/default/prisma/migrations/20251223183637_add_report_test_case_entity_for_storing_test_results_for_individual_test_cases/migration.sql +10 -10
- package/templates/default/prisma/migrations/20251224083549_add_comprehensive_report_storage/migration.sql +108 -108
- package/templates/default/prisma/migrations/20251229194422_migrate_duration_to_string/migration.sql +55 -55
- package/templates/default/prisma/migrations/20251230124637_add_unique_constraint_to_test_run_name/migration.sql +27 -27
- package/templates/default/prisma/migrations/20260115094436_add_dashboard_metrics/migration.sql +59 -59
- package/templates/default/prisma/migrations/20260127172022_add_cascade_delete_to_step_parameters/migration.sql +34 -34
- package/templates/default/prisma/migrations/20260313093000_add_report_step_screenshot_path/migration.sql +1 -1
- package/templates/default/scripts/build-step-registry.ts +33 -0
- package/templates/default/scripts/install-playwright.ts +17 -8
- package/templates/default/scripts/install-template-step.ts +128 -0
- package/templates/default/scripts/lib/filename-utils.test.ts +24 -0
- package/templates/default/scripts/lib/filename-utils.ts +24 -0
- package/templates/default/scripts/lib/jsdoc-parser.test.ts +63 -0
- package/templates/default/scripts/lib/jsdoc-parser.ts +88 -0
- package/templates/default/scripts/lib/step-file-parser.test.ts +71 -0
- package/templates/default/scripts/lib/step-file-parser.ts +315 -0
- package/templates/default/scripts/lib/step-matcher.test.ts +86 -0
- package/templates/default/scripts/lib/step-matcher.ts +120 -0
- package/templates/default/scripts/lib/sync-script-runner.ts +23 -0
- package/templates/default/scripts/lib/sync-summary.ts +29 -0
- package/templates/default/scripts/lib/tag-parsing.test.ts +20 -0
- package/templates/default/scripts/lib/tag-parsing.ts +10 -0
- package/templates/default/scripts/lib/template-step-installer.test.ts +225 -0
- package/templates/default/scripts/lib/template-step-installer.ts +404 -0
- package/templates/default/scripts/lib/template-step-registry.test.ts +118 -0
- package/templates/default/scripts/lib/template-step-registry.ts +137 -0
- package/templates/default/scripts/protect-seeded-files.ts +51 -38
- package/templates/default/scripts/regenerate-features.ts +98 -94
- package/templates/default/scripts/run-vitest.ts +59 -0
- package/templates/default/scripts/setup-env.ts +26 -19
- package/templates/default/scripts/sync-all.ts +44 -54
- package/templates/default/scripts/sync-appraise-base-template.ts +44 -16
- package/templates/default/scripts/sync-environments.ts +22 -66
- package/templates/default/scripts/sync-locator-groups.ts +358 -410
- package/templates/default/scripts/sync-locators.ts +348 -398
- package/templates/default/scripts/sync-modules.ts +302 -341
- package/templates/default/scripts/sync-tags.ts +29 -65
- package/templates/default/scripts/sync-template-step-groups.ts +24 -182
- package/templates/default/scripts/sync-template-steps.ts +36 -493
- package/templates/default/scripts/sync-test-cases.ts +296 -539
- package/templates/default/scripts/sync-test-suites.ts +32 -79
- package/templates/default/src/actions/dashboard/dashboard-actions.ts +70 -241
- package/templates/default/src/actions/environments/environment-actions.ts +102 -188
- package/templates/default/src/actions/locator/locator-actions.ts +77 -490
- package/templates/default/src/actions/locator-groups/locator-group-actions.ts +34 -212
- package/templates/default/src/actions/locator-picker/locator-picker-actions.test.ts +81 -0
- package/templates/default/src/actions/locator-picker/locator-picker-actions.ts +20 -161
- package/templates/default/src/actions/modules/module-actions.ts +99 -135
- package/templates/default/src/actions/reports/report-actions.ts +28 -565
- package/templates/default/src/actions/settings/sync-actions.test.ts +58 -0
- package/templates/default/src/actions/tags/tag-actions.ts +99 -107
- package/templates/default/src/actions/template-step/template-step-actions.ts +33 -194
- package/templates/default/src/actions/template-step-group/template-step-group-actions.ts +35 -92
- package/templates/default/src/actions/template-test-case/template-test-case-actions.ts +98 -238
- package/templates/default/src/actions/test-case/test-case-actions.ts +108 -356
- package/templates/default/src/actions/test-run/test-run-actions.ts +74 -1081
- package/templates/default/src/actions/test-suite/test-suite-actions.ts +35 -202
- package/templates/default/src/app/(base)/environments/create/page.tsx +28 -28
- package/templates/default/src/app/(base)/environments/environment-form.test.tsx +92 -0
- package/templates/default/src/app/(base)/environments/environment-form.tsx +228 -219
- package/templates/default/src/app/(base)/environments/environment-helpers.ts +58 -0
- package/templates/default/src/app/(base)/environments/environment-table-columns.tsx +96 -96
- package/templates/default/src/app/(base)/environments/environment-table.tsx +25 -24
- package/templates/default/src/app/(base)/environments/modify/[id]/page.tsx +49 -46
- package/templates/default/src/app/(base)/environments/page.tsx +59 -59
- package/templates/default/src/app/(base)/layout.tsx +10 -10
- package/templates/default/src/app/(base)/locator-groups/create/page.tsx +44 -44
- package/templates/default/src/app/(base)/locator-groups/locator-group-form.tsx +215 -215
- package/templates/default/src/app/(base)/locator-groups/locator-group-table-columns.tsx +77 -77
- package/templates/default/src/app/(base)/locator-groups/locator-group-table.tsx +28 -28
- package/templates/default/src/app/(base)/locator-groups/modify/[id]/page.tsx +46 -46
- package/templates/default/src/app/(base)/locators/create/create-locator-workspace-helpers.test.ts +71 -0
- package/templates/default/src/app/(base)/locators/create/create-locator-workspace-helpers.ts +333 -0
- package/templates/default/src/app/(base)/locators/create/create-locator-workspace.test.tsx +125 -0
- package/templates/default/src/app/(base)/locators/create/create-locator-workspace.tsx +56 -274
- package/templates/default/src/app/(base)/locators/create/page.tsx +8 -4
- package/templates/default/src/app/(base)/locators/create/use-locator-workspace.ts +183 -0
- package/templates/default/src/app/(base)/locators/locator-helpers.test.ts +28 -0
- package/templates/default/src/app/(base)/locators/locator-helpers.ts +59 -0
- package/templates/default/src/app/(base)/locators/locator-table-columns.tsx +74 -73
- package/templates/default/src/app/(base)/locators/locator-table.tsx +30 -28
- package/templates/default/src/app/(base)/locators/modify/[id]/page.tsx +20 -8
- package/templates/default/src/app/(base)/locators/page.tsx +3 -6
- package/templates/default/src/app/(base)/locators/sync-locators-button.tsx +67 -66
- package/templates/default/src/app/(base)/modules/create/page.tsx +33 -34
- package/templates/default/src/app/(base)/modules/modify/[id]/page.tsx +43 -46
- package/templates/default/src/app/(base)/modules/module-form.test.tsx +84 -0
- package/templates/default/src/app/(base)/modules/module-form.tsx +159 -126
- package/templates/default/src/app/(base)/modules/module-helpers.ts +64 -0
- package/templates/default/src/app/(base)/modules/module-table-columns.tsx +81 -85
- package/templates/default/src/app/(base)/modules/module-table.tsx +25 -24
- package/templates/default/src/app/(base)/modules/page.tsx +59 -59
- package/templates/default/src/app/(base)/reports/[id]/page.tsx +20 -260
- package/templates/default/src/app/(base)/reports/duration-chart.tsx +33 -33
- package/templates/default/src/app/(base)/reports/feature-chart.tsx +79 -78
- package/templates/default/src/app/(base)/reports/overview-chart.tsx +49 -49
- package/templates/default/src/app/(base)/reports/page.tsx +98 -98
- package/templates/default/src/app/(base)/reports/report-detail-helpers.test.ts +109 -0
- package/templates/default/src/app/(base)/reports/report-detail-helpers.ts +247 -0
- package/templates/default/src/app/(base)/reports/report-metric-card.tsx +78 -78
- package/templates/default/src/app/(base)/reports/report-table-columns.tsx +189 -189
- package/templates/default/src/app/(base)/reports/report-table.tsx +72 -72
- package/templates/default/src/app/(base)/reports/test-cases/page.tsx +40 -40
- package/templates/default/src/app/(base)/reports/test-cases/test-cases-metric-table-columns.tsx +115 -115
- package/templates/default/src/app/(base)/reports/test-cases/test-cases-metric-table.tsx +27 -27
- package/templates/default/src/app/(base)/reports/test-suites/page.tsx +42 -42
- package/templates/default/src/app/(base)/reports/test-suites/test-suites-metric-table-columns.tsx +79 -79
- package/templates/default/src/app/(base)/reports/test-suites/test-suites-metric-table.tsx +27 -27
- package/templates/default/src/app/(base)/reports/view-logs-button.tsx +58 -58
- package/templates/default/src/app/(base)/settings/settings-sync-panel-helpers.test.tsx +40 -0
- package/templates/default/src/app/(base)/settings/settings-sync-panel-helpers.tsx +110 -0
- package/templates/default/src/app/(base)/settings/settings-sync-panel.test.tsx +127 -0
- package/templates/default/src/app/(base)/settings/settings-sync-panel.tsx +19 -134
- package/templates/default/src/app/(base)/settings/use-settings-sync.ts +66 -0
- package/templates/default/src/app/(base)/tags/create/page.tsx +39 -39
- package/templates/default/src/app/(base)/tags/modify/[id]/page.tsx +50 -50
- package/templates/default/src/app/(base)/tags/page.tsx +58 -58
- package/templates/default/src/app/(base)/tags/tag-form-helpers.ts +13 -0
- package/templates/default/src/app/(base)/tags/tag-form.test.tsx +83 -0
- package/templates/default/src/app/(base)/tags/tag-form.tsx +143 -147
- package/templates/default/src/app/(base)/tags/tag-table-columns.tsx +63 -63
- package/templates/default/src/app/(base)/tags/tag-table.tsx +29 -29
- package/templates/default/src/app/(base)/template-step-groups/create/page.tsx +28 -28
- package/templates/default/src/app/(base)/template-step-groups/modify/[id]/page.tsx +43 -45
- package/templates/default/src/app/(base)/template-step-groups/page.tsx +60 -60
- package/templates/default/src/app/(base)/template-step-groups/template-step-group-form.test.tsx +82 -0
- package/templates/default/src/app/(base)/template-step-groups/template-step-group-form.tsx +181 -167
- package/templates/default/src/app/(base)/template-step-groups/template-step-group-helpers.ts +54 -0
- package/templates/default/src/app/(base)/template-step-groups/template-step-group-table-columns.tsx +89 -89
- package/templates/default/src/app/(base)/template-step-groups/template-step-group-table.tsx +34 -32
- package/templates/default/src/app/(base)/template-steps/create/page.tsx +40 -37
- package/templates/default/src/app/(base)/template-steps/modify/[id]/page.tsx +54 -49
- package/templates/default/src/app/(base)/template-steps/page.tsx +59 -58
- package/templates/default/src/app/(base)/template-steps/paramChip.tsx +233 -213
- package/templates/default/src/app/(base)/template-steps/template-step-form.test.tsx +132 -0
- package/templates/default/src/app/(base)/template-steps/template-step-form.tsx +342 -384
- package/templates/default/src/app/(base)/template-steps/template-step-helpers.test.ts +99 -0
- package/templates/default/src/app/(base)/template-steps/template-step-helpers.ts +176 -0
- package/templates/default/src/app/(base)/template-steps/template-step-table-columns.tsx +153 -158
- package/templates/default/src/app/(base)/template-steps/template-step-table.tsx +26 -24
- package/templates/default/src/app/(base)/template-test-cases/create/page.tsx +56 -56
- package/templates/default/src/app/(base)/template-test-cases/modify/[id]/page.tsx +89 -89
- package/templates/default/src/app/(base)/template-test-cases/page.tsx +58 -58
- package/templates/default/src/app/(base)/template-test-cases/template-test-case-flow.test.tsx +109 -0
- package/templates/default/src/app/(base)/template-test-cases/template-test-case-flow.tsx +45 -84
- package/templates/default/src/app/(base)/template-test-cases/template-test-case-form.test.tsx +140 -0
- package/templates/default/src/app/(base)/template-test-cases/template-test-case-form.tsx +154 -262
- package/templates/default/src/app/(base)/template-test-cases/template-test-case-table-columns.tsx +76 -76
- package/templates/default/src/app/(base)/template-test-cases/template-test-case-table.tsx +32 -32
- package/templates/default/src/app/(base)/test-cases/create/page.tsx +90 -76
- package/templates/default/src/app/(base)/test-cases/create-from-template/create-from-template-helpers.test.ts +94 -0
- package/templates/default/src/app/(base)/test-cases/create-from-template/create-from-template-helpers.ts +171 -0
- package/templates/default/src/app/(base)/test-cases/create-from-template/generate/[id]/page.tsx +105 -96
- package/templates/default/src/app/(base)/test-cases/create-from-template/page.tsx +40 -38
- package/templates/default/src/app/(base)/test-cases/create-from-template/template-selection-form.test.tsx +87 -0
- package/templates/default/src/app/(base)/test-cases/create-from-template/template-selection-form.tsx +83 -73
- package/templates/default/src/app/(base)/test-cases/modify/[id]/page.tsx +106 -106
- package/templates/default/src/app/(base)/test-cases/page.tsx +3 -2
- package/templates/default/src/app/(base)/test-cases/test-case-flow.test.tsx +108 -0
- package/templates/default/src/app/(base)/test-cases/test-case-flow.tsx +43 -82
- package/templates/default/src/app/(base)/test-cases/test-case-form.test.tsx +202 -0
- package/templates/default/src/app/(base)/test-cases/test-case-form.tsx +263 -395
- package/templates/default/src/app/(base)/test-cases/test-case-route-helpers.test.ts +95 -0
- package/templates/default/src/app/(base)/test-cases/test-case-route-helpers.ts +147 -0
- package/templates/default/src/app/(base)/test-cases/test-case-table.tsx +4 -2
- package/templates/default/src/app/(base)/test-runs/[id]/page.tsx +11 -10
- package/templates/default/src/app/(base)/test-runs/create/page.tsx +4 -5
- package/templates/default/src/app/(base)/test-runs/page.tsx +60 -60
- package/templates/default/src/app/(base)/test-runs/test-run-form-helpers.test.ts +50 -0
- package/templates/default/src/app/(base)/test-runs/test-run-form-helpers.ts +168 -0
- package/templates/default/src/app/(base)/test-runs/test-run-form.test.tsx +138 -0
- package/templates/default/src/app/(base)/test-runs/test-run-form.tsx +111 -256
- package/templates/default/src/app/(base)/test-runs/test-run-table-columns.tsx +229 -229
- package/templates/default/src/app/(base)/test-runs/test-run-table.tsx +127 -127
- package/templates/default/src/app/(base)/test-runs/use-test-run-name-validation.ts +74 -0
- package/templates/default/src/app/(base)/test-suites/create/page.tsx +17 -12
- package/templates/default/src/app/(base)/test-suites/modify/[id]/page.tsx +22 -19
- package/templates/default/src/app/(base)/test-suites/page.tsx +14 -56
- package/templates/default/src/app/(base)/test-suites/test-suite-form.test.tsx +127 -0
- package/templates/default/src/app/(base)/test-suites/test-suite-form.tsx +45 -64
- package/templates/default/src/app/(base)/test-suites/test-suite-helpers.test.ts +67 -0
- package/templates/default/src/app/(base)/test-suites/test-suite-helpers.ts +215 -0
- package/templates/default/src/app/(base)/test-suites/test-suite-table.tsx +32 -29
- package/templates/default/src/app/(dashboard-components)/app-drawer.tsx +187 -187
- package/templates/default/src/app/(dashboard-components)/data-card-grid.tsx +12 -12
- package/templates/default/src/app/(dashboard-components)/data-card.tsx +26 -26
- package/templates/default/src/app/(dashboard-components)/execution-health-panel.tsx +56 -56
- package/templates/default/src/app/(dashboard-components)/ongoing-test-runs-card.tsx +87 -87
- package/templates/default/src/app/(dashboard-components)/quick-actions-drawer.tsx +44 -44
- package/templates/default/src/app/api/reports/steps/[stepId]/screenshot/route.test.ts +83 -0
- package/templates/default/src/app/api/reports/steps/[stepId]/screenshot/route.ts +52 -52
- package/templates/default/src/app/api/test-runs/[runId]/download/route.test.ts +169 -0
- package/templates/default/src/app/api/test-runs/[runId]/download/route.ts +1 -1
- package/templates/default/src/app/api/test-runs/[runId]/trace/[testCaseId]/route.test.ts +135 -0
- package/templates/default/src/app/api/test-runs/[runId]/trace/[testCaseId]/route.ts +146 -146
- package/templates/default/src/app/globals.css +147 -147
- package/templates/default/src/app/page.tsx +1 -1
- package/templates/default/src/assets/icons/empty-tube.tsx +23 -23
- package/templates/default/src/assets/icons/tube-plus.tsx +29 -29
- package/templates/default/src/components/base-node.tsx +21 -21
- package/templates/default/src/components/chart/pie-chart.tsx +73 -73
- package/templates/default/src/components/data-extraction/locator-inspector-helpers.test.ts +32 -0
- package/templates/default/src/components/data-extraction/locator-inspector-helpers.ts +183 -0
- package/templates/default/src/components/data-extraction/locator-inspector.tsx +349 -460
- package/templates/default/src/components/data-state/empty-state.tsx +40 -40
- package/templates/default/src/components/data-visualization/info-card.tsx +70 -70
- package/templates/default/src/components/data-visualization/info-grid.tsx +22 -22
- package/templates/default/src/components/diagram/button-edge.tsx +54 -54
- package/templates/default/src/components/diagram/dynamic-parameters-helpers.test.ts +83 -0
- package/templates/default/src/components/diagram/dynamic-parameters-helpers.ts +158 -0
- package/templates/default/src/components/diagram/dynamic-parameters.tsx +350 -474
- package/templates/default/src/components/diagram/edit-header-option.tsx +36 -36
- package/templates/default/src/components/diagram/flow-diagram-helpers.test.ts +117 -0
- package/templates/default/src/components/diagram/flow-diagram-helpers.ts +251 -0
- package/templates/default/src/components/diagram/flow-diagram.tsx +247 -470
- package/templates/default/src/components/diagram/flow-host-helpers.test.ts +74 -0
- package/templates/default/src/components/diagram/flow-host-helpers.ts +51 -0
- package/templates/default/src/components/diagram/node-form-helpers.test.ts +92 -0
- package/templates/default/src/components/diagram/node-form-helpers.ts +100 -0
- package/templates/default/src/components/diagram/node-form.test.tsx +168 -0
- package/templates/default/src/components/diagram/node-form.tsx +199 -262
- package/templates/default/src/components/diagram/options-header-node.tsx +57 -57
- package/templates/default/src/components/diagram/template-step-combobox.tsx +155 -155
- package/templates/default/src/components/diagram/use-flow-node-order.ts +49 -0
- package/templates/default/src/components/form/error-message.tsx +7 -7
- package/templates/default/src/components/kokonutui/smooth-tab.tsx +453 -453
- package/templates/default/src/components/loading-skeleton/data-table/data-table-skeleton.tsx +30 -30
- package/templates/default/src/components/loading-skeleton/form/button-skeleton.tsx +8 -8
- package/templates/default/src/components/loading-skeleton/form/icon-button-skeleton.tsx +8 -8
- package/templates/default/src/components/loading-skeleton/form/text-input-skeleton.tsx +8 -8
- package/templates/default/src/components/loading-skeleton/visualization/table-skeleton.tsx +14 -14
- package/templates/default/src/components/navigation/command-badge.tsx +34 -34
- package/templates/default/src/components/navigation/command-chain-input.tsx +51 -51
- package/templates/default/src/components/navigation/entity-search-command.tsx +118 -116
- package/templates/default/src/components/navigation/nav-card.tsx +31 -31
- package/templates/default/src/components/navigation/nav-command-helpers.ts +122 -0
- package/templates/default/src/components/navigation/nav-command-search.tsx +125 -0
- package/templates/default/src/components/navigation/nav-command.test.tsx +106 -0
- package/templates/default/src/components/navigation/nav-command.tsx +49 -472
- package/templates/default/src/components/navigation/nav-link.tsx +60 -60
- package/templates/default/src/components/navigation/nav-menu-card-deck.tsx +112 -112
- package/templates/default/src/components/navigation/use-nav-command.ts +58 -0
- package/templates/default/src/components/node-header.tsx +159 -159
- package/templates/default/src/components/reports/test-case-logs-modal.tsx +310 -310
- package/templates/default/src/components/table/table-actions.tsx +174 -172
- package/templates/default/src/components/test-case/test-case-form-helpers.test.ts +100 -0
- package/templates/default/src/components/test-case/test-case-form-helpers.ts +140 -0
- package/templates/default/src/components/test-case/test-case-picker-helpers.test.ts +40 -0
- package/templates/default/src/components/test-case/test-case-picker-helpers.ts +41 -0
- package/templates/default/src/components/test-case/test-case-picker.test.tsx +44 -0
- package/templates/default/src/components/test-case/test-case-picker.tsx +16 -35
- package/templates/default/src/components/test-case/test-scenario-preview.tsx +34 -0
- package/templates/default/src/components/test-run/download-logs-button.tsx +92 -92
- package/templates/default/src/components/test-run/log-viewer-helpers.test.ts +37 -0
- package/templates/default/src/components/test-run/log-viewer-helpers.ts +80 -0
- package/templates/default/src/components/test-run/log-viewer.test.tsx +118 -0
- package/templates/default/src/components/test-run/log-viewer.tsx +51 -350
- package/templates/default/src/components/test-run/test-run-details-helpers.test.ts +31 -0
- package/templates/default/src/components/test-run/test-run-details-helpers.ts +208 -0
- package/templates/default/src/components/test-run/test-run-details.test.tsx +174 -0
- package/templates/default/src/components/test-run/test-run-details.tsx +155 -457
- package/templates/default/src/components/test-run/test-run-header-helpers.test.ts +31 -0
- package/templates/default/src/components/test-run/test-run-header-helpers.ts +23 -0
- package/templates/default/src/components/test-run/test-run-header.test.tsx +103 -0
- package/templates/default/src/components/test-run/test-run-header.tsx +27 -149
- package/templates/default/src/components/test-run/use-log-viewer.ts +213 -0
- package/templates/default/src/components/test-run/use-test-run-details.ts +184 -0
- package/templates/default/src/components/test-run/use-test-run-header.ts +89 -0
- package/templates/default/src/components/test-run/view-report-button.tsx +102 -102
- package/templates/default/src/components/test-suite/test-suite-picker-helpers.test.ts +68 -0
- package/templates/default/src/components/test-suite/test-suite-picker-helpers.ts +76 -0
- package/templates/default/src/components/test-suite/test-suite-picker.test.tsx +65 -0
- package/templates/default/src/components/test-suite/test-suite-picker.tsx +4 -72
- package/templates/default/src/components/theme/mode-toggle.tsx +54 -54
- package/templates/default/src/components/theme/theme-provider.tsx +8 -8
- package/templates/default/src/components/typography/page-header-subtitle.tsx +7 -7
- package/templates/default/src/components/typography/page-header.tsx +7 -7
- package/templates/default/src/components/ui/alert-dialog.tsx +106 -106
- package/templates/default/src/components/ui/alert.tsx +43 -43
- package/templates/default/src/components/ui/avatar.tsx +40 -40
- package/templates/default/src/components/ui/badge.tsx +29 -29
- package/templates/default/src/components/ui/button.tsx +47 -47
- package/templates/default/src/components/ui/calendar.tsx +158 -158
- package/templates/default/src/components/ui/card.tsx +43 -43
- package/templates/default/src/components/ui/checkbox.tsx +28 -28
- package/templates/default/src/components/ui/command.tsx +135 -135
- package/templates/default/src/components/ui/data-table-column-header.tsx +61 -61
- package/templates/default/src/components/ui/data-table-pagination.tsx +87 -87
- package/templates/default/src/components/ui/data-table-view-options.tsx +50 -50
- package/templates/default/src/components/ui/data-table.test.tsx +122 -0
- package/templates/default/src/components/ui/data-table.tsx +298 -261
- package/templates/default/src/components/ui/dialog.tsx +97 -97
- package/templates/default/src/components/ui/dropdown-menu.tsx +182 -182
- package/templates/default/src/components/ui/input.tsx +22 -22
- package/templates/default/src/components/ui/kbd.tsx +28 -28
- package/templates/default/src/components/ui/label.tsx +19 -19
- package/templates/default/src/components/ui/loading.tsx +12 -12
- package/templates/default/src/components/ui/multi-select-with-preview.tsx +116 -116
- package/templates/default/src/components/ui/multi-select.test.tsx +45 -0
- package/templates/default/src/components/ui/multi-select.tsx +158 -142
- package/templates/default/src/components/ui/navigation-menu.tsx +120 -120
- package/templates/default/src/components/ui/popover.tsx +33 -33
- package/templates/default/src/components/ui/progress.tsx +25 -25
- package/templates/default/src/components/ui/radio-group.tsx +44 -44
- package/templates/default/src/components/ui/scroll-area.tsx +40 -40
- package/templates/default/src/components/ui/select.tsx +151 -151
- package/templates/default/src/components/ui/separator.tsx +22 -22
- package/templates/default/src/components/ui/skeleton.tsx +7 -7
- package/templates/default/src/components/ui/table.tsx +76 -76
- package/templates/default/src/components/ui/tabs.tsx +55 -55
- package/templates/default/src/components/ui/textarea.tsx +21 -21
- package/templates/default/src/components/ui/toast.tsx +113 -113
- package/templates/default/src/components/ui/toaster.tsx +26 -26
- package/templates/default/src/components/user-prompt/delete-prompt.test.tsx +60 -0
- package/templates/default/src/components/user-prompt/delete-prompt.tsx +118 -87
- package/templates/default/src/constants/form-opts/diagram/node-form.ts +30 -30
- package/templates/default/src/constants/form-opts/environment-form-opts.ts +24 -24
- package/templates/default/src/constants/form-opts/locator-group-form-opts.ts +28 -28
- package/templates/default/src/constants/form-opts/module-form-opts.ts +21 -21
- package/templates/default/src/constants/form-opts/tag-form-opts.ts +42 -42
- package/templates/default/src/constants/form-opts/template-selection-form-opts.ts +16 -16
- package/templates/default/src/constants/form-opts/template-step-group-form-opts.ts +24 -24
- package/templates/default/src/constants/form-opts/template-test-case-form-opts.ts +39 -39
- package/templates/default/src/constants/form-opts/template-test-step-form-opts.ts +36 -36
- package/templates/default/src/constants/form-opts/test-case-form-opts.ts +43 -43
- package/templates/default/src/constants/form-opts/test-suite-form-opts.ts +24 -24
- package/templates/default/src/hooks/use-toast.ts +187 -187
- package/templates/default/src/lib/automation/automation-path-roots.ts +95 -0
- package/templates/default/src/lib/automation/automation-workspace.ts +147 -0
- package/templates/default/src/lib/automation/paths.ts +6 -211
- package/templates/default/src/lib/bidirectional-sync.ts +432 -432
- package/templates/default/src/lib/environment-file-utils.ts +2 -1
- package/templates/default/src/lib/executor/local-executor-adapter.ts +2 -5
- package/templates/default/src/lib/feature-file-generator.ts +2 -1
- package/templates/default/src/lib/gherkin-parser.ts +0 -2
- package/templates/default/src/lib/locator-group-file-utils.ts +304 -307
- package/templates/default/src/lib/locator-picker/session-manager.ts +0 -21
- package/templates/default/src/lib/locator-picker/suggestions.ts +4 -2
- package/templates/default/src/lib/metrics/metric-calculator.ts +2 -6
- package/templates/default/src/lib/module-hierarchy-builder.ts +205 -205
- package/templates/default/src/lib/path-helpers/module-path.ts +71 -71
- package/templates/default/src/lib/sync/sync-executor.test.ts +76 -0
- package/templates/default/src/lib/sync/sync-pending-counts.test.ts +227 -226
- package/templates/default/src/lib/sync/sync-pending-counts.ts +2 -5
- package/templates/default/src/lib/template-sync-utils.d.ts +6 -6
- package/templates/default/src/lib/template-sync-utils.js +46 -46
- package/templates/default/src/lib/template-sync-utils.ts +63 -63
- package/templates/default/src/lib/test-case-utils.ts +6 -6
- package/templates/default/src/lib/test-run/log-formatter.ts +83 -83
- package/templates/default/src/lib/test-run/report-parser.ts +352 -352
- package/templates/default/src/lib/test-run/test-run-executor.ts +13 -13
- package/templates/default/src/lib/test-run/winston-logger.ts +65 -64
- package/templates/default/src/lib/transformers/gherkin-converter.ts +42 -42
- package/templates/default/src/lib/transformers/key-to-icon-transformer.tsx +95 -95
- package/templates/default/src/lib/transformers/template-test-case-converter.ts +160 -160
- package/templates/default/src/lib/utils/node-param-validation.ts +81 -81
- package/templates/default/src/lib/utils/template-step-file-generator.ts +2 -2
- package/templates/default/src/lib/utils/template-step-file-manager.ts +166 -166
- package/templates/default/src/lib/utils.ts +31 -31
- package/templates/default/src/services/dashboard/dashboard-service.test.ts +106 -0
- package/templates/default/src/services/dashboard/dashboard-service.ts +173 -0
- package/templates/default/src/services/environment/environment-service.test.ts +137 -0
- package/templates/default/src/services/environment/environment-service.ts +96 -0
- package/templates/default/src/services/locator/locator-path-utils.test.ts +14 -0
- package/templates/default/src/services/locator/locator-path-utils.ts +14 -0
- package/templates/default/src/services/locator/locator-service.test.ts +63 -0
- package/templates/default/src/services/locator/locator-service.ts +479 -0
- package/templates/default/src/services/locator/locator-sync-utils.test.ts +19 -0
- package/templates/default/src/services/locator/locator-sync-utils.ts +21 -0
- package/templates/default/src/services/locator-group/locator-group-service.test.ts +123 -0
- package/templates/default/src/services/locator-group/locator-group-service.ts +180 -0
- package/templates/default/src/services/module/module-service.test.ts +89 -0
- package/templates/default/src/services/module/module-service.ts +66 -0
- package/templates/default/src/services/report/report-service.test.ts +244 -0
- package/templates/default/src/services/report/report-service.ts +438 -0
- package/templates/default/src/services/shared/constants.ts +2 -0
- package/templates/default/src/services/shared/errors.test.ts +38 -0
- package/templates/default/src/services/shared/errors.ts +44 -0
- package/templates/default/src/services/shared/index.ts +7 -0
- package/templates/default/src/services/tag/tag-service.test.ts +22 -0
- package/templates/default/src/services/tag/tag-service.ts +41 -0
- package/templates/default/src/services/template-step/template-step-service.test.ts +22 -0
- package/templates/default/src/services/template-step/template-step-service.ts +171 -0
- package/templates/default/src/services/template-step-group/template-step-group-service.test.ts +22 -0
- package/templates/default/src/services/template-step-group/template-step-group-service.ts +81 -0
- package/templates/default/src/services/template-test-case/template-test-case-service.test.ts +22 -0
- package/templates/default/src/services/template-test-case/template-test-case-service.ts +128 -0
- package/templates/default/src/services/test-case/test-case-service.test.ts +175 -0
- package/templates/default/src/services/test-case/test-case-service.ts +298 -0
- package/templates/default/src/services/test-run/test-run-helpers.ts +61 -0
- package/templates/default/src/services/test-run/test-run-service.test.ts +647 -0
- package/templates/default/src/services/test-run/test-run-service.ts +917 -0
- package/templates/default/src/services/test-suite/test-suite-service.test.ts +127 -0
- package/templates/default/src/services/test-suite/test-suite-service.ts +197 -0
- package/templates/default/src/types/diagram/diagram.ts +34 -34
- package/templates/default/src/types/diagram/template-step.ts +11 -11
- package/templates/default/src/types/executor/browser.type.ts +1 -1
- package/templates/default/src/types/form/actionHandler.ts +19 -6
- package/templates/default/src/types/locator/locator.type.ts +11 -11
- package/templates/default/src/types/step/step.type.ts +1 -1
- package/templates/default/src/types/table/data-table.ts +6 -6
- package/templates/default/tailwind.config.ts +62 -62
- package/templates/default/tsconfig.json +1 -1
- package/dist/cli.e2e.test.d.ts +0 -2
- package/dist/cli.e2e.test.d.ts.map +0 -1
- package/dist/cli.e2e.test.js +0 -73
- package/dist/cli.e2e.test.js.map +0 -1
- package/dist/config.test.d.ts +0 -2
- package/dist/config.test.d.ts.map +0 -1
- package/dist/config.test.js +0 -65
- package/dist/config.test.js.map +0 -1
- package/dist/copy-template.test.d.ts +0 -2
- package/dist/copy-template.test.d.ts.map +0 -1
- package/dist/copy-template.test.js +0 -71
- package/dist/copy-template.test.js.map +0 -1
- package/dist/download-repo.test.d.ts +0 -2
- package/dist/download-repo.test.d.ts.map +0 -1
- package/dist/download-repo.test.js +0 -14
- package/dist/download-repo.test.js.map +0 -1
- package/dist/install.test.d.ts +0 -2
- package/dist/install.test.d.ts.map +0 -1
- package/dist/install.test.js +0 -119
- package/dist/install.test.js.map +0 -1
- package/dist/prompts.test.d.ts +0 -2
- package/dist/prompts.test.d.ts.map +0 -1
- package/dist/prompts.test.js +0 -58
- package/dist/prompts.test.js.map +0 -1
- package/templates/default/src/actions/conflict/conflict.action.ts +0 -33
- package/templates/default/src/actions/review/review-actions.ts +0 -147
- package/templates/default/src/actions/user/user-actions.ts +0 -13
- package/templates/default/src/app/(base)/locators/locator-form.tsx +0 -163
- package/templates/default/src/app/(base)/reviews/create/page.tsx +0 -26
- package/templates/default/src/app/(base)/reviews/created-reviews-table.tsx +0 -15
- package/templates/default/src/app/(base)/reviews/modify/[id]/page.tsx +0 -26
- package/templates/default/src/app/(base)/reviews/page.tsx +0 -26
- package/templates/default/src/app/(base)/reviews/review/[id]/page.tsx +0 -26
- package/templates/default/src/app/(base)/reviews/review-form.tsx +0 -11
- package/templates/default/src/app/(base)/reviews/review-table-by-creator-columns.tsx +0 -9
- package/templates/default/src/app/(base)/reviews/review-table-by-reviewer-columns.tsx +0 -9
- package/templates/default/src/app/(base)/reviews/reviewer-reviews-table.tsx +0 -15
- package/templates/default/src/constants/form-opts/locator-form-opts.ts +0 -20
- package/templates/default/src/constants/form-opts/review-form-opts.ts +0 -23
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { When, Then, CustomWorld, expect, SelectorName, resolveLocator, getEnvironment, generateRandomData, RandomDataType } from '../../../packages/cucumber-runtime/src/index.js'
|
|
2
|
-
/**
|
|
3
|
-
* @name active state assertion
|
|
4
|
-
* @description Template steps for handling the validation of the active state of an element
|
|
5
|
-
* @type VALIDATION
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// This file is generated automatically. Add template steps to this group to generate content.
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @name assert element active
|
|
12
|
-
* @description Template step for validating whether an element is active or not
|
|
13
|
-
* @icon VALIDATION
|
|
14
|
-
*/
|
|
15
|
-
Then(
|
|
16
|
-
'the element {string} should have active status {boolean} ',
|
|
17
|
-
async function (this: CustomWorld, elementName: SelectorName, isActive: boolean) {
|
|
18
|
-
try {
|
|
19
|
-
const selector = await resolveLocator(this.page, elementName)
|
|
20
|
-
if (!selector) throw new Error(`Selector ${elementName} not found`)
|
|
21
|
-
const elementActiveStatus = await this.page.locator(selector).isEnabled({ timeout: 10000 })
|
|
22
|
-
if (isActive) {
|
|
23
|
-
void expect(elementActiveStatus, `Expected ${elementName} to be active`).to.be.true
|
|
24
|
-
} else {
|
|
25
|
-
void expect(elementActiveStatus, `Expected ${elementName} NOT to be active`).to.be.false
|
|
26
|
-
}
|
|
27
|
-
} catch (error) {
|
|
28
|
-
throw new Error(`Failed to validate the active status of the element ${elementName}: ${error}`)
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
)
|
|
2
|
+
/**
|
|
3
|
+
* @name active state assertion
|
|
4
|
+
* @description Template steps for handling the validation of the active state of an element
|
|
5
|
+
* @type VALIDATION
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// This file is generated automatically. Add template steps to this group to generate content.
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @name assert element active
|
|
12
|
+
* @description Template step for validating whether an element is active or not
|
|
13
|
+
* @icon VALIDATION
|
|
14
|
+
*/
|
|
15
|
+
Then(
|
|
16
|
+
'the element {string} should have active status {boolean} ',
|
|
17
|
+
async function (this: CustomWorld, elementName: SelectorName, isActive: boolean) {
|
|
18
|
+
try {
|
|
19
|
+
const selector = await resolveLocator(this.page, elementName)
|
|
20
|
+
if (!selector) throw new Error(`Selector ${elementName} not found`)
|
|
21
|
+
const elementActiveStatus = await this.page.locator(selector).isEnabled({ timeout: 10000 })
|
|
22
|
+
if (isActive) {
|
|
23
|
+
void expect(elementActiveStatus, `Expected ${elementName} to be active`).to.be.true
|
|
24
|
+
} else {
|
|
25
|
+
void expect(elementActiveStatus, `Expected ${elementName} NOT to be active`).to.be.false
|
|
26
|
+
}
|
|
27
|
+
} catch (error) {
|
|
28
|
+
throw new Error(`Failed to validate the active status of the element ${elementName}: ${error}`)
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
)
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { When, Then, CustomWorld, expect, SelectorName, resolveLocator, getEnvironment, generateRandomData, RandomDataType } from '../../../packages/cucumber-runtime/src/index.js'
|
|
2
|
-
/**
|
|
3
|
-
* @name navigation assertion
|
|
4
|
-
* @description Template steps that handles navigation validations
|
|
5
|
-
* @type VALIDATION
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// This file is generated automatically. Add template steps to this group to generate content.
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @name assert url route equals
|
|
12
|
-
* @description Template step for validating whether a url route equals the provided value or not
|
|
13
|
-
* @icon VALIDATION
|
|
14
|
-
*/
|
|
15
|
-
Then('the url route should be equal to {string}', async function (this: CustomWorld, route: string) {
|
|
16
|
-
try {
|
|
17
|
-
await this.page.waitForLoadState('networkidle')
|
|
18
|
-
const currentRoute = new URL(this.page.url()).pathname
|
|
19
|
-
expect(currentRoute, `Expected the current route to be "${route}"`).to.equal(route.toLowerCase())
|
|
20
|
-
} catch (error) {
|
|
21
|
-
throw new Error(`Failed to validate the equality of the current route to the route "${route}": ${error}`)
|
|
22
|
-
}
|
|
23
|
-
})
|
|
2
|
+
/**
|
|
3
|
+
* @name navigation assertion
|
|
4
|
+
* @description Template steps that handles navigation validations
|
|
5
|
+
* @type VALIDATION
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// This file is generated automatically. Add template steps to this group to generate content.
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @name assert url route equals
|
|
12
|
+
* @description Template step for validating whether a url route equals the provided value or not
|
|
13
|
+
* @icon VALIDATION
|
|
14
|
+
*/
|
|
15
|
+
Then('the url route should be equal to {string}', async function (this: CustomWorld, route: string) {
|
|
16
|
+
try {
|
|
17
|
+
await this.page.waitForLoadState('networkidle')
|
|
18
|
+
const currentRoute = new URL(this.page.url()).pathname
|
|
19
|
+
expect(currentRoute, `Expected the current route to be "${route}"`).to.equal(route.toLowerCase())
|
|
20
|
+
} catch (error) {
|
|
21
|
+
throw new Error(`Failed to validate the equality of the current route to the route "${route}": ${error}`)
|
|
22
|
+
}
|
|
23
|
+
})
|
|
@@ -1,108 +1,108 @@
|
|
|
1
1
|
import { When, Then, CustomWorld, expect, SelectorName, resolveLocator, getEnvironment, generateRandomData, RandomDataType } from '../../../packages/cucumber-runtime/src/index.js'
|
|
2
|
-
/**
|
|
3
|
-
* @name text assertion
|
|
4
|
-
* @description Template steps for asserting text inside elements
|
|
5
|
-
* @type VALIDATION
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// This file is generated automatically. Add template steps to this group to generate content.
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @name assert element contains text
|
|
12
|
-
* @description Template step for validating whether an element contains a certain text or not
|
|
13
|
-
* @icon VALIDATION
|
|
14
|
-
*/
|
|
15
|
-
Then(
|
|
16
|
-
'the element {string} should {boolean} contain the text {string}',
|
|
17
|
-
async function (
|
|
18
|
-
this: CustomWorld,
|
|
19
|
-
elementName: SelectorName,
|
|
20
|
-
shouldContain: boolean,
|
|
21
|
-
elementText: string
|
|
22
|
-
) {
|
|
23
|
-
try {
|
|
24
|
-
const selector = await resolveLocator(this.page, elementName);
|
|
25
|
-
if (!selector) throw new Error(`Selector ${elementName} not found`);
|
|
26
|
-
const elementTextContent = await this.page
|
|
27
|
-
.locator(selector)
|
|
28
|
-
.textContent();
|
|
29
|
-
|
|
30
|
-
if (!elementTextContent)
|
|
31
|
-
throw new Error(
|
|
32
|
-
`Element ${elementName} does not have any text content`
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
if (shouldContain) {
|
|
36
|
-
expect(
|
|
37
|
-
elementTextContent,
|
|
38
|
-
`Expected ${elementName} to contain "${elementText}"`
|
|
39
|
-
).to.contain(elementText);
|
|
40
|
-
} else {
|
|
41
|
-
expect(
|
|
42
|
-
elementTextContent,
|
|
43
|
-
`Expected ${elementName} NOT to contain "${elementText}"`
|
|
44
|
-
).to.not.contain(elementText);
|
|
45
|
-
}
|
|
46
|
-
} catch (error) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
`Failed to validate the containment of the text of the element ${elementName}: ${error}`
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @name assert element equals text
|
|
56
|
-
* @description Template step for validating whether an element text equals a provided text or not
|
|
57
|
-
* @icon VALIDATION
|
|
58
|
-
*/
|
|
59
|
-
Then(
|
|
60
|
-
'the element {string} should {boolean} equal the text {string}',
|
|
61
|
-
async function (
|
|
62
|
-
this: CustomWorld,
|
|
63
|
-
elementName: SelectorName,
|
|
64
|
-
shouldEqual: boolean,
|
|
65
|
-
elementText: string
|
|
66
|
-
) {
|
|
67
|
-
try {
|
|
68
|
-
const selector = await resolveLocator(this.page, elementName);
|
|
69
|
-
if (!selector) throw new Error(`Selector ${elementName} not found`);
|
|
70
|
-
const elementTextContent = await this.page
|
|
71
|
-
.locator(selector)
|
|
72
|
-
.textContent();
|
|
73
|
-
if (!elementTextContent)
|
|
74
|
-
throw new Error(
|
|
75
|
-
`Element ${elementName} does not have any text content`
|
|
76
|
-
);
|
|
77
|
-
if (shouldEqual) {
|
|
78
|
-
expect(
|
|
79
|
-
elementTextContent,
|
|
80
|
-
`Expected ${elementName} to equal "${elementText}"`
|
|
81
|
-
).to.equal(elementText);
|
|
82
|
-
} else {
|
|
83
|
-
expect(
|
|
84
|
-
elementTextContent,
|
|
85
|
-
`Expected ${elementName} NOT to equal "${elementText}"`
|
|
86
|
-
).to.not.equal(elementText);
|
|
87
|
-
}
|
|
88
|
-
} catch (error) {
|
|
89
|
-
throw new Error(
|
|
90
|
-
`Failed to validate the equality of the text of the element ${elementName}: ${error}`
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* @name assert element contains stored variable text
|
|
98
|
-
* @description Template step to validate whether an element text contains the text inside a stored variable
|
|
99
|
-
* @icon VALIDATION
|
|
100
|
-
*/
|
|
101
|
-
Then(
|
|
102
|
-
'the element {string} should contain the text inside the stored variable {string}',
|
|
103
|
-
async function (
|
|
104
|
-
this: CustomWorld,
|
|
105
|
-
_elementName: SelectorName,
|
|
106
|
-
_variableName: string
|
|
107
|
-
) {}
|
|
108
|
-
);
|
|
2
|
+
/**
|
|
3
|
+
* @name text assertion
|
|
4
|
+
* @description Template steps for asserting text inside elements
|
|
5
|
+
* @type VALIDATION
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// This file is generated automatically. Add template steps to this group to generate content.
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @name assert element contains text
|
|
12
|
+
* @description Template step for validating whether an element contains a certain text or not
|
|
13
|
+
* @icon VALIDATION
|
|
14
|
+
*/
|
|
15
|
+
Then(
|
|
16
|
+
'the element {string} should {boolean} contain the text {string}',
|
|
17
|
+
async function (
|
|
18
|
+
this: CustomWorld,
|
|
19
|
+
elementName: SelectorName,
|
|
20
|
+
shouldContain: boolean,
|
|
21
|
+
elementText: string
|
|
22
|
+
) {
|
|
23
|
+
try {
|
|
24
|
+
const selector = await resolveLocator(this.page, elementName);
|
|
25
|
+
if (!selector) throw new Error(`Selector ${elementName} not found`);
|
|
26
|
+
const elementTextContent = await this.page
|
|
27
|
+
.locator(selector)
|
|
28
|
+
.textContent();
|
|
29
|
+
|
|
30
|
+
if (!elementTextContent)
|
|
31
|
+
throw new Error(
|
|
32
|
+
`Element ${elementName} does not have any text content`
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
if (shouldContain) {
|
|
36
|
+
expect(
|
|
37
|
+
elementTextContent,
|
|
38
|
+
`Expected ${elementName} to contain "${elementText}"`
|
|
39
|
+
).to.contain(elementText);
|
|
40
|
+
} else {
|
|
41
|
+
expect(
|
|
42
|
+
elementTextContent,
|
|
43
|
+
`Expected ${elementName} NOT to contain "${elementText}"`
|
|
44
|
+
).to.not.contain(elementText);
|
|
45
|
+
}
|
|
46
|
+
} catch (error) {
|
|
47
|
+
throw new Error(
|
|
48
|
+
`Failed to validate the containment of the text of the element ${elementName}: ${error}`
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @name assert element equals text
|
|
56
|
+
* @description Template step for validating whether an element text equals a provided text or not
|
|
57
|
+
* @icon VALIDATION
|
|
58
|
+
*/
|
|
59
|
+
Then(
|
|
60
|
+
'the element {string} should {boolean} equal the text {string}',
|
|
61
|
+
async function (
|
|
62
|
+
this: CustomWorld,
|
|
63
|
+
elementName: SelectorName,
|
|
64
|
+
shouldEqual: boolean,
|
|
65
|
+
elementText: string
|
|
66
|
+
) {
|
|
67
|
+
try {
|
|
68
|
+
const selector = await resolveLocator(this.page, elementName);
|
|
69
|
+
if (!selector) throw new Error(`Selector ${elementName} not found`);
|
|
70
|
+
const elementTextContent = await this.page
|
|
71
|
+
.locator(selector)
|
|
72
|
+
.textContent();
|
|
73
|
+
if (!elementTextContent)
|
|
74
|
+
throw new Error(
|
|
75
|
+
`Element ${elementName} does not have any text content`
|
|
76
|
+
);
|
|
77
|
+
if (shouldEqual) {
|
|
78
|
+
expect(
|
|
79
|
+
elementTextContent,
|
|
80
|
+
`Expected ${elementName} to equal "${elementText}"`
|
|
81
|
+
).to.equal(elementText);
|
|
82
|
+
} else {
|
|
83
|
+
expect(
|
|
84
|
+
elementTextContent,
|
|
85
|
+
`Expected ${elementName} NOT to equal "${elementText}"`
|
|
86
|
+
).to.not.equal(elementText);
|
|
87
|
+
}
|
|
88
|
+
} catch (error) {
|
|
89
|
+
throw new Error(
|
|
90
|
+
`Failed to validate the equality of the text of the element ${elementName}: ${error}`
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @name assert element contains stored variable text
|
|
98
|
+
* @description Template step to validate whether an element text contains the text inside a stored variable
|
|
99
|
+
* @icon VALIDATION
|
|
100
|
+
*/
|
|
101
|
+
Then(
|
|
102
|
+
'the element {string} should contain the text inside the stored variable {string}',
|
|
103
|
+
async function (
|
|
104
|
+
this: CustomWorld,
|
|
105
|
+
_elementName: SelectorName,
|
|
106
|
+
_variableName: string
|
|
107
|
+
) {}
|
|
108
|
+
);
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { When, Then, CustomWorld, expect, SelectorName, resolveLocator, getEnvironment, generateRandomData, RandomDataType } from '../../../packages/cucumber-runtime/src/index.js'
|
|
2
|
-
/**
|
|
3
|
-
* @name visibility assertion
|
|
4
|
-
* @description Template steps that handles the assertion of element visibility states
|
|
5
|
-
* @type VALIDATION
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// This file is generated automatically. Add template steps to this group to generate content.
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @name assert element visible
|
|
12
|
-
* @description Template step for validating whether an element should be visible or not
|
|
13
|
-
* @icon VALIDATION
|
|
14
|
-
*/
|
|
15
|
-
Then(
|
|
16
|
-
'the visibility status of the {string} element should be {boolean}',
|
|
17
|
-
async function (this: CustomWorld, elementName: SelectorName, isVisible: boolean) {
|
|
18
|
-
try {
|
|
19
|
-
const selector = await resolveLocator(this.page, elementName)
|
|
20
|
-
if (!selector) throw new Error(`Selector ${elementName} not found`)
|
|
21
|
-
const elementVisibilityStatus = await this.page.locator(selector).isVisible({ timeout: 10000 })
|
|
22
|
-
expect(elementVisibilityStatus).to.equal(isVisible)
|
|
23
|
-
} catch (error) {
|
|
24
|
-
throw new Error(`Failed to validate the visibility of the element ${elementName}: ${error}`)
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
)
|
|
2
|
+
/**
|
|
3
|
+
* @name visibility assertion
|
|
4
|
+
* @description Template steps that handles the assertion of element visibility states
|
|
5
|
+
* @type VALIDATION
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// This file is generated automatically. Add template steps to this group to generate content.
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @name assert element visible
|
|
12
|
+
* @description Template step for validating whether an element should be visible or not
|
|
13
|
+
* @icon VALIDATION
|
|
14
|
+
*/
|
|
15
|
+
Then(
|
|
16
|
+
'the visibility status of the {string} element should be {boolean}',
|
|
17
|
+
async function (this: CustomWorld, elementName: SelectorName, isVisible: boolean) {
|
|
18
|
+
try {
|
|
19
|
+
const selector = await resolveLocator(this.page, elementName)
|
|
20
|
+
if (!selector) throw new Error(`Selector ${elementName} not found`)
|
|
21
|
+
const elementVisibilityStatus = await this.page.locator(selector).isVisible({ timeout: 10000 })
|
|
22
|
+
expect(elementVisibilityStatus).to.equal(isVisible)
|
|
23
|
+
} catch (error) {
|
|
24
|
+
throw new Error(`Failed to validate the visibility of the element ${elementName}: ${error}`)
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
)
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
-
"style": "new-york",
|
|
4
|
-
"rsc": true,
|
|
5
|
-
"tsx": true,
|
|
6
|
-
"tailwind": {
|
|
7
|
-
"config": "tailwind.config.ts",
|
|
8
|
-
"css": "src/app/globals.css",
|
|
9
|
-
"baseColor": "slate",
|
|
10
|
-
"cssVariables": true,
|
|
11
|
-
"prefix": ""
|
|
12
|
-
},
|
|
13
|
-
"iconLibrary": "lucide",
|
|
14
|
-
"aliases": {
|
|
15
|
-
"components": "@/components",
|
|
16
|
-
"utils": "@/lib/utils",
|
|
17
|
-
"ui": "@/components/ui",
|
|
18
|
-
"lib": "@/lib",
|
|
19
|
-
"hooks": "@/hooks"
|
|
20
|
-
},
|
|
21
|
-
"registries": {
|
|
22
|
-
"@kokonutui": "https://kokonutui.com/r/{name}.json"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
+
"style": "new-york",
|
|
4
|
+
"rsc": true,
|
|
5
|
+
"tsx": true,
|
|
6
|
+
"tailwind": {
|
|
7
|
+
"config": "tailwind.config.ts",
|
|
8
|
+
"css": "src/app/globals.css",
|
|
9
|
+
"baseColor": "slate",
|
|
10
|
+
"cssVariables": true,
|
|
11
|
+
"prefix": ""
|
|
12
|
+
},
|
|
13
|
+
"iconLibrary": "lucide",
|
|
14
|
+
"aliases": {
|
|
15
|
+
"components": "@/components",
|
|
16
|
+
"utils": "@/lib/utils",
|
|
17
|
+
"ui": "@/components/ui",
|
|
18
|
+
"lib": "@/lib",
|
|
19
|
+
"hooks": "@/hooks"
|
|
20
|
+
},
|
|
21
|
+
"registries": {
|
|
22
|
+
"@kokonutui": "https://kokonutui.com/r/{name}.json"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
// eslint-disable-next-line import/no-anonymous-default-export
|
|
2
|
-
export default {
|
|
3
|
-
paths: ['automation/features/**/*.feature'],
|
|
4
|
-
import: [
|
|
5
|
-
'packages/cucumber-runtime/src/parameter-types.ts',
|
|
6
|
-
'automation/steps/**/*.ts',
|
|
7
|
-
'packages/cucumber-runtime/src/hooks.ts',
|
|
8
|
-
'packages/cucumber-runtime/src/world.ts',
|
|
9
|
-
],
|
|
10
|
-
loader: ['ts-node/esm'],
|
|
11
|
-
format: [
|
|
12
|
-
'pretty',
|
|
13
|
-
process.env.REPORT_FORMAT ?? `json:${process.env.REPORT_PATH ?? 'automation/reports/cucumber.json'}`,
|
|
14
|
-
],
|
|
15
|
-
publishQuiet: true,
|
|
16
|
-
}
|
|
1
|
+
// eslint-disable-next-line import/no-anonymous-default-export
|
|
2
|
+
export default {
|
|
3
|
+
paths: ['automation/features/**/*.feature'],
|
|
4
|
+
import: [
|
|
5
|
+
'packages/cucumber-runtime/src/parameter-types.ts',
|
|
6
|
+
'automation/steps/**/*.ts',
|
|
7
|
+
'packages/cucumber-runtime/src/hooks.ts',
|
|
8
|
+
'packages/cucumber-runtime/src/world.ts',
|
|
9
|
+
],
|
|
10
|
+
loader: ['ts-node/esm'],
|
|
11
|
+
format: [
|
|
12
|
+
'pretty',
|
|
13
|
+
process.env.REPORT_FORMAT ?? `json:${process.env.REPORT_PATH ?? 'automation/reports/cucumber.json'}`,
|
|
14
|
+
],
|
|
15
|
+
publishQuiet: true,
|
|
16
|
+
}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import nextCoreWebVitals from 'eslint-config-next/core-web-vitals';
|
|
2
|
-
import nextTypescript from 'eslint-config-next/typescript';
|
|
3
|
-
|
|
4
|
-
const eslintConfig = [
|
|
5
|
-
...nextCoreWebVitals,
|
|
6
|
-
...nextTypescript,
|
|
7
|
-
{
|
|
8
|
-
ignores: [
|
|
9
|
-
'automation/steps/**/*.step.ts',
|
|
10
|
-
'automation/steps/**/*',
|
|
11
|
-
'packages/cucumber-runtime/dist/**/*',
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
import nextCoreWebVitals from 'eslint-config-next/core-web-vitals';
|
|
2
|
+
import nextTypescript from 'eslint-config-next/typescript';
|
|
3
|
+
|
|
4
|
+
const eslintConfig = [
|
|
5
|
+
...nextCoreWebVitals,
|
|
6
|
+
...nextTypescript,
|
|
7
|
+
{
|
|
8
|
+
ignores: [
|
|
9
|
+
'automation/steps/**/*.step.ts',
|
|
10
|
+
'automation/steps/**/*',
|
|
11
|
+
'packages/cucumber-runtime/dist/**/*',
|
|
12
|
+
'packages/locator-picker-companion/dist/**/*',
|
|
13
|
+
'packages/appraisejs/registry/**/*',
|
|
14
|
+
'templates/**/*',
|
|
15
|
+
'packages/create-appraisejs/templates/**/*',
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
export default eslintConfig;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/// <reference types="next" />
|
|
2
|
-
/// <reference types="next/image-types/global" />
|
|
3
|
-
import "./.next/types/routes.d.ts";
|
|
4
|
-
|
|
5
|
-
// NOTE: This file should not be edited
|
|
6
|
-
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
|
|
1
|
+
/// <reference types="next" />
|
|
2
|
+
/// <reference types="next/image-types/global" />
|
|
3
|
+
import "./.next/dev/types/routes.d.ts";
|
|
4
|
+
|
|
5
|
+
// NOTE: This file should not be edited
|
|
6
|
+
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
import type { NextConfig } from 'next'
|
|
2
|
-
|
|
3
|
-
const disableDevtools = process.env.DISABLE_DEVTOOLS === '1' || process.env.DISABLE_DEVTOOLS === 'true'
|
|
4
|
-
|
|
5
|
-
const nextConfig: NextConfig = {
|
|
6
|
-
...(disableDevtools && {
|
|
7
|
-
devIndicators: false,
|
|
8
|
-
}),
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import type { NextConfig } from 'next'
|
|
2
|
+
|
|
3
|
+
const disableDevtools = process.env.DISABLE_DEVTOOLS === '1' || process.env.DISABLE_DEVTOOLS === 'true'
|
|
4
|
+
|
|
5
|
+
const nextConfig: NextConfig = {
|
|
6
|
+
...(disableDevtools && {
|
|
7
|
+
devIndicators: false,
|
|
8
|
+
}),
|
|
9
|
+
// Suppress Turbopack NFT false positive when tracing cwd-based path helpers (import trace lists next.config).
|
|
10
|
+
turbopack: {
|
|
11
|
+
ignoreIssue: [
|
|
12
|
+
{
|
|
13
|
+
path: /next\.config\.ts$/,
|
|
14
|
+
title: /unexpected file in NFT list/i,
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default nextConfig
|