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,40 +0,0 @@
1
- version: 5.1.1
2
- session: 67f00511acbd9ccac373edf7
3
- steps:
4
- - prompt: launch chrome
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- output: user
9
- code: |
10
- # Random email generator in PowerShell
11
-
12
- # Arrays of possible names and domains
13
- $firstNames = @("john", "jane", "alex", "chris", "sara", "mike", "lisa", "david", "emma", "ryan")
14
- $lastNames = @("smith", "johnson", "williams", "brown", "jones", "garcia", "miller", "davis", "martin", "lee")
15
- $domains = @("example.com", "testmail.com", "mailinator.com", "demo.org", "company.net")
16
-
17
- # Random selection
18
- $first = Get-Random -InputObject $firstNames
19
- $last = Get-Random -InputObject $lastNames
20
- $domain = Get-Random -InputObject $domains
21
- $number = Get-Random -Minimum 1 -Maximum 1000
22
-
23
- # Generate the email
24
- $email = "$first.$last$number@$domain".ToLower()
25
-
26
- # Output
27
- Write-Output "$email"
28
-
29
- - command: hover-text
30
- text: Username
31
- description: input field for username
32
- action: click
33
- - command: type
34
- text: ${OUTPUT.user}
35
- - prompt: assert that the username field shows a valid email address
36
- commands:
37
- - command: assert
38
- expect: >-
39
- the username field contains ${OUTPUT.user} which is a valid email
40
- address
@@ -1,16 +0,0 @@
1
- version: 6.0.0
2
- session: 6866d2b90e5814d31e590fce
3
- steps:
4
- - prompt: click on the microsoft edge icon
5
- commands:
6
- - command: press-keys
7
- keys:
8
- - winleft
9
- - d
10
- - command: hover-image
11
- description: a blue and green swirl icon on the taskbar representing Microsoft Edge
12
- action: click
13
- - prompt: focus google chrome
14
- commands:
15
- - command: focus-application
16
- name: Google Chrome
@@ -1,18 +0,0 @@
1
- version: 5.7.7
2
- session: 682f60bf2856e2eb4066427f
3
- steps:
4
- - prompt: complete the login process
5
- commands:
6
- - command: run
7
- file: snippets/login.yaml
8
- - prompt: click on the image of a shopping cart
9
- commands:
10
- - command: focus-application
11
- name: Google Chrome
12
- - command: hover-image
13
- description: shopping cart icon next to the Cart text in the top right corner
14
- action: click
15
- - prompt: assert that you see an empty shopping cart
16
- commands:
17
- - command: assert
18
- expect: Your cart is empty
@@ -1,29 +0,0 @@
1
- version: 6.0.0
2
- session: 685c63558f43d1527c84d053
3
- steps:
4
- - prompt: complete the login process
5
- commands:
6
- - command: run
7
- file: snippets/login.yaml
8
- - prompt: click on add to cart under the testdriver hat
9
- commands:
10
- - command: focus-application
11
- name: Google Chrome
12
- - command: hover-text
13
- text: Add to Cart
14
- description: add to cart button under TestDriver Hat
15
- action: click
16
- - prompt: click on the cart
17
- commands:
18
- - command: focus-application
19
- name: Google Chrome
20
- - command: hover-text
21
- text: Cart
22
- description: cart button in the top right corner
23
- action: click
24
- - prompt: assert the testdriver hat is in the cart
25
- commands:
26
- - command: focus-application
27
- name: Google Chrome
28
- - command: assert
29
- expect: TestDriver Hat is in the cart
@@ -1,14 +0,0 @@
1
- version: 6.0.0
2
- session: 682f5aab811bd5a322c0e5a1
3
- steps:
4
- - prompt: click on sign in
5
- commands:
6
- - command: focus-application
7
- name: Google Chrome
8
- - command: hover-text
9
- text: Sign In
10
- description: black button below the password field
11
- action: click
12
- timeout: 5000
13
- - command: assert
14
- expect: an error shows that fields are required
@@ -1,31 +0,0 @@
1
- version: 6.0.3-canary.e36d0f0.0
2
- session: 6879467764060bdfedd4709d
3
- steps:
4
- - prompt: if a cookie banner is present on the page, close it
5
- commands:
6
- - command: focus-application
7
- name: Google Chrome
8
- - command: if
9
- condition: a cookie banner is visible on the page
10
- then:
11
- - command: hover-text
12
- text: Accept Cookies
13
- description: accept cookies button
14
- action: click
15
- else:
16
- - command: focus-application
17
- name: Google Chrome
18
- - command: if
19
- condition: the Username field is visible on the page
20
- then:
21
- - command: hover-text
22
- text: Username
23
- description: username field
24
- action: click
25
- - command: type
26
- text: testuser
27
- else:
28
- - command: focus-application
29
- name: Google Chrome
30
- - command: assert
31
- expect: the text testuser is visible on screen
@@ -1,15 +0,0 @@
1
- version: 5.7.7
2
- session: 682f5d92811bd5a322c0e636
3
- steps:
4
- - prompt: complete the login process
5
- commands:
6
- - command: run
7
- file: snippets/login.yaml
8
- - prompt: match the image of a shopping cart
9
- commands:
10
- - command: run
11
- file: snippets/match-cart.yaml
12
- - prompt: assert that you see an empty shopping cart
13
- commands:
14
- - command: assert
15
- expect: Your cart is empty
@@ -1,35 +0,0 @@
1
- version: 5.7.62
2
- session: 685af99e5652a7099e99e171
3
- steps:
4
- - prompt: create a new tab
5
- commands:
6
- - command: focus-application
7
- name: Google Chrome
8
- - command: hover-text
9
- text: Sign In
10
- description: black button below the password field
11
- action: click
12
- - command: press-keys
13
- keys:
14
- - ctrl
15
- - t
16
- - command: wait-for-text
17
- text: "Learn more"
18
- - command: press-keys
19
- keys:
20
- - ctrl
21
- - shift
22
- - i
23
- - command: wait-for-text
24
- text: "Elements"
25
- - command: press-keys
26
- keys:
27
- - ctrl
28
- - t
29
- - command: type
30
- text: google.com
31
- - command: press-keys
32
- keys:
33
- - enter
34
- - command: assert
35
- expect: google appears
@@ -1,11 +0,0 @@
1
- version: 6.0.0
2
- session: 6869c3e61445b2acbbdc0018
3
- steps:
4
- - prompt: log in
5
- - prompt: add an item to the cart
6
- - prompt: click on the cart icon
7
- - prompt: complete checkout
8
- - prompt: assert
9
- commands:
10
- - command: assert
11
- expect: the testdriver sandbox is visible
@@ -1,27 +0,0 @@
1
- version: 6.0.11
2
- session: 689a163a8d474e20a6142e70
3
- steps:
4
- - prompt: focus chrome, remember the password, enter the username and the remembered password and login
5
- commands:
6
- - command: remember
7
- description: the password
8
- output: my_password
9
- - command: hover-text
10
- text: Username
11
- description: username input field
12
- action: click
13
- - command: type
14
- text: standard_user
15
- - command: press-keys
16
- keys:
17
- - tab
18
- - command: type
19
- text: ${OUTPUT.my_password}
20
- - command: press-keys
21
- keys:
22
- - tab
23
- - command: press-keys
24
- keys:
25
- - enter
26
- - command: assert
27
- expect: The product listing page is visible
@@ -1,34 +0,0 @@
1
- version: 5.7.62
2
- session: 685accd3d043aff871e84071
3
- steps:
4
- - prompt: Navigate to https://developer.mozilla.org/en-US/docs/Web/HTML
5
- commands:
6
- - command: focus-application
7
- name: Google Chrome
8
- - command: hover-text
9
- text: testdriver-sandbox.vercel.app/login
10
- description: the URL in the omnibox showing the current page
11
- action: click
12
- - command: press-keys
13
- keys:
14
- - ctrl
15
- - a
16
- - command: type
17
- text: https://www.webhamster.com/
18
- - command: press-keys
19
- keys:
20
- - enter
21
- - prompt: scroll down with the mouse 1000 pixels
22
- commands:
23
- - command: hover-text
24
- text: The Hamster Dance
25
- description: large heading at top of page
26
- action: click
27
- - command: scroll
28
- direction: down
29
- method: keyboard
30
- amount: 1000
31
- - prompt: assert the "The Hamster Dance" heading does not show on the webpage
32
- commands:
33
- - command: assert
34
- expect: the page is scrolled down
@@ -1,26 +0,0 @@
1
- version: 6.0.0
2
- session: 67f00511acbd9ccac373edf7
3
- steps:
4
- - prompt: scroll until image
5
- commands:
6
- - command: press-keys
7
- keys:
8
- - ctrl
9
- - l
10
- - command: type
11
- text: https://en.wikipedia.org/wiki/Leonardo_da_Vinci
12
- - command: press-keys
13
- keys:
14
- - enter
15
- - command: hover-text
16
- text: Leonardo Da Vinci
17
- description: the page heazding
18
- action: click
19
- - command: scroll-until-image
20
- description: a brown colored house
21
- direction: down
22
-
23
- - prompt: assert image of brown colored house appears on screen
24
- commands:
25
- - command: assert
26
- expect: image of brown colored house appears on screen
@@ -1,20 +0,0 @@
1
- version: 5.7.7
2
- session: 682f62a1811bd5a322c0e70b
3
- steps:
4
- - prompt: complete the login process
5
- commands:
6
- - command: run
7
- file: snippets/login.yaml
8
- - prompt: scroll until text testdriver socks
9
- commands:
10
- - command: focus-application
11
- name: Google Chrome
12
- - command: scroll-until-text
13
- text: testdriver socks
14
- direction: down
15
- - prompt: assert testdriver socks appears on screen
16
- commands:
17
- - command: focus-application
18
- name: Google Chrome
19
- - command: assert
20
- expect: TestDriver Socks appears on screen
@@ -1,33 +0,0 @@
1
- version: 5.7.62
2
- session: 685accd3d043aff871e84071
3
- steps:
4
- - prompt: Navigate to https://developer.mozilla.org/en-US/docs/Web/HTML
5
- commands:
6
- - command: focus-application
7
- name: Google Chrome
8
- - command: hover-text
9
- text: testdriver-sandbox.vercel.app/login
10
- description: the URL in the omnibox showing the current page
11
- action: click
12
- - command: press-keys
13
- keys:
14
- - ctrl
15
- - a
16
- - command: type
17
- text: https://www.webhamster.com/
18
- - command: press-keys
19
- keys:
20
- - enter
21
- - prompt: scroll down with the mouse 1000 pixels
22
- commands:
23
- - command: hover-text
24
- text: The Hamster Dance
25
- description: large heading at top of page
26
- action: click
27
- - command: scroll
28
- direction: down
29
- amount: 1000
30
- - prompt: assert the "The Hamster Dance" heading does not show on the webpage
31
- commands:
32
- - command: assert
33
- expect: the page is scrolled down
@@ -1,29 +0,0 @@
1
- perversion: 5.7.7
2
- session: 682f6071811bd5a322c0e6dd
3
- steps:
4
- - prompt: focus chrome
5
- commands:
6
- - command: focus-application
7
- name: Google Chrome
8
- - prompt: enter a username
9
- commands:
10
- - command: hover-text
11
- text: Username
12
- description: username input field
13
- action: click
14
- - command: type
15
- text: standard_user
16
- - prompt: enter a password
17
- commands:
18
- - command: hover-text
19
- text: Password
20
- description: password input field
21
- action: click
22
- - command: type
23
- text: secret_password
24
- - prompt: click sign in
25
- commands:
26
- - command: hover-text
27
- text: Sign in
28
- description: sign in button
29
- action: click
@@ -1,8 +0,0 @@
1
- version: 5.7.7
2
- session: 682f6071811bd5a322c0e6dd
3
- steps:
4
- - prompt: assert the testdriver login page shows
5
- commands:
6
- - command: match-image
7
- path: ../screenshots/cart.png
8
- action: click
@@ -1,29 +0,0 @@
1
- version: 5.7.7
2
- session: 682f5c4c811bd5a322c0e5c1
3
- steps:
4
- - prompt: enter standard_user within the username field
5
- commands:
6
- - command: focus-application
7
- name: Google Chrome
8
- - command: hover-text
9
- text: Username
10
- description: input field for username
11
- action: click
12
- - command: type
13
- text: standard_user
14
- - prompt: assert that standard_user shows in the username field
15
- commands:
16
- - command: assert
17
- expect: the username field contains "standard_user"
18
- - prompt: click on sign in
19
- commands:
20
- - command: hover-text
21
- text: Sign in
22
- description: black button below the password field
23
- action: click
24
- - prompt: assert that "please fill out this field" shows in the password field
25
- commands:
26
- - command: focus-application
27
- name: Google Chrome
28
- - command: assert
29
- expect: Please fill out this field is visible near the password field
@@ -1,7 +0,0 @@
1
- version: 6.0.1-canary.4f31816.0
2
- session: 68767e31eb9cc3d8f639b8e0
3
- steps:
4
- - prompt: close chrome
5
- commands:
6
- - command: assert
7
- expect: a pink elephant appears on screen
@@ -1,13 +0,0 @@
1
- version: 5.7.7
2
- session: 682f5aab811bd5a322c0e5a1
3
- steps:
4
- - prompt: click on log in
5
- commands:
6
- - command: focus-application
7
- name: Google Chrome
8
- - command: hover-text
9
- text: Log In
10
- description: black button below the password field
11
- action: click
12
- - command: assert
13
- expect: an error shows that fields are required
@@ -1,10 +0,0 @@
1
- version: 6.0.1-canary.4f31816.0
2
- session: 68767e31eb9cc3d8f639b8e0
3
- steps:
4
- - prompt: "run"
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- code: |
9
- Write-Output "postrun.yaml"
10
- exit 1
@@ -1,8 +0,0 @@
1
- version: 6.0.1-canary.4f31816.0
2
- session: 68767e31eb9cc3d8f639b8e0
3
- steps:
4
- - prompt: "run"
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- code: Write-Output "prerun.yaml"
@@ -1,8 +0,0 @@
1
- version: 6.0.1-canary.4f31816.0
2
- session: 68767e31eb9cc3d8f639b8e0
3
- steps:
4
- - prompt: "run"
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- code: Write-Output "provision.yaml"
@@ -1,7 +0,0 @@
1
- version: 6.0.1
2
- session: 6877c33b74c5eac738259a74
3
- steps:
4
- - prompt: assert the testdriver login page shows
5
- commands:
6
- - command: assert
7
- expect: the ${TD_SECRET}
@@ -1,8 +0,0 @@
1
- version: 6.0.0
2
- steps:
3
- - commands:
4
- - command: exec
5
- lang: pwsh
6
- code: |
7
- npm init
8
- Start-Process "C:\Program Files\Google\Chrome\Application\chrome.exe" -ArgumentList "--start-maximized --disable-infobars --disable-fre --no-default-browser-check --no-first-run --guest --load-extension=$(pwd)/node_modules/dashcam-chrome/build", "${TD_WEBSITE}"
@@ -1,10 +0,0 @@
1
- version: 5.1.1
2
- session: 67f00511acbd9ccac373edf7
3
- steps:
4
- - prompt: execute powershell multiline
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- code: |
9
- Start-Process "C:/Program Files/Google/Chrome/Application/chrome.exe" -ArgumentList "--start-maximized", "--guest", "${TD_WEBSITE}"
10
- exit
@@ -1,8 +0,0 @@
1
- version: 6.0.0
2
- steps:
3
- - prompt: asfdsdf
4
- commands:
5
- - command: exec
6
- lang: js
7
- code: |
8
- throw new Error("test error");
@@ -1,19 +0,0 @@
1
- version: 5.1.1
2
- session: 67f00511acbd9ccac373edf7
3
- steps:
4
- - prompt: execute powershell multiline
5
- commands:
6
- - command: exec
7
- lang: js
8
- code: |
9
- const failingPromise = new Promise((resolve, reject) => {
10
- try {
11
- // Simulate some operation that fails
12
- throw new Error("Something went wrong!");
13
- } catch (err) {
14
- reject(err);
15
- }
16
- });
17
-
18
- // Usage
19
- await failingPromise()
@@ -1,10 +0,0 @@
1
- version: 6.0.26
2
- session: test-postrun
3
- steps:
4
- - prompt: "postrun cleanup"
5
- commands:
6
- - command: exec
7
- lang: js
8
- code: |
9
- console.log("POSTRUN EXECUTED SUCCESSFULLY!");
10
- console.log("This proves postrun lifecycle ran after the error.");
@@ -1,23 +0,0 @@
1
- version: 5.7.7
2
- session: 682f6071811bd5a322c0e6dd
3
- steps:
4
- - prompt: focus chrome
5
- commands:
6
- - command: focus-application
7
- name: Google Chrome
8
- - prompt: enter a username
9
- commands:
10
- - command: hover-text
11
- text: Username
12
- description: username input field
13
- action: click
14
- - command: type
15
- text: standard_user
16
- - prompt: >-
17
- enter a valid password
18
- - prompt: click sign in
19
- commands:
20
- - command: hover-text
21
- text: Sign in
22
- description: sign in button
23
- action: click
@@ -1,7 +0,0 @@
1
- version: 5.7.7
2
- session: 682f6071811bd5a322c0e6dd
3
- steps:
4
- - prompt: run a prompt in the middle of a test
5
- commands:
6
- - command: run
7
- file: testdriver/prompt-in-middle.yaml
@@ -1,9 +0,0 @@
1
- version: 6.0.26
2
- session: test-postrun-success
3
- steps:
4
- - prompt: "simple success test"
5
- commands:
6
- - command: exec
7
- lang: js
8
- code: |
9
- console.log("This test should succeed and then run postrun");
@@ -1,12 +0,0 @@
1
- version: 6.0.0
2
- session: 685c63558f43d1527c84d053
3
- steps:
4
- - prompt: assert app opens
5
- commands:
6
- - command: assert
7
- expect: The Todo App is open
8
-
9
- - command: hover-text
10
- action: click
11
- text: "click anywhere"
12
- description: Label that describes to click anywhere
@@ -1,11 +0,0 @@
1
- version: 6.0.0
2
- session: 685c63558f43d1527c84d053
3
- steps:
4
- - prompt: Stop the Android Instance
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- code: |
9
- $instance = Get-Content -Path C:\instance_id -Raw
10
-
11
- gmsaas instances stop $instance