testdriverai 7.2.63 → 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.
Files changed (362) hide show
  1. package/agent/index.js +77 -59
  2. package/agent/interface.js +11 -251
  3. package/agent/lib/debugger-server.js +2 -1
  4. package/agent/lib/logger.js +56 -0
  5. package/agent/lib/sandbox.js +79 -29
  6. package/ai/agents/test-writer.md +457 -0
  7. package/{docs/v7/ai.mdx → ai/skills/testdriver:ai/SKILL.md} +3 -5
  8. package/{docs/v7/assert.mdx → ai/skills/testdriver:assert/SKILL.md} +3 -4
  9. package/{docs/v7/aws-setup.mdx → ai/skills/testdriver:aws-setup/SKILL.md} +3 -4
  10. package/{docs/v7/caching.mdx → ai/skills/testdriver:caching/SKILL.md} +3 -7
  11. package/{docs/v7/captcha.mdx → ai/skills/testdriver:captcha/SKILL.md} +4 -5
  12. package/{docs/v7/ci-cd.mdx → ai/skills/testdriver:ci-cd/SKILL.md} +3 -4
  13. package/{docs/v7/click.mdx → ai/skills/testdriver:click/SKILL.md} +3 -4
  14. package/{docs/v7/client.mdx → ai/skills/testdriver:client/SKILL.md} +11 -5
  15. package/{docs/v7/cloud.mdx → ai/skills/testdriver:cloud/SKILL.md} +3 -4
  16. package/{docs/v7/customizing-devices.mdx → ai/skills/testdriver:customizing-devices/SKILL.md} +36 -26
  17. package/{docs/v7/dashcam.mdx → ai/skills/testdriver:dashcam/SKILL.md} +3 -4
  18. package/{docs/v7/device-config.mdx → ai/skills/testdriver:device-config/SKILL.md} +3 -3
  19. package/{docs/v7/double-click.mdx → ai/skills/testdriver:double-click/SKILL.md} +3 -3
  20. package/{docs/v7/elements.mdx → ai/skills/testdriver:elements/SKILL.md} +3 -4
  21. package/{docs/v7/enterprise.mdx → ai/skills/testdriver:enterprise/SKILL.md} +3 -5
  22. package/ai/skills/testdriver:examples/SKILL.md +7 -0
  23. package/{docs/v7/exec.mdx → ai/skills/testdriver:exec/SKILL.md} +3 -4
  24. package/{docs/v7/find.mdx → ai/skills/testdriver:find/SKILL.md} +81 -4
  25. package/{docs/v7/focus-application.mdx → ai/skills/testdriver:focus-application/SKILL.md} +3 -4
  26. package/{docs/v7/generating-tests.mdx → ai/skills/testdriver:generating-tests/SKILL.md} +3 -3
  27. package/{docs/v7/hover.mdx → ai/skills/testdriver:hover/SKILL.md} +3 -4
  28. package/{docs/v7/locating-elements.mdx → ai/skills/testdriver:locating-elements/SKILL.md} +3 -3
  29. package/{docs/v7/making-assertions.mdx → ai/skills/testdriver:making-assertions/SKILL.md} +3 -3
  30. package/ai/skills/testdriver:mcp-workflow/SKILL.md +410 -0
  31. package/{docs/v7/mouse-down.mdx → ai/skills/testdriver:mouse-down/SKILL.md} +3 -3
  32. package/{docs/v7/mouse-up.mdx → ai/skills/testdriver:mouse-up/SKILL.md} +3 -3
  33. package/{docs/v7/performing-actions.mdx → ai/skills/testdriver:performing-actions/SKILL.md} +3 -3
  34. package/{docs/v7/press-keys.mdx → ai/skills/testdriver:press-keys/SKILL.md} +3 -4
  35. package/{docs/v7/quickstart.mdx → ai/skills/testdriver:quickstart/SKILL.md} +3 -4
  36. package/{docs/v7/reusable-code.mdx → ai/skills/testdriver:reusable-code/SKILL.md} +3 -3
  37. package/{docs/v7/right-click.mdx → ai/skills/testdriver:right-click/SKILL.md} +3 -3
  38. package/{docs/v7/running-tests.mdx → ai/skills/testdriver:running-tests/SKILL.md} +3 -3
  39. package/{docs/v7/screenshot.mdx → ai/skills/testdriver:screenshot/SKILL.md} +3 -4
  40. package/{docs/v7/scroll.mdx → ai/skills/testdriver:scroll/SKILL.md} +3 -4
  41. package/{docs/v7/secrets.mdx → ai/skills/testdriver:secrets/SKILL.md} +3 -3
  42. package/{docs/v7/self-hosted.mdx → ai/skills/testdriver:self-hosted/SKILL.md} +3 -4
  43. package/ai/skills/testdriver:testdriver/SKILL.md +31 -0
  44. package/{docs/v7/type.mdx → ai/skills/testdriver:type/SKILL.md} +3 -4
  45. package/{docs/v7/variables.mdx → ai/skills/testdriver:variables/SKILL.md} +3 -3
  46. package/{docs/v7/waiting-for-elements.mdx → ai/skills/testdriver:waiting-for-elements/SKILL.md} +3 -3
  47. package/{docs/v7/what-is-testdriver.mdx → ai/skills/testdriver:what-is-testdriver/SKILL.md} +3 -3
  48. package/interfaces/cli/commands/init.js +278 -1
  49. package/interfaces/cli/commands/setup.js +382 -0
  50. package/interfaces/vitest-plugin.mjs +190 -122
  51. package/lib/core/Dashcam.js +22 -15
  52. package/lib/sentry.js +4 -3
  53. package/lib/vitest/hooks.mjs +70 -16
  54. package/lib/vitest/setup-aws.mjs +0 -10
  55. package/package.json +29 -9
  56. package/sdk.d.ts +32 -5
  57. package/sdk.js +10 -9
  58. package/.env.example +0 -4
  59. package/.github/workflows/acceptance-linux-scheduled.yaml +0 -45
  60. package/.github/workflows/acceptance-windows-scheduled.yaml +0 -54
  61. package/.github/workflows/acceptance.yaml +0 -87
  62. package/.github/workflows/publish.yaml +0 -68
  63. package/.github/workflows/test-init.yml +0 -145
  64. package/.github/workflows/testdriver.yml +0 -170
  65. package/.github/workflows/windows-self-hosted.yaml +0 -82
  66. package/.prettierignore +0 -4
  67. package/.prettierrc +0 -1
  68. package/CHANGELOG.md +0 -30
  69. package/agents.md +0 -455
  70. package/debugger/bg.png +0 -0
  71. package/debugger/icon.png +0 -0
  72. package/debugger/index.html +0 -797
  73. package/debugger/td.png +0 -0
  74. package/debugger/tray-buffered.png +0 -0
  75. package/debugger/tray.png +0 -0
  76. package/docs/GITHUB_COMMENTS.md +0 -330
  77. package/docs/GITHUB_COMMENTS_ANNOUNCEMENT.md +0 -167
  78. package/docs/QUICK-START-GITHUB-COMMENTS.md +0 -84
  79. package/docs/TEST-GITHUB-COMMENTS.md +0 -129
  80. package/docs/_scripts/link-replacer.js +0 -164
  81. package/docs/_scripts/upload-docs-to-openai.js +0 -284
  82. package/docs/docs.json +0 -393
  83. package/docs/github-integration-setup.md +0 -266
  84. package/docs/guide/best-practices-polling.mdx +0 -154
  85. package/docs/images/content/account/newprojectsettings.png +0 -0
  86. package/docs/images/content/account/projectpage.png +0 -0
  87. package/docs/images/content/account/projectreplays.png +0 -0
  88. package/docs/images/content/account/team-manage.png +0 -0
  89. package/docs/images/content/account/teampage.png +0 -0
  90. package/docs/images/content/extension/cursor.svg +0 -1
  91. package/docs/images/content/extension/vscode.svg +0 -57
  92. package/docs/images/content/extension/windsurf.svg +0 -3
  93. package/docs/images/content/self-hosted/launchtemplateid.png +0 -0
  94. package/docs/images/content/side-by-side.png +0 -0
  95. package/docs/images/content/vscode/ide-full.png +0 -0
  96. package/docs/images/content/vscode/running.png +0 -0
  97. package/docs/images/content/vscode/vscode-2-assert.png +0 -0
  98. package/docs/images/content/vscode/vscode-agent-preview.png +0 -0
  99. package/docs/images/content/vscode/vscode-copilot-ask.png +0 -0
  100. package/docs/images/content/vscode/vscode-file-creation.png +0 -0
  101. package/docs/images/content/vscode/vscode-install.png +0 -0
  102. package/docs/images/content/vscode/vscode-overview.png +0 -0
  103. package/docs/images/content/vscode/vscode-setup-walkthrough.png +0 -0
  104. package/docs/images/content/vscode/vscode-stopchat.png +0 -0
  105. package/docs/images/content/vscode/vscode-stoptest.png +0 -0
  106. package/docs/images/content/vscode/vscode-tdservice.png +0 -0
  107. package/docs/images/content/vscode/vscode-test-output.png +0 -0
  108. package/docs/images/content/vscode/vscode-testhistory.png +0 -0
  109. package/docs/images/content/vscode/vscode-testpane-runtests.png +0 -0
  110. package/docs/images/content/vscode/vscode-testpane.png +0 -0
  111. package/docs/images/template/dark.png +0 -0
  112. package/docs/images/template/icon.png +0 -0
  113. package/docs/images/template/light.png +0 -0
  114. package/docs/snippets/calendar-link.mdx +0 -4
  115. package/docs/snippets/gitignore-warning.mdx +0 -7
  116. package/docs/snippets/lifecycle-warning.mdx +0 -6
  117. package/docs/snippets/test-prereqs.mdx +0 -12
  118. package/docs/snippets/tests/assert-replay.mdx +0 -7
  119. package/docs/snippets/tests/assert-yaml.mdx +0 -8
  120. package/docs/snippets/tests/exec-js-replay.mdx +0 -7
  121. package/docs/snippets/tests/exec-js-yaml.mdx +0 -32
  122. package/docs/snippets/tests/exec-shell-replay.mdx +0 -7
  123. package/docs/snippets/tests/exec-shell-yaml.mdx +0 -15
  124. package/docs/snippets/tests/hover-image-replay.mdx +0 -7
  125. package/docs/snippets/tests/hover-image-yaml.mdx +0 -17
  126. package/docs/snippets/tests/hover-text-replay.mdx +0 -7
  127. package/docs/snippets/tests/hover-text-with-description-replay.mdx +0 -7
  128. package/docs/snippets/tests/hover-text-with-description-yaml.mdx +0 -24
  129. package/docs/snippets/tests/hover-text-yaml.mdx +0 -14
  130. package/docs/snippets/tests/match-image-replay.mdx +0 -7
  131. package/docs/snippets/tests/match-image-yaml.mdx +0 -17
  132. package/docs/snippets/tests/press-keys-replay.mdx +0 -7
  133. package/docs/snippets/tests/press-keys-yaml.mdx +0 -36
  134. package/docs/snippets/tests/remember-replay.mdx +0 -7
  135. package/docs/snippets/tests/remember-yaml.mdx +0 -28
  136. package/docs/snippets/tests/scroll-replay.mdx +0 -7
  137. package/docs/snippets/tests/scroll-until-image-replay.mdx +0 -7
  138. package/docs/snippets/tests/scroll-until-image-yaml.mdx +0 -14
  139. package/docs/snippets/tests/scroll-until-text-replay.mdx +0 -7
  140. package/docs/snippets/tests/scroll-until-text-yaml.mdx +0 -17
  141. package/docs/snippets/tests/scroll-yaml.mdx +0 -30
  142. package/docs/snippets/tests/type-repeated-replay.mdx +0 -7
  143. package/docs/snippets/tests/type-repeated-yaml.mdx +0 -22
  144. package/docs/snippets/tests/type-replay.mdx +0 -7
  145. package/docs/snippets/tests/type-yaml.mdx +0 -28
  146. package/docs/snippets/tests/wait-for-image-replay.mdx +0 -7
  147. package/docs/snippets/tests/wait-for-image-yaml.mdx +0 -18
  148. package/docs/snippets/tests/wait-for-text-replay.mdx +0 -7
  149. package/docs/snippets/tests/wait-for-text-yaml.mdx +0 -18
  150. package/docs/snippets/tests/wait-replay.mdx +0 -7
  151. package/docs/snippets/tests/wait-yaml.mdx +0 -13
  152. package/docs/styles.css +0 -65
  153. package/docs/v6/account/dashboard.mdx +0 -16
  154. package/docs/v6/account/enterprise.mdx +0 -110
  155. package/docs/v6/account/pricing.mdx +0 -33
  156. package/docs/v6/account/projects.mdx +0 -33
  157. package/docs/v6/account/team.mdx +0 -35
  158. package/docs/v6/action/ami.mdx +0 -109
  159. package/docs/v6/action/performance.mdx +0 -105
  160. package/docs/v6/action/secrets.mdx +0 -93
  161. package/docs/v6/apps/chrome-extensions.mdx +0 -48
  162. package/docs/v6/apps/desktop-apps.mdx +0 -93
  163. package/docs/v6/apps/mobile-apps.mdx +0 -26
  164. package/docs/v6/apps/static-websites.mdx +0 -54
  165. package/docs/v6/apps/tauri-apps.mdx +0 -361
  166. package/docs/v6/bugs/jira.mdx +0 -232
  167. package/docs/v6/cli/overview.mdx +0 -66
  168. package/docs/v6/commands/assert.mdx +0 -45
  169. package/docs/v6/commands/exec.mdx +0 -282
  170. package/docs/v6/commands/focus-application.mdx +0 -44
  171. package/docs/v6/commands/hover-image.mdx +0 -69
  172. package/docs/v6/commands/hover-text.mdx +0 -47
  173. package/docs/v6/commands/if.mdx +0 -53
  174. package/docs/v6/commands/match-image.mdx +0 -67
  175. package/docs/v6/commands/press-keys.mdx +0 -87
  176. package/docs/v6/commands/remember.mdx +0 -49
  177. package/docs/v6/commands/run.mdx +0 -44
  178. package/docs/v6/commands/scroll-until-image.mdx +0 -66
  179. package/docs/v6/commands/scroll-until-text.mdx +0 -60
  180. package/docs/v6/commands/scroll.mdx +0 -69
  181. package/docs/v6/commands/type.mdx +0 -45
  182. package/docs/v6/commands/wait-for-image.mdx +0 -54
  183. package/docs/v6/commands/wait-for-text.mdx +0 -48
  184. package/docs/v6/commands/wait.mdx +0 -45
  185. package/docs/v6/exporting/junit.mdx +0 -218
  186. package/docs/v6/exporting/playwright.mdx +0 -197
  187. package/docs/v6/features/auto-healing.mdx +0 -144
  188. package/docs/v6/features/generation.mdx +0 -116
  189. package/docs/v6/features/parallel-testing.mdx +0 -151
  190. package/docs/v6/features/reusable-snippets.mdx +0 -131
  191. package/docs/v6/features/selectorless.mdx +0 -80
  192. package/docs/v6/features/visual-assertions.mdx +0 -139
  193. package/docs/v6/getting-started/ci.mdx +0 -146
  194. package/docs/v6/getting-started/cli.mdx +0 -91
  195. package/docs/v6/getting-started/editing.mdx +0 -100
  196. package/docs/v6/getting-started/playwright.mdx +0 -342
  197. package/docs/v6/getting-started/running.mdx +0 -48
  198. package/docs/v6/getting-started/self-hosting.mdx +0 -408
  199. package/docs/v6/getting-started/vscode.mdx +0 -89
  200. package/docs/v6/guide/assertions.mdx +0 -189
  201. package/docs/v6/guide/authentication.mdx +0 -136
  202. package/docs/v6/guide/code.mdx +0 -65
  203. package/docs/v6/guide/dashcam.mdx +0 -118
  204. package/docs/v6/guide/environment-variables.mdx +0 -26
  205. package/docs/v6/guide/lifecycle.mdx +0 -242
  206. package/docs/v6/guide/locating.mdx +0 -141
  207. package/docs/v6/guide/protips.mdx +0 -43
  208. package/docs/v6/guide/variables.mdx +0 -143
  209. package/docs/v6/guide/waiting.mdx +0 -130
  210. package/docs/v6/importing/csv.mdx +0 -196
  211. package/docs/v6/importing/gherkin.mdx +0 -143
  212. package/docs/v6/importing/jira.mdx +0 -164
  213. package/docs/v6/importing/testrail.mdx +0 -162
  214. package/docs/v6/integrations/electron.mdx +0 -146
  215. package/docs/v6/integrations/netlify.mdx +0 -100
  216. package/docs/v6/integrations/vercel.mdx +0 -125
  217. package/docs/v6/interactive/explore.mdx +0 -99
  218. package/docs/v6/interactive/run.mdx +0 -52
  219. package/docs/v6/interactive/save.mdx +0 -63
  220. package/docs/v6/overview/comparison.mdx +0 -101
  221. package/docs/v6/overview/faq.mdx +0 -162
  222. package/docs/v6/overview/performance.mdx +0 -52
  223. package/docs/v6/overview/quickstart.mdx +0 -137
  224. package/docs/v6/overview/what-is-testdriver.mdx +0 -85
  225. package/docs/v6/scenarios/ai-chatbot.mdx +0 -28
  226. package/docs/v6/scenarios/cookie-banner.mdx +0 -32
  227. package/docs/v6/scenarios/file-upload.mdx +0 -33
  228. package/docs/v6/scenarios/form-filling.mdx +0 -32
  229. package/docs/v6/scenarios/log-in.mdx +0 -75
  230. package/docs/v6/scenarios/pdf-generation.mdx +0 -25
  231. package/docs/v6/scenarios/spell-check.mdx +0 -22
  232. package/docs/v6/security/action.mdx +0 -84
  233. package/docs/v6/security/agent.mdx +0 -73
  234. package/docs/v6/security/platform.mdx +0 -77
  235. package/docs/v6/tutorials/advanced-test.mdx +0 -81
  236. package/docs/v6/tutorials/basic-test.mdx +0 -45
  237. package/docs/v7/_drafts/agents.mdx +0 -852
  238. package/docs/v7/_drafts/architecture.mdx +0 -399
  239. package/docs/v7/_drafts/auto-cache-key.mdx +0 -167
  240. package/docs/v7/_drafts/awesome-logs-quick-ref.mdx +0 -100
  241. package/docs/v7/_drafts/best-practices.mdx +0 -486
  242. package/docs/v7/_drafts/caching-ai.mdx +0 -215
  243. package/docs/v7/_drafts/caching-selectors.mdx +0 -424
  244. package/docs/v7/_drafts/caching.mdx +0 -366
  245. package/docs/v7/_drafts/cli-to-sdk-migration.mdx +0 -425
  246. package/docs/v7/_drafts/commands/assert.mdx +0 -45
  247. package/docs/v7/_drafts/commands/exec.mdx +0 -282
  248. package/docs/v7/_drafts/commands/focus-application.mdx +0 -44
  249. package/docs/v7/_drafts/commands/hover-image.mdx +0 -69
  250. package/docs/v7/_drafts/commands/hover-text.mdx +0 -47
  251. package/docs/v7/_drafts/commands/if.mdx +0 -53
  252. package/docs/v7/_drafts/commands/match-image.mdx +0 -67
  253. package/docs/v7/_drafts/commands/press-keys.mdx +0 -87
  254. package/docs/v7/_drafts/commands/remember.mdx +0 -49
  255. package/docs/v7/_drafts/commands/run.mdx +0 -44
  256. package/docs/v7/_drafts/commands/scroll-until-image.mdx +0 -66
  257. package/docs/v7/_drafts/commands/scroll-until-text.mdx +0 -60
  258. package/docs/v7/_drafts/commands/scroll.mdx +0 -69
  259. package/docs/v7/_drafts/commands/type.mdx +0 -45
  260. package/docs/v7/_drafts/commands/wait-for-image.mdx +0 -54
  261. package/docs/v7/_drafts/commands/wait-for-text.mdx +0 -48
  262. package/docs/v7/_drafts/commands/wait.mdx +0 -45
  263. package/docs/v7/_drafts/configuration.mdx +0 -378
  264. package/docs/v7/_drafts/contributing.mdx +0 -174
  265. package/docs/v7/_drafts/core.mdx +0 -458
  266. package/docs/v7/_drafts/dashcam-title-feature.mdx +0 -89
  267. package/docs/v7/_drafts/debugging.mdx +0 -349
  268. package/docs/v7/_drafts/error-handling.mdx +0 -501
  269. package/docs/v7/_drafts/faq.mdx +0 -393
  270. package/docs/v7/_drafts/hooks.mdx +0 -360
  271. package/docs/v7/_drafts/init-command.mdx +0 -95
  272. package/docs/v7/_drafts/installation.mdx +0 -420
  273. package/docs/v7/_drafts/migration.mdx +0 -562
  274. package/docs/v7/_drafts/observable.mdx +0 -604
  275. package/docs/v7/_drafts/playwright.mdx +0 -342
  276. package/docs/v7/_drafts/plugin-migration.mdx +0 -220
  277. package/docs/v7/_drafts/powerful.mdx +0 -419
  278. package/docs/v7/_drafts/presets.mdx +0 -210
  279. package/docs/v7/_drafts/progressive-disclosure.mdx +0 -230
  280. package/docs/v7/_drafts/prompt-cache.mdx +0 -200
  281. package/docs/v7/_drafts/provision.mdx +0 -390
  282. package/docs/v7/_drafts/quick-start-test-recording.mdx +0 -214
  283. package/docs/v7/_drafts/readme.mdx +0 -135
  284. package/docs/v7/_drafts/reports.mdx +0 -414
  285. package/docs/v7/_drafts/scalable.mdx +0 -754
  286. package/docs/v7/_drafts/screenshot.mdx +0 -155
  287. package/docs/v7/_drafts/sdk-awesome-logs.mdx +0 -468
  288. package/docs/v7/_drafts/sdk-browser-rendering.mdx +0 -167
  289. package/docs/v7/_drafts/sdk-migration.mdx +0 -474
  290. package/docs/v7/_drafts/sdk-v7-complete.mdx +0 -345
  291. package/docs/v7/_drafts/self-hosting.mdx +0 -369
  292. package/docs/v7/_drafts/test-recording.mdx +0 -382
  293. package/docs/v7/_drafts/troubleshooting.mdx +0 -526
  294. package/docs/v7/_drafts/vitest-plugin.mdx +0 -477
  295. package/docs/v7/_drafts/vitest.mdx +0 -535
  296. package/docs/v7/_drafts/writing-tests.mdx +0 -25
  297. package/docs/v7/examples.mdx +0 -5
  298. package/eslint.config.js +0 -67
  299. package/examples/ai.test.mjs +0 -30
  300. package/examples/assert.test.mjs +0 -46
  301. package/examples/captcha-api.test.mjs +0 -50
  302. package/examples/chrome-extension.test.mjs +0 -94
  303. package/examples/drag-and-drop.test.mjs +0 -58
  304. package/examples/element-not-found.test.mjs +0 -26
  305. package/examples/exec-output.test.mjs +0 -59
  306. package/examples/exec-pwsh.test.mjs +0 -57
  307. package/examples/focus-window.test.mjs +0 -36
  308. package/examples/formatted-logging.test.mjs +0 -26
  309. package/examples/hover-image.test.mjs +0 -52
  310. package/examples/hover-text-with-description.test.mjs +0 -56
  311. package/examples/hover-text.test.mjs +0 -27
  312. package/examples/installer.test.mjs +0 -49
  313. package/examples/launch-vscode-linux.test.mjs +0 -54
  314. package/examples/match-image.test.mjs +0 -54
  315. package/examples/no-provision.test.mjs +0 -23
  316. package/examples/press-keys.test.mjs +0 -50
  317. package/examples/prompt.test.mjs +0 -33
  318. package/examples/scroll-keyboard.test.mjs +0 -37
  319. package/examples/scroll-until-image.test.mjs +0 -39
  320. package/examples/scroll-until-text.test.mjs +0 -67
  321. package/examples/scroll.test.mjs +0 -41
  322. package/examples/type.test.mjs +0 -45
  323. package/examples/windows-installer.test.mjs +0 -53
  324. package/interfaces/cli/commands/edit.js +0 -3
  325. package/interfaces/cli/commands/generate.js +0 -3
  326. package/interfaces/cli/commands/run.js +0 -3
  327. package/interfaces/cli/utils/factory.js +0 -71
  328. package/jsconfig.json +0 -26
  329. package/manual/test-init-command.js +0 -223
  330. package/sdk-log-formatter.js +0 -930
  331. package/setup/aws/cloudformation.yaml +0 -470
  332. package/setup/aws/spawn-runner.sh +0 -190
  333. package/test/api-resilience.test.mjs +0 -0
  334. package/test/captcha-solver.test.mjs +0 -70
  335. package/test/chrome-remote-debugging.test.mjs +0 -66
  336. package/test/manual/debug-locate-response.js +0 -82
  337. package/test/manual/reconnect-provision.test.mjs +0 -49
  338. package/test/manual/test-console-logs.test.mjs +0 -42
  339. package/test/manual/test-find-api.js +0 -73
  340. package/test/manual/test-init.sh +0 -54
  341. package/test/manual/test-prompt-cache.js +0 -96
  342. package/test/manual/test-provision-auth.mjs +0 -22
  343. package/test/manual/test-sandbox-render.js +0 -28
  344. package/test/manual/test-sdk-methods.js +0 -15
  345. package/test/manual/test-sdk-refactor.js +0 -53
  346. package/test/manual/test-stack-trace.mjs +0 -57
  347. package/test/manual/verify-element-api.js +0 -89
  348. package/test/manual/verify-types.js +0 -0
  349. package/test/manual-unawaited-promise.test.mjs +0 -31
  350. package/testdriver-plugin/skills/actions/SKILL.md +0 -93
  351. package/testdriver-plugin/skills/assertions/SKILL.md +0 -77
  352. package/testdriver-plugin/skills/caching/SKILL.md +0 -66
  353. package/testdriver-plugin/skills/creating-tests/SKILL.md +0 -104
  354. package/testdriver-plugin/skills/finding-elements/SKILL.md +0 -77
  355. package/testdriver-plugin/skills/github-actions/SKILL.md +0 -100
  356. package/testdriver-plugin/skills/running-tests/SKILL.md +0 -77
  357. package/testdriver-plugin/skills/secrets/SKILL.md +0 -87
  358. package/testdriver-plugin/skills/self-hosting/SKILL.md +0 -89
  359. package/testdriver-plugin/skills/setup/SKILL.md +0 -76
  360. package/testdriver-plugin/skills/variables/SKILL.md +0 -88
  361. package/testdriver-plugin/skills/waiting/SKILL.md +0 -72
  362. package/vitest.config.mjs +0 -29
@@ -1,420 +0,0 @@
1
- ---
2
- title: "Installation"
3
- description: "Install TestDriver and set up your first test in 2 minutes"
4
- icon: "download"
5
- ---
6
-
7
- Get started with TestDriver in just a few steps. This guide will have you running your first AI-powered test in under 2 minutes.
8
-
9
- <Note>
10
- **Fastest Way to Get Started:** Use `testdriverai init` to scaffold a complete project automatically:
11
-
12
- ```bash
13
- npm install -g testdriverai
14
- testdriverai init
15
- ```
16
-
17
- This creates everything you need: package.json, test files, Vitest config, GitHub Actions workflow, and prompts for your API key. Then just run `npm test`!
18
-
19
- For manual setup, continue with the steps below.
20
- </Note>
21
-
22
- ## Prerequisites
23
-
24
- <CardGroup cols={2}>
25
- <Card title="Node.js" icon="node-js">
26
- Node.js 18 or higher
27
-
28
- ```bash
29
- node --version
30
- # v18.0.0 or higher
31
- ```
32
- </Card>
33
-
34
- <Card title="Package Manager" icon="box">
35
- npm, yarn, or pnpm
36
-
37
- ```bash
38
- npm --version
39
- # or
40
- yarn --version
41
- # or
42
- pnpm --version
43
- ```
44
- </Card>
45
- </CardGroup>
46
-
47
- ## Step 1: Install TestDriver
48
-
49
- Install TestDriver and Vitest test runner:
50
-
51
- <CodeGroup>
52
- ```bash npm
53
- npm install --save-dev testdriverai vitest
54
- ```
55
-
56
- ```bash yarn
57
- yarn add --dev testdriverai vitest
58
- ```
59
-
60
- ```bash pnpm
61
- pnpm add -D testdriverai vitest
62
- ```
63
- </CodeGroup>
64
-
65
- <Tip>
66
- TestDriver works with any test framework (Vitest, Jest, Mocha), but we recommend Vitest for the best experience.
67
- </Tip>
68
-
69
- ## Step 2: Get Your API Key
70
-
71
- <Steps>
72
- <Step title="Sign up">
73
- Visit [console.testdriver.ai](https://console.testdriver.ai) and create a free account.
74
- </Step>
75
-
76
- <Step title="Generate API Key">
77
- Navigate to Settings → API Keys and generate a new key.
78
-
79
- The key will look like: `tdai-1234567890abcdef1234567890abcdef`
80
- </Step>
81
-
82
- <Step title="Save API Key">
83
- Create a `.env` file in your project root:
84
-
85
- ```bash .env
86
- TD_API_KEY=tdai-your-api-key-here
87
- ```
88
-
89
- <Warning>
90
- Add `.env` to your `.gitignore` to avoid committing secrets!
91
- </Warning>
92
- </Step>
93
- </Steps>
94
-
95
- ## Step 3: Create Your First Test
96
-
97
- Create a test file `test.test.js`:
98
-
99
- ```javascript test.test.js
100
- import { test } from 'vitest';
101
- import { chrome } from 'testdriverai/presets';
102
-
103
- test('my first test', async (context) => {
104
- const { testdriver } = await chrome(context, {
105
- url: 'https://example.com'
106
- // apiKey automatically read from process.env.TD_API_KEY
107
- });
108
-
109
- await testdriver.find('More information link').click();
110
- await testdriver.assert('IANA page is visible');
111
- });
112
- ```
113
-
114
- <Check>
115
- That's it! TestDriver automatically handles authentication, browser launch, navigation, video recording, and cleanup.
116
- </Check>
117
-
118
- ## Step 4: Run Your Test
119
-
120
- Run your test with Vitest:
121
-
122
- ```bash
123
- npx vitest run
124
- ```
125
-
126
- You should see output like:
127
-
128
- ```
129
- ✓ test.test.js (1)
130
- ✓ my first test (12.3s)
131
-
132
- Test Files 1 passed (1)
133
- Tests 1 passed (1)
134
- Duration 12.45s
135
-
136
- 📹 Replay: https://console.testdriver.ai/dashcam/abc123
137
- ```
138
-
139
- <Tip>
140
- Click the Dashcam replay URL to watch a video of your test execution!
141
- </Tip>
142
-
143
- ## Optional: Configure Vitest
144
-
145
- For a better experience, create a `vitest.config.mjs`:
146
-
147
- ```javascript vitest.config.mjs
148
- import { defineConfig } from 'vitest/config';
149
-
150
- export default defineConfig({
151
- test: {
152
- testTimeout: 120000, // 2 minutes per test (TestDriver tests can take longer)
153
- hookTimeout: 120000, // 2 minutes for setup/teardown
154
- },
155
- });
156
- ```
157
-
158
- ## Installation Options
159
-
160
- ### TypeScript Setup
161
-
162
- TestDriver includes TypeScript definitions out of the box:
163
-
164
- ```typescript test.test.ts
165
- import { test } from 'vitest';
166
- import { chrome } from 'testdriverai/presets';
167
-
168
- test('typed test', async (context) => {
169
- const { testdriver } = await chrome(context, {
170
- url: 'https://example.com'
171
- });
172
-
173
- const element = await testdriver.find('button');
174
- // element has full type information
175
- console.log(element.coordinates.x);
176
- });
177
- ```
178
-
179
- No additional setup needed!
180
-
181
- ### Global Installation (Optional)
182
-
183
- Install TestDriver CLI globally for project scaffolding and sandbox management:
184
-
185
- ```bash
186
- npm install -g testdriverai
187
- ```
188
-
189
- This gives you access to commands like:
190
-
191
- ```bash
192
- # Initialize a new project (recommended!)
193
- testdriverai init
194
-
195
- # Spawn a sandbox
196
- testdriverai sandbox spawn
197
-
198
- # List active sandboxes
199
- testdriverai sandbox list
200
-
201
- # Stop a sandbox
202
- testdriverai sandbox stop i-abc123
203
- ```
204
-
205
- <Tip>
206
- The `testdriverai init` command is the fastest way to start a new project. It creates:
207
- - package.json with test scripts
208
- - Vitest configuration with TestDriver plugin
209
- - Example test file using the chrome preset
210
- - GitHub Actions workflow for CI/CD
211
- - .gitignore to protect secrets
212
- - Installs all dependencies
213
- - Prompts for your API key and saves to .env
214
- </Tip>
215
-
216
- [Learn more about sandbox management](/agents.md#sandbox-management)
217
-
218
- ### Monorepo Setup
219
-
220
- For monorepos, install TestDriver in the root and reference it from test packages:
221
-
222
- ```json package.json (root)
223
- {
224
- "workspaces": ["packages/*"],
225
- "devDependencies": {
226
- "testdriverai": "^7.0.0",
227
- "vitest": "^1.0.0"
228
- }
229
- }
230
- ```
231
-
232
- ```json packages/app/package.json
233
- {
234
- "scripts": {
235
- "test": "vitest run"
236
- }
237
- }
238
- ```
239
-
240
- ## Alternative Test Frameworks
241
-
242
- While we recommend Vitest, TestDriver works with any test framework:
243
-
244
- <Tabs>
245
- <Tab title="Vitest (Recommended)">
246
- ```javascript
247
- import { test } from 'vitest';
248
- import { chrome } from 'testdriverai/presets';
249
-
250
- test('my test', async (context) => {
251
- const { testdriver } = await chrome(context, { url });
252
- // Test code
253
- });
254
- ```
255
- </Tab>
256
-
257
- <Tab title="Jest">
258
- ```javascript
259
- import { chrome } from 'testdriverai/presets';
260
-
261
- test('my test', async () => {
262
- const { testdriver } = await chrome({ url });
263
- // Test code
264
- });
265
- ```
266
- </Tab>
267
-
268
- <Tab title="Mocha">
269
- ```javascript
270
- import { chrome } from 'testdriverai/presets';
271
-
272
- describe('My Suite', () => {
273
- it('should work', async function() {
274
- const { testdriver } = await chrome(this, { url });
275
- // Test code
276
- });
277
- });
278
- ```
279
- </Tab>
280
-
281
- <Tab title="Node (No Framework)">
282
- ```javascript
283
- import { TestDriver } from 'testdriverai';
284
-
285
- async function runTest() {
286
- const testdriver = new TestDriver({
287
- apiKey: process.env.TD_API_KEY
288
- });
289
-
290
- await testdriver.connect();
291
- // Test code
292
- await testdriver.disconnect();
293
- }
294
-
295
- runTest();
296
- ```
297
- </Tab>
298
- </Tabs>
299
-
300
- ## Verify Installation
301
-
302
- Run this quick verification to ensure everything is set up correctly:
303
-
304
- ```javascript verify.test.js
305
- import { test } from 'vitest';
306
- import { chrome } from 'testdriverai/presets';
307
-
308
- test('verify installation', async (context) => {
309
- console.log('✓ TestDriver SDK imported');
310
-
311
- const { testdriver, dashcam } = await chrome(context, {
312
- url: 'https://example.com'
313
- });
314
- console.log('✓ Connected to TestDriver sandbox');
315
- console.log('✓ Chrome browser launched');
316
-
317
- const element = await testdriver.find('More information link');
318
- console.log('✓ AI vision working');
319
- console.log('✓ Element found:', element.text);
320
-
321
- await element.click();
322
- console.log('✓ Click action successful');
323
-
324
- await testdriver.assert('IANA page is visible');
325
- console.log('✓ AI assertion passed');
326
-
327
- console.log('✓ Dashcam recording:', dashcam.url);
328
- console.log('\n✅ Installation verified successfully!');
329
- });
330
- ```
331
-
332
- Run it:
333
-
334
- ```bash
335
- npx vitest run verify.test.js
336
- ```
337
-
338
- ## Troubleshooting
339
-
340
- <AccordionGroup>
341
- <Accordion title="API Key Not Found">
342
- **Error:** `TestDriver API key not found`
343
-
344
- **Solutions:**
345
- 1. Check `.env` file exists in project root
346
- 2. Verify key format: `TD_API_KEY=tdai-...`
347
- 3. Restart your terminal/IDE to reload environment
348
- 4. Or pass API key directly:
349
-
350
- ```javascript
351
- const { testdriver } = await chrome(context, {
352
- url: 'https://example.com',
353
- apiKey: 'tdai-your-key-here'
354
- });
355
- ```
356
- </Accordion>
357
-
358
- <Accordion title="Module Not Found">
359
- **Error:** `Cannot find module 'testdriverai'`
360
-
361
- **Solutions:**
362
- 1. Ensure you're in the correct directory
363
- 2. Run `npm install` again
364
- 3. Check `package.json` includes testdriverai
365
- 4. Delete `node_modules` and reinstall:
366
-
367
- ```bash
368
- rm -rf node_modules package-lock.json
369
- npm install
370
- ```
371
- </Accordion>
372
-
373
- <Accordion title="Test Timeout">
374
- **Error:** `Test timed out after 5000ms`
375
-
376
- **Solution:** Increase timeout in vitest config:
377
-
378
- ```javascript vitest.config.mjs
379
- export default defineConfig({
380
- test: {
381
- testTimeout: 120000, // 2 minutes
382
- },
383
- });
384
- ```
385
-
386
- TestDriver tests can take longer than unit tests due to AI analysis and browser automation.
387
- </Accordion>
388
-
389
- <Accordion title="TypeScript Errors">
390
- **Error:** `Cannot find type definitions`
391
-
392
- **Solution:** TestDriver includes types by default, but ensure your `tsconfig.json` is correct:
393
-
394
- ```json tsconfig.json
395
- {
396
- "compilerOptions": {
397
- "module": "ESNext",
398
- "moduleResolution": "node",
399
- "esModuleInterop": true
400
- }
401
- }
402
- ```
403
- </Accordion>
404
-
405
- <Accordion title="Network/Firewall Issues">
406
- **Error:** `Failed to connect to TestDriver API`
407
-
408
- **Solution:**
409
- 1. Check your internet connection
410
- 2. Verify firewall allows outbound HTTPS
411
- 3. If behind corporate proxy, configure:
412
-
413
- ```bash .env
414
- HTTP_PROXY=http://proxy.company.com:8080
415
- HTTPS_PROXY=http://proxy.company.com:8080
416
- ```
417
-
418
- For on-premise deployment, see [self-hosting guide](/v7/guides/self-hosting).
419
- </Accordion>
420
- </AccordionGroup>