testdriverai 7.1.0 → 7.1.2

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 (325) hide show
  1. package/.env.example +2 -0
  2. package/.github/workflows/linux-tests.yml +28 -0
  3. package/agent/index.js +18 -45
  4. package/agent/interface.js +13 -2
  5. package/agent/lib/commands.js +1 -1
  6. package/agent/lib/redraw.js +1 -1
  7. package/agent/lib/sandbox.js +30 -2
  8. package/agent/lib/valid-version.js +2 -2
  9. package/debugger/index.html +1 -1
  10. package/docs/docs.json +140 -131
  11. package/docs/v6/getting-started/self-hosting.mdx +3 -2
  12. package/docs/v7/_drafts/agents.mdx +852 -0
  13. package/docs/v7/_drafts/auto-cache-key.mdx +167 -0
  14. package/docs/v7/{guides → _drafts}/caching-selectors.mdx +125 -17
  15. package/docs/v7/_drafts/dashcam-title-feature.mdx +89 -0
  16. package/docs/v7/_drafts/error-handling.mdx +501 -0
  17. package/docs/v7/_drafts/implementation-plan.mdx +994 -0
  18. package/docs/v7/_drafts/init-command.mdx +95 -0
  19. package/docs/v7/_drafts/optimal-sdk-design.mdx +1348 -0
  20. package/docs/v7/_drafts/plugin-migration.mdx +222 -0
  21. package/docs/v7/_drafts/prompt-cache.mdx +200 -0
  22. package/docs/{QUICK_START_TEST_RECORDING.md → v7/_drafts/quick-start-test-recording.mdx} +3 -3
  23. package/docs/v7/_drafts/sdk-logging.mdx +222 -0
  24. package/docs/v7/_drafts/sdk-migration.mdx +474 -0
  25. package/docs/v7/_drafts/sdk-v7-complete.mdx +345 -0
  26. package/docs/v7/{guides → _drafts}/self-hosting.mdx +1 -1
  27. package/docs/v7/{guides → _drafts}/troubleshooting.mdx +2 -2
  28. package/docs/v7/{guides → _drafts}/vitest-plugin.mdx +4 -4
  29. package/docs/v7/api/{ai.mdx → act.mdx} +24 -24
  30. package/docs/v7/api/client.mdx +1 -1
  31. package/docs/v7/api/dashcam.mdx +2 -2
  32. package/docs/v7/api/elements.mdx +143 -41
  33. package/docs/v7/api/find.mdx +258 -0
  34. package/docs/v7/api/type.mdx +51 -7
  35. package/docs/v7/features/ai-native.mdx +427 -0
  36. package/docs/v7/features/easy-to-write.mdx +351 -0
  37. package/docs/v7/features/enterprise.mdx +540 -0
  38. package/docs/v7/features/fast.mdx +424 -0
  39. package/docs/v7/features/observable.mdx +623 -0
  40. package/docs/v7/features/powerful.mdx +531 -0
  41. package/docs/v7/features/scalable.mdx +417 -0
  42. package/docs/v7/features/stable.mdx +514 -0
  43. package/docs/v7/getting-started/configuration.mdx +1 -1
  44. package/docs/v7/getting-started/generating-tests.mdx +525 -0
  45. package/docs/v7/getting-started/installation.mdx +486 -0
  46. package/docs/v7/getting-started/quickstart.mdx +51 -5
  47. package/docs/v7/getting-started/running-and-debugging.mdx +511 -0
  48. package/docs/v7/getting-started/setting-up-in-ci.mdx +612 -0
  49. package/docs/v7/getting-started/writing-tests.mdx +535 -0
  50. package/docs/v7/overview/what-is-testdriver.mdx +398 -0
  51. package/docs/v7/playwright.mdx +3 -3
  52. package/docs/v7/presets/chrome.mdx +16 -0
  53. package/docs/v7/presets/electron.mdx +18 -0
  54. package/docs/v7/presets/vscode.mdx +19 -0
  55. package/examples/run-tests-with-recording.sh +70 -0
  56. package/examples/screenshot-example.js +63 -0
  57. package/examples/sdk-awesome-logs-demo.js +177 -0
  58. package/examples/sdk-cache-thresholds.js +96 -0
  59. package/examples/sdk-element-properties.js +155 -0
  60. package/examples/sdk-simple-example.js +65 -0
  61. package/examples/test-recording-example.test.js +166 -0
  62. package/interfaces/cli/commands/init.js +358 -0
  63. package/interfaces/vitest-plugin.mjs +214 -10
  64. package/{src → lib}/core/Dashcam.js +41 -4
  65. package/{src → lib}/vitest/hooks.mjs +118 -100
  66. package/lib/vitest/setup.mjs +44 -0
  67. package/package.json +9 -10
  68. package/sdk.d.ts +15 -2
  69. package/sdk.js +72 -17
  70. package/{self-hosted.yml → setup/aws/self-hosted.yml} +1 -1
  71. package/{testdriver/acceptance-sdk → test/manual}/test-console-logs.test.mjs +1 -1
  72. package/test/manual/test-find-api.js +73 -0
  73. package/test/manual/test-init.sh +54 -0
  74. package/test/manual/test-prompt-cache.js +96 -0
  75. package/test/manual/test-provision-auth.mjs +22 -0
  76. package/test/manual/test-sandbox-render.js +28 -0
  77. package/test/manual/test-sdk-methods.js +15 -0
  78. package/test/manual/test-sdk-refactor.js +53 -0
  79. package/test/manual/test-stack-trace.mjs +57 -0
  80. package/test/testdriver/assert.test.mjs +41 -0
  81. package/{testdriver/acceptance-sdk → test/testdriver}/auto-cache-key-demo.test.mjs +1 -1
  82. package/{testdriver/acceptance-sdk → test/testdriver}/drag-and-drop.test.mjs +1 -1
  83. package/{testdriver/acceptance-sdk → test/testdriver}/element-not-found.test.mjs +1 -1
  84. package/{testdriver/acceptance-sdk → test/testdriver}/exec-js.test.mjs +1 -1
  85. package/{testdriver/acceptance-sdk → test/testdriver}/exec-output.test.mjs +3 -3
  86. package/{testdriver/acceptance-sdk → test/testdriver}/exec-pwsh.test.mjs +3 -3
  87. package/{testdriver/acceptance-sdk → test/testdriver}/focus-window.test.mjs +1 -1
  88. package/{testdriver/acceptance-sdk → test/testdriver}/formatted-logging.test.mjs +1 -1
  89. package/{testdriver/acceptance-sdk → test/testdriver}/hover-image.test.mjs +1 -1
  90. package/{testdriver/acceptance-sdk → test/testdriver}/hover-text-with-description.test.mjs +1 -1
  91. package/{testdriver/acceptance-sdk → test/testdriver}/hover-text.test.mjs +1 -1
  92. package/{testdriver/acceptance-sdk → test/testdriver}/match-image.test.mjs +1 -1
  93. package/{testdriver/acceptance-sdk → test/testdriver}/press-keys.test.mjs +1 -1
  94. package/{testdriver/acceptance-sdk → test/testdriver}/prompt.test.mjs +2 -2
  95. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-keyboard.test.mjs +1 -1
  96. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-image.test.mjs +1 -1
  97. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-text.test.mjs +1 -1
  98. package/{testdriver/acceptance-sdk → test/testdriver}/scroll.test.mjs +1 -1
  99. package/{src/vitest/lifecycle.mjs → test/testdriver/setup/lifecycleHelpers.mjs} +84 -99
  100. package/test/testdriver/setup/testHelpers.mjs +653 -0
  101. package/{testdriver/acceptance-sdk → test/testdriver}/type.test.mjs +1 -1
  102. package/vitest.config.mjs +8 -59
  103. package/.github/dependabot.yml +0 -11
  104. package/.github/workflows/acceptance-linux.yml +0 -75
  105. package/.github/workflows/acceptance-sdk-tests.yml +0 -133
  106. package/.github/workflows/acceptance-tests.yml +0 -130
  107. package/.github/workflows/lint.yml +0 -27
  108. package/.github/workflows/publish-canary.yml +0 -40
  109. package/.github/workflows/publish-latest.yml +0 -61
  110. package/.github/workflows/test-install.yml +0 -29
  111. package/.vscode/extensions.json +0 -3
  112. package/.vscode/launch.json +0 -22
  113. package/.vscode/settings.json +0 -14
  114. package/AGENTS.md +0 -550
  115. package/CODEOWNERS +0 -2
  116. package/_testdriver/acceptance/assert.yaml +0 -7
  117. package/_testdriver/acceptance/dashcam.yaml +0 -9
  118. package/_testdriver/acceptance/drag-and-drop.yaml +0 -49
  119. package/_testdriver/acceptance/embed.yaml +0 -9
  120. package/_testdriver/acceptance/exec-js.yaml +0 -29
  121. package/_testdriver/acceptance/exec-output.yaml +0 -43
  122. package/_testdriver/acceptance/exec-shell.yaml +0 -40
  123. package/_testdriver/acceptance/focus-window.yaml +0 -16
  124. package/_testdriver/acceptance/hover-image.yaml +0 -18
  125. package/_testdriver/acceptance/hover-text-with-description.yaml +0 -29
  126. package/_testdriver/acceptance/hover-text.yaml +0 -14
  127. package/_testdriver/acceptance/if-else.yaml +0 -31
  128. package/_testdriver/acceptance/match-image.yaml +0 -15
  129. package/_testdriver/acceptance/press-keys.yaml +0 -35
  130. package/_testdriver/acceptance/prompt.yaml +0 -11
  131. package/_testdriver/acceptance/remember.yaml +0 -27
  132. package/_testdriver/acceptance/screenshots/cart.png +0 -0
  133. package/_testdriver/acceptance/scroll-keyboard.yaml +0 -34
  134. package/_testdriver/acceptance/scroll-until-image.yaml +0 -26
  135. package/_testdriver/acceptance/scroll-until-text.yaml +0 -20
  136. package/_testdriver/acceptance/scroll.yaml +0 -33
  137. package/_testdriver/acceptance/snippets/login.yaml +0 -29
  138. package/_testdriver/acceptance/snippets/match-cart.yaml +0 -8
  139. package/_testdriver/acceptance/type.yaml +0 -29
  140. package/_testdriver/behavior/failure.yaml +0 -7
  141. package/_testdriver/behavior/hover-text.yaml +0 -13
  142. package/_testdriver/behavior/lifecycle/postrun.yaml +0 -10
  143. package/_testdriver/behavior/lifecycle/prerun.yaml +0 -8
  144. package/_testdriver/behavior/lifecycle/provision.yaml +0 -8
  145. package/_testdriver/behavior/secrets.yaml +0 -7
  146. package/_testdriver/edge-cases/dashcam-chrome.yaml +0 -8
  147. package/_testdriver/edge-cases/exec-pwsh-multiline.yaml +0 -10
  148. package/_testdriver/edge-cases/js-exception.yaml +0 -8
  149. package/_testdriver/edge-cases/js-promise.yaml +0 -19
  150. package/_testdriver/edge-cases/lifecycle/postrun.yaml +0 -10
  151. package/_testdriver/edge-cases/prompt-in-middle.yaml +0 -23
  152. package/_testdriver/edge-cases/prompt-nested.yaml +0 -7
  153. package/_testdriver/edge-cases/success-test.yaml +0 -9
  154. package/_testdriver/examples/android/example.yaml +0 -12
  155. package/_testdriver/examples/android/lifecycle/postrun.yaml +0 -11
  156. package/_testdriver/examples/android/lifecycle/provision.yaml +0 -47
  157. package/_testdriver/examples/android/readme.md +0 -7
  158. package/_testdriver/examples/chrome-extension/lifecycle/provision.yaml +0 -74
  159. package/_testdriver/examples/desktop/lifecycle/prerun.yaml +0 -0
  160. package/_testdriver/examples/desktop/lifecycle/provision.yaml +0 -64
  161. package/_testdriver/examples/vscode-extension/lifecycle/provision.yaml +0 -73
  162. package/_testdriver/examples/web/lifecycle/postrun.yaml +0 -7
  163. package/_testdriver/examples/web/lifecycle/prerun.yaml +0 -22
  164. package/_testdriver/lifecycle/postrun.yaml +0 -8
  165. package/_testdriver/lifecycle/prerun.yaml +0 -15
  166. package/_testdriver/lifecycle/provision.yaml +0 -25
  167. package/docs/v7/guides/ci-cd/azure.mdx +0 -587
  168. package/docs/v7/guides/ci-cd/circleci.mdx +0 -523
  169. package/docs/v7/guides/ci-cd/github-actions.mdx +0 -457
  170. package/docs/v7/guides/ci-cd/gitlab.mdx +0 -498
  171. package/docs/v7/guides/ci-cd/jenkins.mdx +0 -664
  172. package/docs/v7/guides/ci-cd/travis.mdx +0 -438
  173. package/scripts/view-test-results.mjs +0 -96
  174. package/src/vitest/extended.mjs +0 -108
  175. package/src/vitest/index.mjs +0 -64
  176. package/src/vitest/utils.mjs +0 -150
  177. package/styles/.vale-config/2-MDX.ini +0 -5
  178. package/styles/Microsoft/AMPM.yml +0 -9
  179. package/styles/Microsoft/Accessibility.yml +0 -30
  180. package/styles/Microsoft/Acronyms.yml +0 -64
  181. package/styles/Microsoft/Adverbs.yml +0 -272
  182. package/styles/Microsoft/Auto.yml +0 -11
  183. package/styles/Microsoft/Avoid.yml +0 -14
  184. package/styles/Microsoft/Contractions.yml +0 -50
  185. package/styles/Microsoft/Dashes.yml +0 -13
  186. package/styles/Microsoft/DateFormat.yml +0 -8
  187. package/styles/Microsoft/DateNumbers.yml +0 -40
  188. package/styles/Microsoft/DateOrder.yml +0 -8
  189. package/styles/Microsoft/Ellipses.yml +0 -9
  190. package/styles/Microsoft/FirstPerson.yml +0 -16
  191. package/styles/Microsoft/Foreign.yml +0 -13
  192. package/styles/Microsoft/Gender.yml +0 -8
  193. package/styles/Microsoft/GenderBias.yml +0 -42
  194. package/styles/Microsoft/GeneralURL.yml +0 -11
  195. package/styles/Microsoft/HeadingAcronyms.yml +0 -7
  196. package/styles/Microsoft/HeadingColons.yml +0 -8
  197. package/styles/Microsoft/HeadingPunctuation.yml +0 -13
  198. package/styles/Microsoft/Headings.yml +0 -28
  199. package/styles/Microsoft/Hyphens.yml +0 -14
  200. package/styles/Microsoft/Negative.yml +0 -13
  201. package/styles/Microsoft/Ordinal.yml +0 -13
  202. package/styles/Microsoft/OxfordComma.yml +0 -8
  203. package/styles/Microsoft/Passive.yml +0 -183
  204. package/styles/Microsoft/Percentages.yml +0 -7
  205. package/styles/Microsoft/Plurals.yml +0 -7
  206. package/styles/Microsoft/Quotes.yml +0 -7
  207. package/styles/Microsoft/RangeTime.yml +0 -13
  208. package/styles/Microsoft/Semicolon.yml +0 -8
  209. package/styles/Microsoft/SentenceLength.yml +0 -6
  210. package/styles/Microsoft/Spacing.yml +0 -8
  211. package/styles/Microsoft/Suspended.yml +0 -7
  212. package/styles/Microsoft/Terms.yml +0 -42
  213. package/styles/Microsoft/URLFormat.yml +0 -9
  214. package/styles/Microsoft/Units.yml +0 -16
  215. package/styles/Microsoft/Vocab.yml +0 -25
  216. package/styles/Microsoft/We.yml +0 -11
  217. package/styles/Microsoft/Wordiness.yml +0 -127
  218. package/styles/Microsoft/meta.json +0 -4
  219. package/styles/alex/Ablist.yml +0 -274
  220. package/styles/alex/Condescending.yml +0 -16
  221. package/styles/alex/Gendered.yml +0 -110
  222. package/styles/alex/LGBTQ.yml +0 -55
  223. package/styles/alex/OCD.yml +0 -10
  224. package/styles/alex/Press.yml +0 -12
  225. package/styles/alex/ProfanityLikely.yml +0 -1289
  226. package/styles/alex/ProfanityMaybe.yml +0 -282
  227. package/styles/alex/ProfanityUnlikely.yml +0 -251
  228. package/styles/alex/README.md +0 -27
  229. package/styles/alex/Race.yml +0 -85
  230. package/styles/alex/Suicide.yml +0 -26
  231. package/styles/alex/meta.json +0 -4
  232. package/styles/config/vocabularies/Docs/accept.txt +0 -47
  233. package/styles/config/vocabularies/Docs/reject.txt +0 -4
  234. package/styles/proselint/Airlinese.yml +0 -8
  235. package/styles/proselint/AnimalLabels.yml +0 -48
  236. package/styles/proselint/Annotations.yml +0 -9
  237. package/styles/proselint/Apologizing.yml +0 -8
  238. package/styles/proselint/Archaisms.yml +0 -52
  239. package/styles/proselint/But.yml +0 -8
  240. package/styles/proselint/Cliches.yml +0 -782
  241. package/styles/proselint/CorporateSpeak.yml +0 -30
  242. package/styles/proselint/Currency.yml +0 -5
  243. package/styles/proselint/Cursing.yml +0 -15
  244. package/styles/proselint/DateCase.yml +0 -7
  245. package/styles/proselint/DateMidnight.yml +0 -7
  246. package/styles/proselint/DateRedundancy.yml +0 -10
  247. package/styles/proselint/DateSpacing.yml +0 -7
  248. package/styles/proselint/DenizenLabels.yml +0 -52
  249. package/styles/proselint/Diacritical.yml +0 -95
  250. package/styles/proselint/GenderBias.yml +0 -45
  251. package/styles/proselint/GroupTerms.yml +0 -39
  252. package/styles/proselint/Hedging.yml +0 -8
  253. package/styles/proselint/Hyperbole.yml +0 -6
  254. package/styles/proselint/Jargon.yml +0 -11
  255. package/styles/proselint/LGBTOffensive.yml +0 -13
  256. package/styles/proselint/LGBTTerms.yml +0 -15
  257. package/styles/proselint/Malapropisms.yml +0 -8
  258. package/styles/proselint/Needless.yml +0 -358
  259. package/styles/proselint/Nonwords.yml +0 -38
  260. package/styles/proselint/Oxymorons.yml +0 -22
  261. package/styles/proselint/P-Value.yml +0 -6
  262. package/styles/proselint/RASSyndrome.yml +0 -30
  263. package/styles/proselint/README.md +0 -12
  264. package/styles/proselint/Skunked.yml +0 -13
  265. package/styles/proselint/Spelling.yml +0 -17
  266. package/styles/proselint/Typography.yml +0 -11
  267. package/styles/proselint/Uncomparables.yml +0 -50
  268. package/styles/proselint/Very.yml +0 -6
  269. package/styles/proselint/meta.json +0 -15
  270. package/styles/write-good/Cliches.yml +0 -702
  271. package/styles/write-good/E-Prime.yml +0 -32
  272. package/styles/write-good/Illusions.yml +0 -11
  273. package/styles/write-good/Passive.yml +0 -183
  274. package/styles/write-good/README.md +0 -27
  275. package/styles/write-good/So.yml +0 -5
  276. package/styles/write-good/ThereIs.yml +0 -6
  277. package/styles/write-good/TooWordy.yml +0 -221
  278. package/styles/write-good/Weasel.yml +0 -29
  279. package/styles/write-good/meta.json +0 -4
  280. package/test/dashcam.test.js +0 -137
  281. package/test/mcp-example-test.yaml +0 -27
  282. package/test/test_parser.js +0 -47
  283. package/testdriver/acceptance-sdk/QUICK_REFERENCE.md +0 -61
  284. package/testdriver/acceptance-sdk/README.md +0 -128
  285. package/testdriver/acceptance-sdk/TEST_REPORTING.md +0 -245
  286. package/testdriver/acceptance-sdk/assert.test.mjs +0 -26
  287. package/testdriver/acceptance-sdk/hooks-example.test.mjs +0 -38
  288. package/testdriver/acceptance-sdk/presets-example.test.mjs +0 -87
  289. package/testdriver/acceptance-sdk/setup/testHelpers.mjs +0 -420
  290. package/testdriver/acceptance-sdk/sully-ai.test.mjs +0 -234
  291. package/testdriver/acceptance-sdk/type-checking-demo.js +0 -49
  292. package/vale.ini +0 -18
  293. package/vitest.config.example.js +0 -19
  294. package/vitest.config.mjs.bak +0 -44
  295. /package/docs/{ARCHITECTURE.md → v7/_drafts/architecture.mdx} +0 -0
  296. /package/docs/{AWESOME_LOGS_QUICK_REF.md → v7/_drafts/awesome-logs-quick-ref.mdx} +0 -0
  297. /package/docs/v7/{guides → _drafts}/best-practices.mdx +0 -0
  298. /package/docs/v7/{guides → _drafts}/caching-ai.mdx +0 -0
  299. /package/docs/v7/{guides → _drafts}/caching.mdx +0 -0
  300. /package/docs/{MIGRATION.md → v7/_drafts/cli-to-sdk-migration.mdx} +0 -0
  301. /package/{CONTRIBUTING.md → docs/v7/_drafts/contributing.mdx} +0 -0
  302. /package/docs/v7/{progressive-apis/CORE.md → _drafts/core.mdx} +0 -0
  303. /package/docs/v7/{guides → _drafts}/debugging.mdx +0 -0
  304. /package/docs/v7/{guides → _drafts}/faq.mdx +0 -0
  305. /package/docs/v7/{progressive-apis/HOOKS.md → _drafts/hooks.mdx} +0 -0
  306. /package/docs/v7/{guides → _drafts}/migration.mdx +0 -0
  307. /package/docs/v7/{guides → _drafts}/performance.mdx +0 -0
  308. /package/docs/{PRESETS.md → v7/_drafts/presets.mdx} +0 -0
  309. /package/docs/v7/{progressive-apis/PROGRESSIVE_DISCLOSURE.md → _drafts/progressive-disclosure.mdx} +0 -0
  310. /package/docs/v7/{progressive-apis/PROVISION.md → _drafts/provision.mdx} +0 -0
  311. /package/docs/{SDK_AWESOME_LOGS.md → v7/_drafts/sdk-awesome-logs.mdx} +0 -0
  312. /package/docs/{sdk-browser-rendering.md → v7/_drafts/sdk-browser-rendering.mdx} +0 -0
  313. /package/docs/{TEST_RECORDING.md → v7/_drafts/test-recording.mdx} +0 -0
  314. /package/docs/v7/{guides → _drafts}/vitest.mdx +0 -0
  315. /package/docs/v7/{README.md → overview/readme.mdx} +0 -0
  316. /package/{src → lib}/core/index.d.ts +0 -0
  317. /package/{src → lib}/core/index.js +0 -0
  318. /package/{src → lib}/presets/index.mjs +0 -0
  319. /package/{src → lib}/vitest/hooks.d.ts +0 -0
  320. /package/{debug-locate-response.js → test/manual/debug-locate-response.js} +0 -0
  321. /package/{verify-element-api.js → test/manual/verify-element-api.js} +0 -0
  322. /package/{verify-types.js → test/manual/verify-types.js} +0 -0
  323. /package/{testdriver/acceptance-sdk → test/testdriver}/chrome-extension.test.mjs +0 -0
  324. /package/{testdriver/acceptance-sdk → test/testdriver}/setup/globalTeardown.mjs +0 -0
  325. /package/{testdriver/acceptance-sdk → test/testdriver}/setup/vitestSetup.mjs +0 -0
@@ -1,47 +0,0 @@
1
- version: 6.0.0
2
- session: 685c63558f43d1527c84d053
3
- steps:
4
- # Start the instance and install APK
5
- - prompt: Download and Start APK
6
- commands:
7
- - command: exec
8
- lang: pwsh
9
- code: |
10
- # Authenticate Gmsaas
11
- gmsaas auth token ${TD_GENYMOTION_KEY}
12
- gmsaas config set android-sdk-path C:\Android
13
-
14
- # Start instance, with name 'td-test'
15
- $instance=$(gmsaas instances start 3990323a-1e9a-49df-ad87-6947f7fc166e td-test)
16
- gmsaas instances adbconnect $instance
17
-
18
- # Save Instance ID and echo value
19
- Write-Output $instance | Out-File -FilePath C:\instance_id
20
- Write-Output "Instance ID: $instance"
21
-
22
- # Get Display Link
23
- gmsaas instances display -y $instance
24
- $clipboard = Get-Clipboard
25
- $escapedUrl = '"' + $clipboard + '"'
26
-
27
- # Open Chrome to Emulator
28
- Start-Process 'C:/Program Files/Google/Chrome/Application/chrome.exe' -ArgumentList '--start-maximized',$escapedUrl
29
-
30
- - command: exec
31
- lang: pwsh
32
- code: |
33
- # Download + install APK via cmd
34
- $apk_url = "https://v6-demo-assets.s3.us-east-2.amazonaws.com/todo-1-0-0.apk"
35
- Start-Process cmd.exe -ArgumentList "/c curl -o C:\app.apk $apk_url && adb install C:\app.apk"
36
-
37
- # Get Package name
38
- $output = & 'C:\Android\build-tools\36.0.0\aapt.exe' dump badging C:\app.apk
39
- $package = ($output | Select-String "package: name='([^']+)'" ).Matches.Groups[1].Value
40
-
41
- # Launch Application via cmd
42
- Start-Process cmd.exe -ArgumentList "/c adb shell monkey -p $package -c android.intent.category.LAUNCHER 1"
43
-
44
- # Make Sure Window is open
45
- - command: wait-for-text
46
- text: gmsaas
47
- timeout: 60000
@@ -1,7 +0,0 @@
1
- # Android Example (Preview)
2
-
3
- This is a preview of TestDriver mobile support.
4
-
5
- This example [Genymotion](https://www.genymotion.com/) cloud instance, downloads and installs an APK, uploads it to genymotion, and provides it as input to TestDriver.
6
-
7
- This example only needs a Genymotion Key. Set it in `TD_GENYMOTION_KEY` within your `.env`.
@@ -1,74 +0,0 @@
1
- version: 6.0.0
2
- session: 67f00511acbd9ccac373edf7
3
- steps:
4
- - prompt: launch chrome
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- code: |
9
- Write-Host "Cloning Chrome extension samples..."
10
- $repoUrl = "https://github.com/GoogleChrome/chrome-extensions-samples.git"
11
- $clonePath = Join-Path $env:TEMP "chrome-extensions-samples"
12
- if (!(Test-Path $clonePath)) {
13
- git clone $repoUrl $clonePath
14
- } else {
15
- Write-Host "Repo already cloned at $clonePath"
16
- }
17
- Write-Host "Repo ready at $clonePath"
18
-
19
- Write-Host "Initializing new npm project..."
20
- cd $env:TEMP
21
- Write-Host "Changed directory to TEMP: $env:TEMP"
22
-
23
- Write-Host "Running 'npm init -y'..."
24
- npm init -y
25
-
26
- Write-Host "Installing dependencies: @puppeteer/browsers and dashcam-chrome..."
27
- npm install @puppeteer/browsers dashcam-chrome
28
-
29
- Write-Host "Installing Chromium via '@puppeteer/browsers'..."
30
- npx @puppeteer/browsers install chrome
31
-
32
- # Define paths - redefining variables for this script
33
- $extensionPath = Join-Path (Join-Path $env:TEMP "chrome-extensions-samples") "functional-samples/tutorial.hello-world"
34
- $profilePath = Join-Path $env:TEMP "chrome-profile-$(Get-Random)"
35
- $defaultDir = Join-Path $profilePath "Default"
36
- $prefsPath = Join-Path $defaultDir "Preferences"
37
-
38
- Write-Host "Extension path (hello-world): $extensionPath"
39
- Write-Host "Chrome user data dir: $profilePath"
40
-
41
- # Create a clean profile + Preferences to disable password manager & autofill
42
- Remove-Item $profilePath -Recurse -Force -ErrorAction SilentlyContinue
43
- New-Item $defaultDir -ItemType Directory -Force | Out-Null
44
-
45
- $prefs = @{
46
- "credentials_enable_service" = $false
47
- "profile" = @{
48
- "password_manager_enabled" = $false
49
- }
50
- "autofill" = @{
51
- "profile_enabled" = $false
52
- "address_enabled" = $false
53
- "credit_card_enabled" = $false
54
- }
55
- } | ConvertTo-Json -Depth 6
56
-
57
- # Write Preferences before Chrome starts (ASCII/UTF8 is fine)
58
- $prefs | Set-Content -Path $prefsPath -Encoding ASCII
59
-
60
- # Build args - load only hello-world extension
61
- $chromeArgs = @(
62
- "--start-maximized",
63
- "--load-extension=$extensionPath",
64
- "--user-data-dir=$profilePath",
65
- "--no-first-run",
66
- "--no-default-browser-check",
67
- "--disable-infobars"
68
- "https://testdriver.ai"
69
- ) -join ' '
70
-
71
- Start-Process "cmd.exe" -ArgumentList "/c", "npx @puppeteer/browsers launch chrome -- $chromeArgs"
72
-
73
- Write-Host "Script complete."
74
- exit
@@ -1,64 +0,0 @@
1
- version: 6.0.0
2
- session: 67f00511acbd9ccac373edf7
3
- steps:
4
- - prompt: download and install Spotify
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- code: |
9
- $spotifyUrl = "https://download.scdn.co/SpotifySetup.exe"
10
- $installerPath = "$env:TEMP\SpotifySetup.exe"
11
-
12
- Write-Host "Downloading Spotify installer..."
13
- Invoke-WebRequest -Uri $spotifyUrl -OutFile $installerPath -UseBasicParsing
14
-
15
- Write-Host "Downloaded to $installerPath"
16
- - command: exec
17
- lang: pwsh
18
- code: |
19
- $installerPath = "$env:TEMP\SpotifySetup.exe"
20
-
21
- if (-Not (Test-Path $installerPath)) {
22
- Write-Error "Spotify installer not found at $installerPath"
23
- exit 1
24
- }
25
-
26
- Write-Host "Installing Spotify silently..."
27
- $process = Start-Process -FilePath $installerPath -ArgumentList "/silent" -Wait -PassThru
28
-
29
- if ($process.ExitCode -eq 0) {
30
- Write-Host "Spotify installed successfully."
31
- Remove-Item $installerPath -Force
32
- exit 0
33
- } else {
34
- Write-Error "Installation failed with exit code $($process.ExitCode)"
35
- exit $process.ExitCode
36
- }
37
- - command: exec
38
- lang: pwsh
39
- code: |
40
- # patch-path.ps1
41
-
42
- $spotifyPath = "$env:APPDATA\Spotify"
43
-
44
- if (-not ($env:PATH -like "*$spotifyPath*")) {
45
- Write-Host "Temporarily appending Spotify to PATH for current session."
46
- $env:PATH += ";$spotifyPath"
47
- } else {
48
- Write-Host "Spotify path already in PATH."
49
- }
50
- - command: exec
51
- lang: pwsh
52
- code: |
53
- # launch-spotify.ps1
54
-
55
- Write-Host "Launching Spotify..."
56
- $spotifyExe = "$env:APPDATA\Spotify\Spotify.exe"
57
-
58
- if (Test-Path $spotifyExe) {
59
- Start-Process $spotifyExe
60
- Write-Host "Spotify launched successfully."
61
- } else {
62
- Write-Error "Spotify executable not found at $spotifyExe"
63
- exit 1
64
- }
@@ -1,73 +0,0 @@
1
- version: 6.0.0
2
- session: 67f00511acbd9ccac373edf7
3
- steps:
4
- - prompt: download and run docker vs code
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- code: |
9
- $vsCodeUrl = "https://update.code.visualstudio.com/latest/win32-x64-user/stable"
10
- $installerPath = "$env:TEMP\VSCodeSetup.exe"
11
-
12
- Write-Host "Downloading Visual Studio Code installer..."
13
- Invoke-WebRequest -Uri $vsCodeUrl -OutFile $installerPath -UseBasicParsing
14
-
15
- Write-Host "Downloaded to $installerPath"
16
- - command: exec
17
- lang: pwsh
18
- code: |
19
- $installerPath = "$env:TEMP\VSCodeSetup.exe"
20
-
21
- if (-Not (Test-Path $installerPath)) {
22
- Write-Error "VS Code installer not found at $installerPath"
23
- exit 1
24
- }
25
-
26
- Write-Host "Installing VS Code silently..."
27
- $process = Start-Process -FilePath $installerPath -ArgumentList "/silent" -Wait -PassThru
28
-
29
- if ($process.ExitCode -eq 0) {
30
- Write-Host "VS Code installed successfully."
31
- Remove-Item $installerPath -Force
32
- exit 0
33
- } else {
34
- Write-Error "Installation failed with exit code $($process.ExitCode)"
35
- exit $process.ExitCode
36
- }
37
- - command: exec
38
- lang: pwsh
39
- code: |
40
- # patch-path.ps1
41
-
42
- $codePath = "$env:LOCALAPPDATA\Programs\Microsoft VS Code\bin"
43
-
44
- if (-not ($env:PATH -like "*$codePath*")) {
45
- Write-Host "Temporarily appending VS Code bin to PATH for current session."
46
- $env:PATH += ";$codePath"
47
- } else {
48
- Write-Host "VS Code path already in PATH."
49
- }
50
- - command: exec
51
- lang: pwsh
52
- code: |
53
- # install-docker-extension.ps1
54
-
55
- $extensionId = "ms-azuretools.vscode-docker"
56
-
57
- Write-Host "Installing Docker extension for VS Code..."
58
- $process = Start-Process "code" -ArgumentList "--install-extension $extensionId --force" -Wait -PassThru
59
-
60
- if ($process.ExitCode -eq 0) {
61
- Write-Host "Extension installed successfully."
62
- exit 0
63
- } else {
64
- Write-Error "Extension installation failed with exit code $($process.ExitCode)"
65
- exit $process.ExitCode
66
- }
67
- - command: exec
68
- lang: pwsh
69
- code: |
70
- # launch-vscode.ps1
71
-
72
- Write-Host "Launching Visual Studio Code..."
73
- Start-Process "code"
@@ -1,7 +0,0 @@
1
- version: 6.0.0
2
- steps:
3
- - prompt: stop dashcam
4
- commands:
5
- - command: exec
6
- lang: pwsh
7
- code: dashcam -t 'Web Test Recording' -p
@@ -1,22 +0,0 @@
1
- version: 6.0.0
2
- steps:
3
- - prompt: launch chrome
4
- commands:
5
- - command: exec
6
- lang: pwsh
7
- code: |
8
- npm install dashcam@beta -g
9
- npm list -g dashcam
10
- - command: exec
11
- lang: pwsh
12
- code: dashcam track --name=TestDriver --type=app --pattern="C:\Users\testdriver\Documents\testdriver.log"
13
- - command: exec
14
- lang: pwsh
15
- code: dashcam start
16
- - command: exec
17
- lang: pwsh
18
- code: |
19
- Start-Process "C:/Program Files/Google/Chrome/Application/chrome.exe" -ArgumentList "--start-maximized", "--guest", "https://testdriver-sandbox.vercel.app/login"
20
- - command: wait-for-text
21
- text: "TestDriver.ai Sandbox"
22
- timeout: 60000
@@ -1,8 +0,0 @@
1
- version: 6.0.0
2
- steps:
3
- - prompt: stop dashcam
4
- commands:
5
- - command: exec
6
- lang: sh
7
- timeout: 120000
8
- code: dashcam stop
@@ -1,15 +0,0 @@
1
- version: 6.0.0
2
- steps:
3
- - prompt: dashcam
4
- commands:
5
- - command: exec
6
- lang: sh
7
- code: |
8
- dashcam auth 4e93d8bf-3886-4d26-a144-116c4063522d
9
- dashcam logs --add --name="TestDriver" --type=file --file="/tmp/testdriver.log"
10
- - command: exec
11
- lang: sh
12
- code: dashcam record > /dev/null 2>&1 &
13
- - command: exec
14
- lang: sh
15
- code: dashcam logs --add --name=TestDriver --type=file --file="/tmp/testdriver.log"
@@ -1,25 +0,0 @@
1
- version: 5.1.1
2
- session: 67f00511acbd9ccac373edf7
3
- steps:
4
- - prompt: launch chrome
5
- commands:
6
- - command: exec
7
- lang: sh
8
- code: |
9
- npm install dashcam@beta -g
10
- npm list -g dashcam
11
- - command: exec
12
- lang: sh
13
- code: |
14
- google-chrome \
15
- --start-maximized \
16
- --disable-infobars \
17
- --disable-fre \
18
- --no-default-browser-check \
19
- --no-first-run \
20
- --guest \
21
- "https://testdriver-sandbox.vercel.app/" \
22
- >/dev/null 2>&1 &
23
- - command: wait-for-text
24
- text: testdriver-sandbox
25
- timeout: 60000