testdriverai 7.2.64 → 7.2.65
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/agent/index.js +4 -3
- package/agent/interface.js +11 -251
- package/agent/lib/debugger-server.js +2 -1
- package/agent/lib/logger.js +56 -0
- package/agent/lib/sandbox.js +6 -7
- package/ai/agents/test-writer.md +457 -0
- package/{docs/v7/ai.mdx → ai/skills/testdriver:ai/SKILL.md} +3 -5
- package/{docs/v7/assert.mdx → ai/skills/testdriver:assert/SKILL.md} +3 -4
- package/{docs/v7/aws-setup.mdx → ai/skills/testdriver:aws-setup/SKILL.md} +3 -4
- package/{docs/v7/caching.mdx → ai/skills/testdriver:caching/SKILL.md} +3 -7
- package/{docs/v7/captcha.mdx → ai/skills/testdriver:captcha/SKILL.md} +4 -5
- package/{docs/v7/ci-cd.mdx → ai/skills/testdriver:ci-cd/SKILL.md} +3 -4
- package/{docs/v7/click.mdx → ai/skills/testdriver:click/SKILL.md} +3 -4
- package/{docs/v7/client.mdx → ai/skills/testdriver:client/SKILL.md} +11 -5
- package/{docs/v7/cloud.mdx → ai/skills/testdriver:cloud/SKILL.md} +3 -4
- package/{docs/v7/customizing-devices.mdx → ai/skills/testdriver:customizing-devices/SKILL.md} +36 -26
- package/{docs/v7/dashcam.mdx → ai/skills/testdriver:dashcam/SKILL.md} +3 -4
- package/{docs/v7/device-config.mdx → ai/skills/testdriver:device-config/SKILL.md} +3 -3
- package/{docs/v7/double-click.mdx → ai/skills/testdriver:double-click/SKILL.md} +3 -3
- package/{docs/v7/elements.mdx → ai/skills/testdriver:elements/SKILL.md} +3 -4
- package/{docs/v7/enterprise.mdx → ai/skills/testdriver:enterprise/SKILL.md} +3 -5
- package/ai/skills/testdriver:examples/SKILL.md +7 -0
- package/{docs/v7/exec.mdx → ai/skills/testdriver:exec/SKILL.md} +3 -4
- package/{docs/v7/find.mdx → ai/skills/testdriver:find/SKILL.md} +81 -4
- package/{docs/v7/focus-application.mdx → ai/skills/testdriver:focus-application/SKILL.md} +3 -4
- package/{docs/v7/generating-tests.mdx → ai/skills/testdriver:generating-tests/SKILL.md} +3 -3
- package/{docs/v7/hover.mdx → ai/skills/testdriver:hover/SKILL.md} +3 -4
- package/{docs/v7/locating-elements.mdx → ai/skills/testdriver:locating-elements/SKILL.md} +3 -3
- package/{docs/v7/making-assertions.mdx → ai/skills/testdriver:making-assertions/SKILL.md} +3 -3
- package/ai/skills/testdriver:mcp-workflow/SKILL.md +410 -0
- package/{docs/v7/mouse-down.mdx → ai/skills/testdriver:mouse-down/SKILL.md} +3 -3
- package/{docs/v7/mouse-up.mdx → ai/skills/testdriver:mouse-up/SKILL.md} +3 -3
- package/{docs/v7/performing-actions.mdx → ai/skills/testdriver:performing-actions/SKILL.md} +3 -3
- package/{docs/v7/press-keys.mdx → ai/skills/testdriver:press-keys/SKILL.md} +3 -4
- package/{docs/v7/quickstart.mdx → ai/skills/testdriver:quickstart/SKILL.md} +3 -4
- package/{docs/v7/reusable-code.mdx → ai/skills/testdriver:reusable-code/SKILL.md} +3 -3
- package/{docs/v7/right-click.mdx → ai/skills/testdriver:right-click/SKILL.md} +3 -3
- package/{docs/v7/running-tests.mdx → ai/skills/testdriver:running-tests/SKILL.md} +3 -3
- package/{docs/v7/screenshot.mdx → ai/skills/testdriver:screenshot/SKILL.md} +3 -4
- package/{docs/v7/scroll.mdx → ai/skills/testdriver:scroll/SKILL.md} +3 -4
- package/{docs/v7/secrets.mdx → ai/skills/testdriver:secrets/SKILL.md} +3 -3
- package/{docs/v7/self-hosted.mdx → ai/skills/testdriver:self-hosted/SKILL.md} +3 -4
- package/ai/skills/testdriver:testdriver/SKILL.md +31 -0
- package/{docs/v7/type.mdx → ai/skills/testdriver:type/SKILL.md} +3 -4
- package/{docs/v7/variables.mdx → ai/skills/testdriver:variables/SKILL.md} +3 -3
- package/{docs/v7/waiting-for-elements.mdx → ai/skills/testdriver:waiting-for-elements/SKILL.md} +3 -3
- package/{docs/v7/what-is-testdriver.mdx → ai/skills/testdriver:what-is-testdriver/SKILL.md} +3 -3
- package/interfaces/cli/commands/init.js +278 -1
- package/interfaces/cli/commands/setup.js +382 -0
- package/interfaces/vitest-plugin.mjs +190 -122
- package/lib/sentry.js +4 -3
- package/lib/vitest/hooks.mjs +70 -16
- package/package.json +29 -9
- package/sdk.d.ts +29 -2
- package/sdk.js +1 -0
- package/.env.example +0 -4
- package/.github/workflows/acceptance-linux-scheduled.yaml +0 -45
- package/.github/workflows/acceptance-windows-scheduled.yaml +0 -54
- package/.github/workflows/acceptance.yaml +0 -87
- package/.github/workflows/publish.yaml +0 -68
- package/.github/workflows/test-init.yml +0 -145
- package/.github/workflows/testdriver.yml +0 -170
- package/.github/workflows/windows-self-hosted.yaml +0 -82
- package/.prettierignore +0 -4
- package/.prettierrc +0 -1
- package/CHANGELOG.md +0 -34
- package/agents.md +0 -455
- package/debugger/bg.png +0 -0
- package/debugger/icon.png +0 -0
- package/debugger/index.html +0 -797
- package/debugger/td.png +0 -0
- package/debugger/tray-buffered.png +0 -0
- package/debugger/tray.png +0 -0
- package/docs/GITHUB_COMMENTS.md +0 -330
- package/docs/GITHUB_COMMENTS_ANNOUNCEMENT.md +0 -167
- package/docs/QUICK-START-GITHUB-COMMENTS.md +0 -84
- package/docs/TEST-GITHUB-COMMENTS.md +0 -129
- package/docs/_scripts/link-replacer.js +0 -164
- package/docs/_scripts/upload-docs-to-openai.js +0 -284
- package/docs/docs.json +0 -393
- package/docs/github-integration-setup.md +0 -266
- package/docs/guide/best-practices-polling.mdx +0 -154
- package/docs/images/content/account/newprojectsettings.png +0 -0
- package/docs/images/content/account/projectpage.png +0 -0
- package/docs/images/content/account/projectreplays.png +0 -0
- package/docs/images/content/account/team-manage.png +0 -0
- package/docs/images/content/account/teampage.png +0 -0
- package/docs/images/content/extension/cursor.svg +0 -1
- package/docs/images/content/extension/vscode.svg +0 -57
- package/docs/images/content/extension/windsurf.svg +0 -3
- package/docs/images/content/self-hosted/launchtemplateid.png +0 -0
- package/docs/images/content/side-by-side.png +0 -0
- package/docs/images/content/vscode/ide-full.png +0 -0
- package/docs/images/content/vscode/running.png +0 -0
- package/docs/images/content/vscode/vscode-2-assert.png +0 -0
- package/docs/images/content/vscode/vscode-agent-preview.png +0 -0
- package/docs/images/content/vscode/vscode-copilot-ask.png +0 -0
- package/docs/images/content/vscode/vscode-file-creation.png +0 -0
- package/docs/images/content/vscode/vscode-install.png +0 -0
- package/docs/images/content/vscode/vscode-overview.png +0 -0
- package/docs/images/content/vscode/vscode-setup-walkthrough.png +0 -0
- package/docs/images/content/vscode/vscode-stopchat.png +0 -0
- package/docs/images/content/vscode/vscode-stoptest.png +0 -0
- package/docs/images/content/vscode/vscode-tdservice.png +0 -0
- package/docs/images/content/vscode/vscode-test-output.png +0 -0
- package/docs/images/content/vscode/vscode-testhistory.png +0 -0
- package/docs/images/content/vscode/vscode-testpane-runtests.png +0 -0
- package/docs/images/content/vscode/vscode-testpane.png +0 -0
- package/docs/images/template/dark.png +0 -0
- package/docs/images/template/icon.png +0 -0
- package/docs/images/template/light.png +0 -0
- package/docs/snippets/calendar-link.mdx +0 -4
- package/docs/snippets/gitignore-warning.mdx +0 -7
- package/docs/snippets/lifecycle-warning.mdx +0 -6
- package/docs/snippets/test-prereqs.mdx +0 -12
- package/docs/snippets/tests/assert-replay.mdx +0 -7
- package/docs/snippets/tests/assert-yaml.mdx +0 -8
- package/docs/snippets/tests/exec-js-replay.mdx +0 -7
- package/docs/snippets/tests/exec-js-yaml.mdx +0 -32
- package/docs/snippets/tests/exec-shell-replay.mdx +0 -7
- package/docs/snippets/tests/exec-shell-yaml.mdx +0 -15
- package/docs/snippets/tests/hover-image-replay.mdx +0 -7
- package/docs/snippets/tests/hover-image-yaml.mdx +0 -17
- package/docs/snippets/tests/hover-text-replay.mdx +0 -7
- package/docs/snippets/tests/hover-text-with-description-replay.mdx +0 -7
- package/docs/snippets/tests/hover-text-with-description-yaml.mdx +0 -24
- package/docs/snippets/tests/hover-text-yaml.mdx +0 -14
- package/docs/snippets/tests/match-image-replay.mdx +0 -7
- package/docs/snippets/tests/match-image-yaml.mdx +0 -17
- package/docs/snippets/tests/press-keys-replay.mdx +0 -7
- package/docs/snippets/tests/press-keys-yaml.mdx +0 -36
- package/docs/snippets/tests/remember-replay.mdx +0 -7
- package/docs/snippets/tests/remember-yaml.mdx +0 -28
- package/docs/snippets/tests/scroll-replay.mdx +0 -7
- package/docs/snippets/tests/scroll-until-image-replay.mdx +0 -7
- package/docs/snippets/tests/scroll-until-image-yaml.mdx +0 -14
- package/docs/snippets/tests/scroll-until-text-replay.mdx +0 -7
- package/docs/snippets/tests/scroll-until-text-yaml.mdx +0 -17
- package/docs/snippets/tests/scroll-yaml.mdx +0 -30
- package/docs/snippets/tests/type-repeated-replay.mdx +0 -7
- package/docs/snippets/tests/type-repeated-yaml.mdx +0 -22
- package/docs/snippets/tests/type-replay.mdx +0 -7
- package/docs/snippets/tests/type-yaml.mdx +0 -28
- package/docs/snippets/tests/wait-for-image-replay.mdx +0 -7
- package/docs/snippets/tests/wait-for-image-yaml.mdx +0 -18
- package/docs/snippets/tests/wait-for-text-replay.mdx +0 -7
- package/docs/snippets/tests/wait-for-text-yaml.mdx +0 -18
- package/docs/snippets/tests/wait-replay.mdx +0 -7
- package/docs/snippets/tests/wait-yaml.mdx +0 -13
- package/docs/styles.css +0 -65
- package/docs/v6/account/dashboard.mdx +0 -16
- package/docs/v6/account/enterprise.mdx +0 -110
- package/docs/v6/account/pricing.mdx +0 -33
- package/docs/v6/account/projects.mdx +0 -33
- package/docs/v6/account/team.mdx +0 -35
- package/docs/v6/action/ami.mdx +0 -109
- package/docs/v6/action/performance.mdx +0 -105
- package/docs/v6/action/secrets.mdx +0 -93
- package/docs/v6/apps/chrome-extensions.mdx +0 -48
- package/docs/v6/apps/desktop-apps.mdx +0 -93
- package/docs/v6/apps/mobile-apps.mdx +0 -26
- package/docs/v6/apps/static-websites.mdx +0 -54
- package/docs/v6/apps/tauri-apps.mdx +0 -361
- package/docs/v6/bugs/jira.mdx +0 -232
- package/docs/v6/cli/overview.mdx +0 -66
- package/docs/v6/commands/assert.mdx +0 -45
- package/docs/v6/commands/exec.mdx +0 -282
- package/docs/v6/commands/focus-application.mdx +0 -44
- package/docs/v6/commands/hover-image.mdx +0 -69
- package/docs/v6/commands/hover-text.mdx +0 -47
- package/docs/v6/commands/if.mdx +0 -53
- package/docs/v6/commands/match-image.mdx +0 -67
- package/docs/v6/commands/press-keys.mdx +0 -87
- package/docs/v6/commands/remember.mdx +0 -49
- package/docs/v6/commands/run.mdx +0 -44
- package/docs/v6/commands/scroll-until-image.mdx +0 -66
- package/docs/v6/commands/scroll-until-text.mdx +0 -60
- package/docs/v6/commands/scroll.mdx +0 -69
- package/docs/v6/commands/type.mdx +0 -45
- package/docs/v6/commands/wait-for-image.mdx +0 -54
- package/docs/v6/commands/wait-for-text.mdx +0 -48
- package/docs/v6/commands/wait.mdx +0 -45
- package/docs/v6/exporting/junit.mdx +0 -218
- package/docs/v6/exporting/playwright.mdx +0 -197
- package/docs/v6/features/auto-healing.mdx +0 -144
- package/docs/v6/features/generation.mdx +0 -116
- package/docs/v6/features/parallel-testing.mdx +0 -151
- package/docs/v6/features/reusable-snippets.mdx +0 -131
- package/docs/v6/features/selectorless.mdx +0 -80
- package/docs/v6/features/visual-assertions.mdx +0 -139
- package/docs/v6/getting-started/ci.mdx +0 -146
- package/docs/v6/getting-started/cli.mdx +0 -91
- package/docs/v6/getting-started/editing.mdx +0 -100
- package/docs/v6/getting-started/playwright.mdx +0 -342
- package/docs/v6/getting-started/running.mdx +0 -48
- package/docs/v6/getting-started/self-hosting.mdx +0 -408
- package/docs/v6/getting-started/vscode.mdx +0 -89
- package/docs/v6/guide/assertions.mdx +0 -189
- package/docs/v6/guide/authentication.mdx +0 -136
- package/docs/v6/guide/code.mdx +0 -65
- package/docs/v6/guide/dashcam.mdx +0 -118
- package/docs/v6/guide/environment-variables.mdx +0 -26
- package/docs/v6/guide/lifecycle.mdx +0 -242
- package/docs/v6/guide/locating.mdx +0 -141
- package/docs/v6/guide/protips.mdx +0 -43
- package/docs/v6/guide/variables.mdx +0 -143
- package/docs/v6/guide/waiting.mdx +0 -130
- package/docs/v6/importing/csv.mdx +0 -196
- package/docs/v6/importing/gherkin.mdx +0 -143
- package/docs/v6/importing/jira.mdx +0 -164
- package/docs/v6/importing/testrail.mdx +0 -162
- package/docs/v6/integrations/electron.mdx +0 -146
- package/docs/v6/integrations/netlify.mdx +0 -100
- package/docs/v6/integrations/vercel.mdx +0 -125
- package/docs/v6/interactive/explore.mdx +0 -99
- package/docs/v6/interactive/run.mdx +0 -52
- package/docs/v6/interactive/save.mdx +0 -63
- package/docs/v6/overview/comparison.mdx +0 -101
- package/docs/v6/overview/faq.mdx +0 -162
- package/docs/v6/overview/performance.mdx +0 -52
- package/docs/v6/overview/quickstart.mdx +0 -137
- package/docs/v6/overview/what-is-testdriver.mdx +0 -85
- package/docs/v6/scenarios/ai-chatbot.mdx +0 -28
- package/docs/v6/scenarios/cookie-banner.mdx +0 -32
- package/docs/v6/scenarios/file-upload.mdx +0 -33
- package/docs/v6/scenarios/form-filling.mdx +0 -32
- package/docs/v6/scenarios/log-in.mdx +0 -75
- package/docs/v6/scenarios/pdf-generation.mdx +0 -25
- package/docs/v6/scenarios/spell-check.mdx +0 -22
- package/docs/v6/security/action.mdx +0 -84
- package/docs/v6/security/agent.mdx +0 -73
- package/docs/v6/security/platform.mdx +0 -77
- package/docs/v6/tutorials/advanced-test.mdx +0 -81
- package/docs/v6/tutorials/basic-test.mdx +0 -45
- package/docs/v7/_drafts/agents.mdx +0 -852
- package/docs/v7/_drafts/architecture.mdx +0 -399
- package/docs/v7/_drafts/auto-cache-key.mdx +0 -167
- package/docs/v7/_drafts/awesome-logs-quick-ref.mdx +0 -100
- package/docs/v7/_drafts/best-practices.mdx +0 -486
- package/docs/v7/_drafts/caching-ai.mdx +0 -215
- package/docs/v7/_drafts/caching-selectors.mdx +0 -424
- package/docs/v7/_drafts/caching.mdx +0 -366
- package/docs/v7/_drafts/cli-to-sdk-migration.mdx +0 -425
- package/docs/v7/_drafts/commands/assert.mdx +0 -45
- package/docs/v7/_drafts/commands/exec.mdx +0 -282
- package/docs/v7/_drafts/commands/focus-application.mdx +0 -44
- package/docs/v7/_drafts/commands/hover-image.mdx +0 -69
- package/docs/v7/_drafts/commands/hover-text.mdx +0 -47
- package/docs/v7/_drafts/commands/if.mdx +0 -53
- package/docs/v7/_drafts/commands/match-image.mdx +0 -67
- package/docs/v7/_drafts/commands/press-keys.mdx +0 -87
- package/docs/v7/_drafts/commands/remember.mdx +0 -49
- package/docs/v7/_drafts/commands/run.mdx +0 -44
- package/docs/v7/_drafts/commands/scroll-until-image.mdx +0 -66
- package/docs/v7/_drafts/commands/scroll-until-text.mdx +0 -60
- package/docs/v7/_drafts/commands/scroll.mdx +0 -69
- package/docs/v7/_drafts/commands/type.mdx +0 -45
- package/docs/v7/_drafts/commands/wait-for-image.mdx +0 -54
- package/docs/v7/_drafts/commands/wait-for-text.mdx +0 -48
- package/docs/v7/_drafts/commands/wait.mdx +0 -45
- package/docs/v7/_drafts/configuration.mdx +0 -378
- package/docs/v7/_drafts/contributing.mdx +0 -174
- package/docs/v7/_drafts/core.mdx +0 -458
- package/docs/v7/_drafts/dashcam-title-feature.mdx +0 -89
- package/docs/v7/_drafts/debugging.mdx +0 -349
- package/docs/v7/_drafts/error-handling.mdx +0 -501
- package/docs/v7/_drafts/faq.mdx +0 -393
- package/docs/v7/_drafts/hooks.mdx +0 -360
- package/docs/v7/_drafts/init-command.mdx +0 -95
- package/docs/v7/_drafts/installation.mdx +0 -420
- package/docs/v7/_drafts/migration.mdx +0 -562
- package/docs/v7/_drafts/observable.mdx +0 -604
- package/docs/v7/_drafts/playwright.mdx +0 -342
- package/docs/v7/_drafts/plugin-migration.mdx +0 -220
- package/docs/v7/_drafts/powerful.mdx +0 -419
- package/docs/v7/_drafts/presets.mdx +0 -210
- package/docs/v7/_drafts/progressive-disclosure.mdx +0 -230
- package/docs/v7/_drafts/prompt-cache.mdx +0 -200
- package/docs/v7/_drafts/provision.mdx +0 -390
- package/docs/v7/_drafts/quick-start-test-recording.mdx +0 -214
- package/docs/v7/_drafts/readme.mdx +0 -135
- package/docs/v7/_drafts/reports.mdx +0 -414
- package/docs/v7/_drafts/scalable.mdx +0 -754
- package/docs/v7/_drafts/screenshot.mdx +0 -155
- package/docs/v7/_drafts/sdk-awesome-logs.mdx +0 -468
- package/docs/v7/_drafts/sdk-browser-rendering.mdx +0 -167
- package/docs/v7/_drafts/sdk-migration.mdx +0 -474
- package/docs/v7/_drafts/sdk-v7-complete.mdx +0 -345
- package/docs/v7/_drafts/self-hosting.mdx +0 -369
- package/docs/v7/_drafts/test-recording.mdx +0 -382
- package/docs/v7/_drafts/troubleshooting.mdx +0 -526
- package/docs/v7/_drafts/vitest-plugin.mdx +0 -477
- package/docs/v7/_drafts/vitest.mdx +0 -535
- package/docs/v7/_drafts/writing-tests.mdx +0 -25
- package/docs/v7/examples.mdx +0 -5
- package/eslint.config.js +0 -67
- package/examples/ai.test.mjs +0 -30
- package/examples/assert.test.mjs +0 -46
- package/examples/captcha-api.test.mjs +0 -50
- package/examples/chrome-extension.test.mjs +0 -94
- package/examples/drag-and-drop.test.mjs +0 -58
- package/examples/element-not-found.test.mjs +0 -26
- package/examples/exec-output.test.mjs +0 -59
- package/examples/exec-pwsh.test.mjs +0 -57
- package/examples/focus-window.test.mjs +0 -36
- package/examples/formatted-logging.test.mjs +0 -26
- package/examples/hover-image.test.mjs +0 -52
- package/examples/hover-text-with-description.test.mjs +0 -56
- package/examples/hover-text.test.mjs +0 -27
- package/examples/installer.test.mjs +0 -49
- package/examples/launch-vscode-linux.test.mjs +0 -54
- package/examples/match-image.test.mjs +0 -54
- package/examples/no-provision.test.mjs +0 -23
- package/examples/press-keys.test.mjs +0 -50
- package/examples/prompt.test.mjs +0 -33
- package/examples/scroll-keyboard.test.mjs +0 -37
- package/examples/scroll-until-image.test.mjs +0 -39
- package/examples/scroll-until-text.test.mjs +0 -67
- package/examples/scroll.test.mjs +0 -41
- package/examples/type.test.mjs +0 -45
- package/examples/windows-installer.test.mjs +0 -53
- package/interfaces/cli/commands/edit.js +0 -3
- package/interfaces/cli/commands/generate.js +0 -3
- package/interfaces/cli/commands/run.js +0 -3
- package/interfaces/cli/utils/factory.js +0 -71
- package/jsconfig.json +0 -26
- package/manual/test-init-command.js +0 -223
- package/sdk-log-formatter.js +0 -930
- package/setup/aws/cloudformation.yaml +0 -470
- package/setup/aws/spawn-runner.sh +0 -190
- package/test/api-resilience.test.mjs +0 -0
- package/test/captcha-solver.test.mjs +0 -70
- package/test/chrome-remote-debugging.test.mjs +0 -66
- package/test/manual/debug-locate-response.js +0 -82
- package/test/manual/reconnect-provision.test.mjs +0 -49
- package/test/manual/test-console-logs.test.mjs +0 -42
- package/test/manual/test-find-api.js +0 -73
- package/test/manual/test-init.sh +0 -54
- package/test/manual/test-prompt-cache.js +0 -96
- package/test/manual/test-provision-auth.mjs +0 -22
- package/test/manual/test-sandbox-render.js +0 -28
- package/test/manual/test-sdk-methods.js +0 -15
- package/test/manual/test-sdk-refactor.js +0 -53
- package/test/manual/test-stack-trace.mjs +0 -57
- package/test/manual/verify-element-api.js +0 -89
- package/test/manual/verify-types.js +0 -0
- package/test/manual-unawaited-promise.test.mjs +0 -31
- package/testdriver-plugin/skills/actions/SKILL.md +0 -93
- package/testdriver-plugin/skills/assertions/SKILL.md +0 -77
- package/testdriver-plugin/skills/caching/SKILL.md +0 -66
- package/testdriver-plugin/skills/creating-tests/SKILL.md +0 -104
- package/testdriver-plugin/skills/finding-elements/SKILL.md +0 -77
- package/testdriver-plugin/skills/github-actions/SKILL.md +0 -100
- package/testdriver-plugin/skills/running-tests/SKILL.md +0 -77
- package/testdriver-plugin/skills/secrets/SKILL.md +0 -87
- package/testdriver-plugin/skills/self-hosting/SKILL.md +0 -89
- package/testdriver-plugin/skills/setup/SKILL.md +0 -76
- package/testdriver-plugin/skills/variables/SKILL.md +0 -88
- package/testdriver-plugin/skills/waiting/SKILL.md +0 -72
- package/vitest.config.mjs +0 -29
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: running-tests
|
|
3
|
-
description: Run TestDriver tests. Use when executing tests with vitest, debugging test failures, or understanding test output.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Running Tests
|
|
7
|
-
|
|
8
|
-
Read: `node_modules/testdriverai/docs/v7/running-tests.mdx`
|
|
9
|
-
|
|
10
|
-
## Basic Commands
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
# Run all tests
|
|
14
|
-
npx vitest run
|
|
15
|
-
|
|
16
|
-
# Run specific test file
|
|
17
|
-
npx vitest run tests/login.test.mjs
|
|
18
|
-
|
|
19
|
-
# Run tests matching pattern
|
|
20
|
-
npx vitest run tests/*.test.mjs
|
|
21
|
-
|
|
22
|
-
# Watch mode (re-runs on file changes)
|
|
23
|
-
npx vitest
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Environment Variables
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
# Required
|
|
30
|
-
TD_API_KEY=your_api_key
|
|
31
|
-
|
|
32
|
-
# Optional: Run on Windows instead of Linux
|
|
33
|
-
TD_OS=windows
|
|
34
|
-
|
|
35
|
-
# Optional: AWS config for self-hosted Windows
|
|
36
|
-
AWS_REGION=us-east-2
|
|
37
|
-
AMI_ID=ami-xxxxx
|
|
38
|
-
AWS_LAUNCH_TEMPLATE_ID=lt-xxxxx
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Running with Options
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
# Run specific test with Windows sandbox
|
|
45
|
-
TD_OS=windows npx vitest run tests/example.test.mjs
|
|
46
|
-
|
|
47
|
-
# Run with increased verbosity
|
|
48
|
-
npx vitest run --reporter=verbose tests/example.test.mjs
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Test Output
|
|
52
|
-
|
|
53
|
-
TestDriver generates:
|
|
54
|
-
- **Console output**: Real-time test progress
|
|
55
|
-
- **JUnit XML**: `test-report.junit.xml` for CI integration
|
|
56
|
-
- **TestDriver dashboard**: View recordings at [console.testdriver.ai](https://console.testdriver.ai)
|
|
57
|
-
|
|
58
|
-
## Debugging Failures
|
|
59
|
-
|
|
60
|
-
1. **Check the recording** - View visual replay on TestDriver dashboard
|
|
61
|
-
2. **Log element info**:
|
|
62
|
-
```javascript
|
|
63
|
-
const el = await testdriver.find("button");
|
|
64
|
-
console.log("Found:", el.found(), el.confidence, el.text);
|
|
65
|
-
```
|
|
66
|
-
3. **Use the two-file workflow** - Iterate quickly with `reconnect: true`
|
|
67
|
-
|
|
68
|
-
## Two-File Workflow Reminder
|
|
69
|
-
|
|
70
|
-
For development iteration:
|
|
71
|
-
```bash
|
|
72
|
-
# Step 1: Run setup
|
|
73
|
-
npx vitest run tests/setup.test.mjs
|
|
74
|
-
|
|
75
|
-
# Step 2: Within 2 minutes, run experiment
|
|
76
|
-
npx vitest run tests/experiment.test.mjs
|
|
77
|
-
```
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: secrets
|
|
3
|
-
description: Manage secrets in TestDriver tests. Use when handling passwords, API keys, or sensitive data securely in tests and CI/CD.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Managing Secrets
|
|
7
|
-
|
|
8
|
-
Read: `node_modules/testdriverai/docs/v7/secrets.mdx`
|
|
9
|
-
|
|
10
|
-
## Local Development
|
|
11
|
-
|
|
12
|
-
Use `.env` file (never commit to git):
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
# .env
|
|
16
|
-
TD_API_KEY=td_xxxxxxxxxxxxx
|
|
17
|
-
TEST_PASSWORD=secretpassword123
|
|
18
|
-
STRIPE_TEST_KEY=sk_test_xxxxx
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Add to `.gitignore`:
|
|
22
|
-
```
|
|
23
|
-
.env
|
|
24
|
-
.env.local
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Accessing Secrets
|
|
28
|
-
|
|
29
|
-
```javascript
|
|
30
|
-
const password = process.env.TEST_PASSWORD;
|
|
31
|
-
|
|
32
|
-
await testdriver.find("Password input").click();
|
|
33
|
-
await testdriver.type(password);
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## GitHub Actions Secrets
|
|
37
|
-
|
|
38
|
-
Add secrets in repository settings (Settings → Secrets → Actions):
|
|
39
|
-
|
|
40
|
-
```yaml
|
|
41
|
-
# .github/workflows/test.yml
|
|
42
|
-
- name: Run tests
|
|
43
|
-
env:
|
|
44
|
-
TD_API_KEY: ${{ secrets.TD_API_KEY }}
|
|
45
|
-
TEST_PASSWORD: ${{ secrets.TEST_PASSWORD }}
|
|
46
|
-
run: npx vitest run
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## AWS Credentials (for Windows testing)
|
|
50
|
-
|
|
51
|
-
Required secrets for self-hosted Windows sandboxes:
|
|
52
|
-
|
|
53
|
-
```yaml
|
|
54
|
-
env:
|
|
55
|
-
TD_API_KEY: ${{ secrets.TD_API_KEY }}
|
|
56
|
-
TD_OS: windows
|
|
57
|
-
AWS_REGION: ${{ secrets.AWS_REGION }}
|
|
58
|
-
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
59
|
-
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
60
|
-
AMI_ID: ${{ secrets.AMI_ID }}
|
|
61
|
-
AWS_LAUNCH_TEMPLATE_ID: ${{ secrets.AWS_LAUNCH_TEMPLATE_ID }}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Best Practices
|
|
65
|
-
|
|
66
|
-
1. **Never hardcode secrets** in test files
|
|
67
|
-
2. **Use `.env.example`** to document required variables:
|
|
68
|
-
```bash
|
|
69
|
-
# .env.example (commit this)
|
|
70
|
-
TD_API_KEY=
|
|
71
|
-
TEST_PASSWORD=
|
|
72
|
-
```
|
|
73
|
-
3. **Rotate secrets** if accidentally exposed
|
|
74
|
-
4. **Use different credentials** for test vs production
|
|
75
|
-
5. **Limit secret scope** - only expose what's needed
|
|
76
|
-
|
|
77
|
-
## Masking in Logs
|
|
78
|
-
|
|
79
|
-
Secrets in environment variables are automatically masked in CI logs. Avoid logging them:
|
|
80
|
-
|
|
81
|
-
```javascript
|
|
82
|
-
// ❌ Don't do this
|
|
83
|
-
console.log("Password:", process.env.TEST_PASSWORD);
|
|
84
|
-
|
|
85
|
-
// ✅ Do this
|
|
86
|
-
console.log("Password: [REDACTED]");
|
|
87
|
-
```
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: self-hosting
|
|
3
|
-
description: Self-host TestDriver sandboxes. Use when running Windows tests on AWS, configuring custom AMIs, or setting up your own infrastructure.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Self-Hosting
|
|
7
|
-
|
|
8
|
-
Read: `node_modules/testdriverai/docs/v7/self-hosted.mdx`
|
|
9
|
-
Read: `node_modules/testdriverai/docs/v7/aws-setup.mdx`
|
|
10
|
-
|
|
11
|
-
## When to Self-Host
|
|
12
|
-
|
|
13
|
-
- **Windows testing** - Required for Windows sandboxes
|
|
14
|
-
- **Custom environments** - Special software or configurations
|
|
15
|
-
- **Data compliance** - Keep tests in your own infrastructure
|
|
16
|
-
- **Performance** - Reduce latency with regional instances
|
|
17
|
-
|
|
18
|
-
## AWS Setup for Windows
|
|
19
|
-
|
|
20
|
-
### Prerequisites
|
|
21
|
-
1. AWS account with EC2 access
|
|
22
|
-
2. TestDriver Windows AMI (contact support)
|
|
23
|
-
3. VPC with public subnet
|
|
24
|
-
|
|
25
|
-
### Required Environment Variables
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
TD_API_KEY=your_api_key
|
|
29
|
-
TD_OS=windows
|
|
30
|
-
AWS_REGION=us-east-2
|
|
31
|
-
AWS_ACCESS_KEY_ID=AKIA...
|
|
32
|
-
AWS_SECRET_ACCESS_KEY=...
|
|
33
|
-
AMI_ID=ami-0dd5fa241273a7d50
|
|
34
|
-
AWS_LAUNCH_TEMPLATE_ID=lt-0ef9bf26a945fb442
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Launch Template Configuration
|
|
38
|
-
|
|
39
|
-
Create an EC2 launch template with:
|
|
40
|
-
- Instance type: `c5.xlarge` or larger
|
|
41
|
-
- AMI: TestDriver Windows AMI
|
|
42
|
-
- Security group: Allow RDP (3389) and TestDriver ports
|
|
43
|
-
- IAM role: EC2 permissions for your use case
|
|
44
|
-
|
|
45
|
-
### Running Windows Tests
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
TD_OS=windows npx vitest run tests/windows-app.test.mjs
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Test Configuration
|
|
52
|
-
|
|
53
|
-
```javascript
|
|
54
|
-
const testdriver = TestDriver(context, {
|
|
55
|
-
os: 'windows', // Use Windows sandbox
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
await testdriver.provision.chrome({ url: 'https://example.com' });
|
|
59
|
-
// or
|
|
60
|
-
await testdriver.provision.installer({
|
|
61
|
-
url: 'https://example.com/app.msi',
|
|
62
|
-
launch: true,
|
|
63
|
-
});
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
## Windows-Specific Examples
|
|
67
|
-
|
|
68
|
-
- `node_modules/testdriverai/examples/windows-installer.test.mjs`
|
|
69
|
-
- `node_modules/testdriverai/examples/exec-pwsh.test.mjs`
|
|
70
|
-
|
|
71
|
-
## PowerShell Execution
|
|
72
|
-
|
|
73
|
-
```javascript
|
|
74
|
-
// Run PowerShell commands on Windows
|
|
75
|
-
const result = await testdriver.exec("pwsh", "Get-Date", 5000);
|
|
76
|
-
const files = await testdriver.exec("pwsh", "Get-ChildItem C:\\", 5000);
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Troubleshooting
|
|
80
|
-
|
|
81
|
-
**Instance not starting?**
|
|
82
|
-
- Check AWS credentials and permissions
|
|
83
|
-
- Verify launch template exists
|
|
84
|
-
- Check AMI is available in your region
|
|
85
|
-
|
|
86
|
-
**Connection timeout?**
|
|
87
|
-
- Security group must allow inbound traffic
|
|
88
|
-
- Instance needs public IP or NAT gateway
|
|
89
|
-
- Check TestDriver agent is running on AMI
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: setup
|
|
3
|
-
description: Set up TestDriver in a project. Use when installing testdriverai, configuring vitest, setting up TD_API_KEY, or initializing a new test project.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Setting Up TestDriver
|
|
7
|
-
|
|
8
|
-
Read the quickstart guide: `node_modules/testdriverai/docs/v7/quickstart.mdx`
|
|
9
|
-
|
|
10
|
-
## Requirements
|
|
11
|
-
|
|
12
|
-
1. **API Key** from [console.testdriver.ai/team](https://console.testdriver.ai/team)
|
|
13
|
-
2. **Node.js** and **Vitest**
|
|
14
|
-
|
|
15
|
-
## Setup Steps
|
|
16
|
-
|
|
17
|
-
### 1. Install TestDriver
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npm install testdriverai vitest dotenv --save-dev
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### 2. Create `.env` file
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
TD_API_KEY=your_api_key_here
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### 3. Create `vitest.config.mjs`
|
|
30
|
-
|
|
31
|
-
```javascript
|
|
32
|
-
import { config } from 'dotenv';
|
|
33
|
-
import TestDriver from 'testdriverai/vitest';
|
|
34
|
-
import { defineConfig } from 'vitest/config';
|
|
35
|
-
|
|
36
|
-
config();
|
|
37
|
-
|
|
38
|
-
const setupFiles = ['testdriverai/vitest/setup', 'testdriverai/vitest/setup-aws'];
|
|
39
|
-
|
|
40
|
-
export default defineConfig({
|
|
41
|
-
test: {
|
|
42
|
-
testTimeout: 900000,
|
|
43
|
-
hookTimeout: 900000,
|
|
44
|
-
disableConsoleIntercept: true,
|
|
45
|
-
maxConcurrency: 3,
|
|
46
|
-
reporters: ['default', TestDriver(), ['junit', { outputFile: 'test-report.junit.xml' }]],
|
|
47
|
-
setupFiles,
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### 4. Add to `.gitignore`
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
.env
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Verify Setup
|
|
59
|
-
|
|
60
|
-
Create a test file `tests/example.test.mjs`:
|
|
61
|
-
|
|
62
|
-
```javascript
|
|
63
|
-
import { describe, expect, it } from "vitest";
|
|
64
|
-
import { TestDriver } from "testdriverai/lib/vitest/hooks.mjs";
|
|
65
|
-
|
|
66
|
-
describe("Setup Test", () => {
|
|
67
|
-
it("should load a page", async (context) => {
|
|
68
|
-
const testdriver = TestDriver(context);
|
|
69
|
-
await testdriver.provision.chrome({ url: 'https://example.com' });
|
|
70
|
-
const result = await testdriver.assert("Example Domain heading is visible");
|
|
71
|
-
expect(result).toBeTruthy();
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Run: `npx vitest run tests/example.test.mjs`
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: variables
|
|
3
|
-
description: Use variables in TestDriver tests. Use when parameterizing tests, using environment variables, or passing data between test steps.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Using Variables
|
|
7
|
-
|
|
8
|
-
Read: `node_modules/testdriverai/docs/v7/variables.mdx`
|
|
9
|
-
|
|
10
|
-
## Environment Variables
|
|
11
|
-
|
|
12
|
-
Access via `process.env`:
|
|
13
|
-
|
|
14
|
-
```javascript
|
|
15
|
-
const username = process.env.TEST_USERNAME;
|
|
16
|
-
const password = process.env.TEST_PASSWORD;
|
|
17
|
-
|
|
18
|
-
await testdriver.find("Username input").click();
|
|
19
|
-
await testdriver.type(username);
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## .env File
|
|
23
|
-
|
|
24
|
-
Create `.env` in project root:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
TD_API_KEY=your_api_key
|
|
28
|
-
TEST_USERNAME=testuser@example.com
|
|
29
|
-
TEST_PASSWORD=testpass123
|
|
30
|
-
BASE_URL=https://staging.example.com
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Load with dotenv (already configured in vitest.config.mjs):
|
|
34
|
-
|
|
35
|
-
```javascript
|
|
36
|
-
import { config } from 'dotenv';
|
|
37
|
-
config();
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## Parameterized Tests
|
|
41
|
-
|
|
42
|
-
```javascript
|
|
43
|
-
const testCases = [
|
|
44
|
-
{ email: 'user1@test.com', expected: 'Welcome User 1' },
|
|
45
|
-
{ email: 'user2@test.com', expected: 'Welcome User 2' },
|
|
46
|
-
];
|
|
47
|
-
|
|
48
|
-
describe("Login Tests", () => {
|
|
49
|
-
testCases.forEach(({ email, expected }) => {
|
|
50
|
-
it(`should login ${email}`, async (context) => {
|
|
51
|
-
const testdriver = TestDriver(context);
|
|
52
|
-
await testdriver.provision.chrome({ url: process.env.BASE_URL });
|
|
53
|
-
|
|
54
|
-
await testdriver.find("Email input").click();
|
|
55
|
-
await testdriver.type(email);
|
|
56
|
-
|
|
57
|
-
const result = await testdriver.assert(`page shows '${expected}'`);
|
|
58
|
-
expect(result).toBeTruthy();
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Sharing Data Between Steps
|
|
65
|
-
|
|
66
|
-
```javascript
|
|
67
|
-
it("should complete flow", async (context) => {
|
|
68
|
-
const testdriver = TestDriver(context);
|
|
69
|
-
await testdriver.provision.chrome({ url: 'https://example.com' });
|
|
70
|
-
|
|
71
|
-
// Get data from page
|
|
72
|
-
const orderId = await testdriver.exec("js",
|
|
73
|
-
"return document.querySelector('.order-id').textContent",
|
|
74
|
-
5000
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
// Use in later assertions
|
|
78
|
-
const result = await testdriver.assert(`Order ${orderId} is confirmed`);
|
|
79
|
-
expect(result).toBeTruthy();
|
|
80
|
-
});
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Dynamic URLs
|
|
84
|
-
|
|
85
|
-
```javascript
|
|
86
|
-
const baseUrl = process.env.BASE_URL || 'https://localhost:3000';
|
|
87
|
-
await testdriver.provision.chrome({ url: `${baseUrl}/login` });
|
|
88
|
-
```
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: waiting
|
|
3
|
-
description: Wait for elements in TestDriver tests. Use when polling for elements, waiting for page loads, handling loading states, or setting timeouts.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Waiting for Elements
|
|
7
|
-
|
|
8
|
-
Read: `node_modules/testdriverai/docs/v7/waiting-for-elements.mdx`
|
|
9
|
-
|
|
10
|
-
## Polling with Timeout
|
|
11
|
-
|
|
12
|
-
Use the `timeout` option to poll until an element is found:
|
|
13
|
-
|
|
14
|
-
```javascript
|
|
15
|
-
// Retries every 5 seconds until found or timeout
|
|
16
|
-
const element = await testdriver.find("Success message", { timeout: 30000 });
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Wait for Page Load
|
|
20
|
-
|
|
21
|
-
```javascript
|
|
22
|
-
// Assert something visible after load
|
|
23
|
-
await testdriver.assert("Page has finished loading");
|
|
24
|
-
|
|
25
|
-
// Or check for specific content
|
|
26
|
-
await testdriver.assert("Welcome message is visible");
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Wait via Assertion
|
|
30
|
-
|
|
31
|
-
```javascript
|
|
32
|
-
// This will wait and retry until true or timeout
|
|
33
|
-
const loaded = await testdriver.assert("The dashboard has fully loaded");
|
|
34
|
-
expect(loaded).toBeTruthy();
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Wait via exec (JavaScript)
|
|
38
|
-
|
|
39
|
-
```javascript
|
|
40
|
-
await testdriver.exec("js", `
|
|
41
|
-
await new Promise(resolve => {
|
|
42
|
-
const check = () => {
|
|
43
|
-
if (document.querySelector('.loaded')) resolve();
|
|
44
|
-
else setTimeout(check, 100);
|
|
45
|
-
};
|
|
46
|
-
check();
|
|
47
|
-
});
|
|
48
|
-
`, 10000);
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Common Patterns
|
|
52
|
-
|
|
53
|
-
### Wait for element to disappear
|
|
54
|
-
```javascript
|
|
55
|
-
// Keep checking until loading spinner is gone
|
|
56
|
-
let spinner = await testdriver.find("Loading spinner");
|
|
57
|
-
while (spinner.found()) {
|
|
58
|
-
await new Promise(r => setTimeout(r, 1000));
|
|
59
|
-
spinner = await testdriver.find("Loading spinner");
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Wait between actions
|
|
64
|
-
```javascript
|
|
65
|
-
await button.click();
|
|
66
|
-
await new Promise(r => setTimeout(r, 2000)); // Wait 2 seconds
|
|
67
|
-
await testdriver.assert("Result is visible");
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Examples
|
|
71
|
-
|
|
72
|
-
See `node_modules/testdriverai/docs/guide/best-practices-polling.mdx`
|
package/vitest.config.mjs
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { config } from "dotenv";
|
|
2
|
-
import TestDriver from "testdriverai/vitest";
|
|
3
|
-
import { defineConfig } from "vitest/config";
|
|
4
|
-
|
|
5
|
-
// Load .env file early so it's available to the reporter (runs in main process)
|
|
6
|
-
// and to worker processes
|
|
7
|
-
config();
|
|
8
|
-
|
|
9
|
-
// Always include AWS setup - it will be a no-op unless TD_OS=windows
|
|
10
|
-
const setupFiles = [
|
|
11
|
-
"dotenv/config",
|
|
12
|
-
"testdriverai/vitest/setup",
|
|
13
|
-
"testdriverai/vitest/setup-aws",
|
|
14
|
-
];
|
|
15
|
-
|
|
16
|
-
export default defineConfig({
|
|
17
|
-
test: {
|
|
18
|
-
testTimeout: 900000,
|
|
19
|
-
hookTimeout: 900000,
|
|
20
|
-
disableConsoleIntercept: true,
|
|
21
|
-
maxConcurrency: 3,
|
|
22
|
-
reporters: [
|
|
23
|
-
"default",
|
|
24
|
-
TestDriver(),
|
|
25
|
-
["junit", { outputFile: "test-report.junit.xml" }],
|
|
26
|
-
],
|
|
27
|
-
setupFiles,
|
|
28
|
-
},
|
|
29
|
-
});
|