testdriverai 7.0.0 → 7.1.1

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 (324) hide show
  1. package/.env.example +2 -0
  2. package/.github/workflows/linux-tests.yml +28 -0
  3. package/README.md +126 -0
  4. package/agent/index.js +7 -9
  5. package/agent/interface.js +13 -2
  6. package/agent/lib/commands.js +795 -136
  7. package/agent/lib/redraw.js +124 -39
  8. package/agent/lib/sandbox.js +40 -3
  9. package/agent/lib/sdk.js +21 -0
  10. package/agent/lib/valid-version.js +2 -2
  11. package/debugger/index.html +1 -1
  12. package/docs/docs.json +86 -71
  13. package/docs/guide/best-practices-polling.mdx +154 -0
  14. package/docs/v6/getting-started/self-hosting.mdx +3 -2
  15. package/docs/v7/_drafts/agents.mdx +852 -0
  16. package/docs/v7/_drafts/auto-cache-key.mdx +167 -0
  17. package/docs/v7/_drafts/best-practices.mdx +486 -0
  18. package/docs/v7/_drafts/caching-ai.mdx +215 -0
  19. package/docs/v7/_drafts/caching-selectors.mdx +400 -0
  20. package/docs/v7/_drafts/caching.mdx +366 -0
  21. package/docs/v7/_drafts/cli-to-sdk-migration.mdx +425 -0
  22. package/docs/v7/_drafts/core.mdx +459 -0
  23. package/docs/v7/_drafts/dashcam-title-feature.mdx +89 -0
  24. package/docs/v7/_drafts/debugging.mdx +349 -0
  25. package/docs/v7/_drafts/error-handling.mdx +501 -0
  26. package/docs/v7/_drafts/faq.mdx +393 -0
  27. package/docs/v7/_drafts/hooks.mdx +360 -0
  28. package/docs/v7/_drafts/implementation-plan.mdx +994 -0
  29. package/docs/v7/_drafts/init-command.mdx +95 -0
  30. package/docs/v7/_drafts/optimal-sdk-design.mdx +1348 -0
  31. package/docs/v7/_drafts/performance.mdx +517 -0
  32. package/docs/v7/_drafts/presets.mdx +210 -0
  33. package/docs/v7/_drafts/progressive-disclosure.mdx +230 -0
  34. package/docs/v7/_drafts/provision.mdx +266 -0
  35. package/docs/{QUICK_START_TEST_RECORDING.md → v7/_drafts/quick-start-test-recording.mdx} +3 -3
  36. package/docs/v7/_drafts/sdk-v7-complete.mdx +345 -0
  37. package/docs/v7/{guides → _drafts}/self-hosting.mdx +1 -1
  38. package/docs/v7/_drafts/troubleshooting.mdx +526 -0
  39. package/docs/v7/_drafts/vitest-plugin.mdx +477 -0
  40. package/docs/v7/_drafts/vitest.mdx +535 -0
  41. package/docs/v7/api/{ai.mdx → act.mdx} +24 -24
  42. package/docs/v7/api/client.mdx +1 -1
  43. package/docs/v7/api/dashcam.mdx +497 -0
  44. package/docs/v7/api/doubleClick.mdx +102 -0
  45. package/docs/v7/api/elements.mdx +143 -41
  46. package/docs/v7/api/find.mdx +258 -0
  47. package/docs/v7/api/mouseDown.mdx +161 -0
  48. package/docs/v7/api/mouseUp.mdx +164 -0
  49. package/docs/v7/api/rightClick.mdx +123 -0
  50. package/docs/v7/api/type.mdx +51 -7
  51. package/docs/v7/features/ai-native.mdx +427 -0
  52. package/docs/v7/features/easy-to-write.mdx +351 -0
  53. package/docs/v7/features/enterprise.mdx +540 -0
  54. package/docs/v7/features/fast.mdx +424 -0
  55. package/docs/v7/features/observable.mdx +623 -0
  56. package/docs/v7/features/powerful.mdx +531 -0
  57. package/docs/v7/features/scalable.mdx +417 -0
  58. package/docs/v7/features/stable.mdx +514 -0
  59. package/docs/v7/getting-started/configuration.mdx +380 -0
  60. package/docs/v7/getting-started/generating-tests.mdx +525 -0
  61. package/docs/v7/getting-started/installation.mdx +486 -0
  62. package/docs/v7/getting-started/quickstart.mdx +320 -141
  63. package/docs/v7/getting-started/running-and-debugging.mdx +511 -0
  64. package/docs/v7/getting-started/setting-up-in-ci.mdx +612 -0
  65. package/docs/v7/getting-started/writing-tests.mdx +535 -0
  66. package/docs/v7/overview/what-is-testdriver.mdx +398 -0
  67. package/docs/v7/platforms/linux.mdx +308 -0
  68. package/docs/v7/platforms/macos.mdx +433 -0
  69. package/docs/v7/platforms/windows.mdx +430 -0
  70. package/docs/v7/playwright.mdx +3 -3
  71. package/docs/v7/presets/chrome-extension.mdx +223 -0
  72. package/docs/v7/presets/chrome.mdx +303 -0
  73. package/docs/v7/presets/electron.mdx +453 -0
  74. package/docs/v7/presets/vscode.mdx +417 -0
  75. package/docs/v7/presets/webapp.mdx +396 -0
  76. package/examples/run-tests-with-recording.sh +2 -2
  77. package/interfaces/cli/commands/init.js +358 -0
  78. package/interfaces/vitest-plugin.mjs +393 -103
  79. package/lib/core/Dashcam.js +506 -0
  80. package/lib/core/index.d.ts +150 -0
  81. package/lib/core/index.js +12 -0
  82. package/lib/presets/index.mjs +331 -0
  83. package/lib/vitest/hooks.d.ts +119 -0
  84. package/lib/vitest/hooks.mjs +316 -0
  85. package/lib/vitest/setup.mjs +44 -0
  86. package/package.json +13 -3
  87. package/sdk.d.ts +350 -44
  88. package/sdk.js +818 -105
  89. package/{self-hosted.yml → setup/aws/self-hosted.yml} +1 -1
  90. package/test/manual/test-console-logs.test.mjs +42 -0
  91. package/test/manual/test-init.sh +54 -0
  92. package/test/manual/test-provision-auth.mjs +22 -0
  93. package/test/testdriver/assert.test.mjs +41 -0
  94. package/test/testdriver/auto-cache-key-demo.test.mjs +56 -0
  95. package/test/testdriver/chrome-extension.test.mjs +89 -0
  96. package/{testdriver/acceptance-sdk → test/testdriver}/drag-and-drop.test.mjs +7 -19
  97. package/{testdriver/acceptance-sdk → test/testdriver}/element-not-found.test.mjs +6 -19
  98. package/{testdriver/acceptance-sdk → test/testdriver}/exec-js.test.mjs +6 -18
  99. package/{testdriver/acceptance-sdk → test/testdriver}/exec-output.test.mjs +9 -21
  100. package/{testdriver/acceptance-sdk → test/testdriver}/exec-pwsh.test.mjs +14 -26
  101. package/{testdriver/acceptance-sdk → test/testdriver}/focus-window.test.mjs +8 -20
  102. package/{testdriver/acceptance-sdk → test/testdriver}/formatted-logging.test.mjs +5 -20
  103. package/{testdriver/acceptance-sdk → test/testdriver}/hover-image.test.mjs +10 -19
  104. package/{testdriver/acceptance-sdk → test/testdriver}/hover-text-with-description.test.mjs +7 -19
  105. package/{testdriver/acceptance-sdk → test/testdriver}/hover-text.test.mjs +5 -19
  106. package/{testdriver/acceptance-sdk → test/testdriver}/match-image.test.mjs +7 -19
  107. package/{testdriver/acceptance-sdk → test/testdriver}/press-keys.test.mjs +5 -19
  108. package/{testdriver/acceptance-sdk → test/testdriver}/prompt.test.mjs +7 -19
  109. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-keyboard.test.mjs +6 -20
  110. package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-image.test.mjs +6 -18
  111. package/test/testdriver/scroll-until-text.test.mjs +28 -0
  112. package/{testdriver/acceptance-sdk → test/testdriver}/scroll.test.mjs +12 -21
  113. package/test/testdriver/setup/lifecycleHelpers.mjs +262 -0
  114. package/{testdriver/acceptance-sdk → test/testdriver}/setup/testHelpers.mjs +25 -20
  115. package/test/testdriver/type.test.mjs +45 -0
  116. package/vitest.config.mjs +11 -56
  117. package/.github/dependabot.yml +0 -11
  118. package/.github/workflows/acceptance-linux.yml +0 -75
  119. package/.github/workflows/acceptance-sdk-tests.yml +0 -133
  120. package/.github/workflows/acceptance-tests.yml +0 -130
  121. package/.github/workflows/lint.yml +0 -27
  122. package/.github/workflows/publish-canary.yml +0 -40
  123. package/.github/workflows/publish-latest.yml +0 -61
  124. package/.github/workflows/test-install.yml +0 -29
  125. package/.vscode/extensions.json +0 -3
  126. package/.vscode/launch.json +0 -22
  127. package/.vscode/mcp.json +0 -9
  128. package/.vscode/settings.json +0 -14
  129. package/CODEOWNERS +0 -3
  130. package/MIGRATION.md +0 -389
  131. package/SDK_README.md +0 -1122
  132. package/_testdriver/acceptance/assert.yaml +0 -7
  133. package/_testdriver/acceptance/dashcam.yaml +0 -9
  134. package/_testdriver/acceptance/drag-and-drop.yaml +0 -49
  135. package/_testdriver/acceptance/embed.yaml +0 -9
  136. package/_testdriver/acceptance/exec-js.yaml +0 -29
  137. package/_testdriver/acceptance/exec-output.yaml +0 -43
  138. package/_testdriver/acceptance/exec-shell.yaml +0 -40
  139. package/_testdriver/acceptance/focus-window.yaml +0 -16
  140. package/_testdriver/acceptance/hover-image.yaml +0 -18
  141. package/_testdriver/acceptance/hover-text-with-description.yaml +0 -29
  142. package/_testdriver/acceptance/hover-text.yaml +0 -14
  143. package/_testdriver/acceptance/if-else.yaml +0 -31
  144. package/_testdriver/acceptance/match-image.yaml +0 -15
  145. package/_testdriver/acceptance/press-keys.yaml +0 -35
  146. package/_testdriver/acceptance/prompt.yaml +0 -11
  147. package/_testdriver/acceptance/remember.yaml +0 -27
  148. package/_testdriver/acceptance/screenshots/cart.png +0 -0
  149. package/_testdriver/acceptance/scroll-keyboard.yaml +0 -34
  150. package/_testdriver/acceptance/scroll-until-image.yaml +0 -26
  151. package/_testdriver/acceptance/scroll-until-text.yaml +0 -20
  152. package/_testdriver/acceptance/scroll.yaml +0 -33
  153. package/_testdriver/acceptance/snippets/login.yaml +0 -29
  154. package/_testdriver/acceptance/snippets/match-cart.yaml +0 -8
  155. package/_testdriver/acceptance/type.yaml +0 -29
  156. package/_testdriver/behavior/failure.yaml +0 -7
  157. package/_testdriver/behavior/hover-text.yaml +0 -13
  158. package/_testdriver/behavior/lifecycle/postrun.yaml +0 -10
  159. package/_testdriver/behavior/lifecycle/prerun.yaml +0 -8
  160. package/_testdriver/behavior/lifecycle/provision.yaml +0 -8
  161. package/_testdriver/behavior/secrets.yaml +0 -7
  162. package/_testdriver/edge-cases/dashcam-chrome.yaml +0 -8
  163. package/_testdriver/edge-cases/exec-pwsh-multiline.yaml +0 -10
  164. package/_testdriver/edge-cases/js-exception.yaml +0 -8
  165. package/_testdriver/edge-cases/js-promise.yaml +0 -19
  166. package/_testdriver/edge-cases/lifecycle/postrun.yaml +0 -10
  167. package/_testdriver/edge-cases/prompt-in-middle.yaml +0 -23
  168. package/_testdriver/edge-cases/prompt-nested.yaml +0 -7
  169. package/_testdriver/edge-cases/success-test.yaml +0 -9
  170. package/_testdriver/examples/android/example.yaml +0 -12
  171. package/_testdriver/examples/android/lifecycle/postrun.yaml +0 -11
  172. package/_testdriver/examples/android/lifecycle/provision.yaml +0 -47
  173. package/_testdriver/examples/android/readme.md +0 -7
  174. package/_testdriver/examples/chrome-extension/lifecycle/provision.yaml +0 -74
  175. package/_testdriver/examples/desktop/lifecycle/prerun.yaml +0 -0
  176. package/_testdriver/examples/desktop/lifecycle/provision.yaml +0 -64
  177. package/_testdriver/examples/vscode-extension/lifecycle/provision.yaml +0 -73
  178. package/_testdriver/examples/web/lifecycle/postrun.yaml +0 -7
  179. package/_testdriver/examples/web/lifecycle/prerun.yaml +0 -22
  180. package/_testdriver/lifecycle/postrun.yaml +0 -8
  181. package/_testdriver/lifecycle/prerun.yaml +0 -15
  182. package/_testdriver/lifecycle/provision.yaml +0 -25
  183. package/debug-screenshot-1763401388589.png +0 -0
  184. package/mcp-server/AI_GUIDELINES.md +0 -57
  185. package/scripts/view-test-results.mjs +0 -96
  186. package/styles/.vale-config/2-MDX.ini +0 -5
  187. package/styles/Microsoft/AMPM.yml +0 -9
  188. package/styles/Microsoft/Accessibility.yml +0 -30
  189. package/styles/Microsoft/Acronyms.yml +0 -64
  190. package/styles/Microsoft/Adverbs.yml +0 -272
  191. package/styles/Microsoft/Auto.yml +0 -11
  192. package/styles/Microsoft/Avoid.yml +0 -14
  193. package/styles/Microsoft/Contractions.yml +0 -50
  194. package/styles/Microsoft/Dashes.yml +0 -13
  195. package/styles/Microsoft/DateFormat.yml +0 -8
  196. package/styles/Microsoft/DateNumbers.yml +0 -40
  197. package/styles/Microsoft/DateOrder.yml +0 -8
  198. package/styles/Microsoft/Ellipses.yml +0 -9
  199. package/styles/Microsoft/FirstPerson.yml +0 -16
  200. package/styles/Microsoft/Foreign.yml +0 -13
  201. package/styles/Microsoft/Gender.yml +0 -8
  202. package/styles/Microsoft/GenderBias.yml +0 -42
  203. package/styles/Microsoft/GeneralURL.yml +0 -11
  204. package/styles/Microsoft/HeadingAcronyms.yml +0 -7
  205. package/styles/Microsoft/HeadingColons.yml +0 -8
  206. package/styles/Microsoft/HeadingPunctuation.yml +0 -13
  207. package/styles/Microsoft/Headings.yml +0 -28
  208. package/styles/Microsoft/Hyphens.yml +0 -14
  209. package/styles/Microsoft/Negative.yml +0 -13
  210. package/styles/Microsoft/Ordinal.yml +0 -13
  211. package/styles/Microsoft/OxfordComma.yml +0 -8
  212. package/styles/Microsoft/Passive.yml +0 -183
  213. package/styles/Microsoft/Percentages.yml +0 -7
  214. package/styles/Microsoft/Plurals.yml +0 -7
  215. package/styles/Microsoft/Quotes.yml +0 -7
  216. package/styles/Microsoft/RangeTime.yml +0 -13
  217. package/styles/Microsoft/Semicolon.yml +0 -8
  218. package/styles/Microsoft/SentenceLength.yml +0 -6
  219. package/styles/Microsoft/Spacing.yml +0 -8
  220. package/styles/Microsoft/Suspended.yml +0 -7
  221. package/styles/Microsoft/Terms.yml +0 -42
  222. package/styles/Microsoft/URLFormat.yml +0 -9
  223. package/styles/Microsoft/Units.yml +0 -16
  224. package/styles/Microsoft/Vocab.yml +0 -25
  225. package/styles/Microsoft/We.yml +0 -11
  226. package/styles/Microsoft/Wordiness.yml +0 -127
  227. package/styles/Microsoft/meta.json +0 -4
  228. package/styles/alex/Ablist.yml +0 -274
  229. package/styles/alex/Condescending.yml +0 -16
  230. package/styles/alex/Gendered.yml +0 -110
  231. package/styles/alex/LGBTQ.yml +0 -55
  232. package/styles/alex/OCD.yml +0 -10
  233. package/styles/alex/Press.yml +0 -12
  234. package/styles/alex/ProfanityLikely.yml +0 -1289
  235. package/styles/alex/ProfanityMaybe.yml +0 -282
  236. package/styles/alex/ProfanityUnlikely.yml +0 -251
  237. package/styles/alex/README.md +0 -27
  238. package/styles/alex/Race.yml +0 -85
  239. package/styles/alex/Suicide.yml +0 -26
  240. package/styles/alex/meta.json +0 -4
  241. package/styles/config/vocabularies/Docs/accept.txt +0 -47
  242. package/styles/config/vocabularies/Docs/reject.txt +0 -4
  243. package/styles/proselint/Airlinese.yml +0 -8
  244. package/styles/proselint/AnimalLabels.yml +0 -48
  245. package/styles/proselint/Annotations.yml +0 -9
  246. package/styles/proselint/Apologizing.yml +0 -8
  247. package/styles/proselint/Archaisms.yml +0 -52
  248. package/styles/proselint/But.yml +0 -8
  249. package/styles/proselint/Cliches.yml +0 -782
  250. package/styles/proselint/CorporateSpeak.yml +0 -30
  251. package/styles/proselint/Currency.yml +0 -5
  252. package/styles/proselint/Cursing.yml +0 -15
  253. package/styles/proselint/DateCase.yml +0 -7
  254. package/styles/proselint/DateMidnight.yml +0 -7
  255. package/styles/proselint/DateRedundancy.yml +0 -10
  256. package/styles/proselint/DateSpacing.yml +0 -7
  257. package/styles/proselint/DenizenLabels.yml +0 -52
  258. package/styles/proselint/Diacritical.yml +0 -95
  259. package/styles/proselint/GenderBias.yml +0 -45
  260. package/styles/proselint/GroupTerms.yml +0 -39
  261. package/styles/proselint/Hedging.yml +0 -8
  262. package/styles/proselint/Hyperbole.yml +0 -6
  263. package/styles/proselint/Jargon.yml +0 -11
  264. package/styles/proselint/LGBTOffensive.yml +0 -13
  265. package/styles/proselint/LGBTTerms.yml +0 -15
  266. package/styles/proselint/Malapropisms.yml +0 -8
  267. package/styles/proselint/Needless.yml +0 -358
  268. package/styles/proselint/Nonwords.yml +0 -38
  269. package/styles/proselint/Oxymorons.yml +0 -22
  270. package/styles/proselint/P-Value.yml +0 -6
  271. package/styles/proselint/RASSyndrome.yml +0 -30
  272. package/styles/proselint/README.md +0 -12
  273. package/styles/proselint/Skunked.yml +0 -13
  274. package/styles/proselint/Spelling.yml +0 -17
  275. package/styles/proselint/Typography.yml +0 -11
  276. package/styles/proselint/Uncomparables.yml +0 -50
  277. package/styles/proselint/Very.yml +0 -6
  278. package/styles/proselint/meta.json +0 -15
  279. package/styles/write-good/Cliches.yml +0 -702
  280. package/styles/write-good/E-Prime.yml +0 -32
  281. package/styles/write-good/Illusions.yml +0 -11
  282. package/styles/write-good/Passive.yml +0 -183
  283. package/styles/write-good/README.md +0 -27
  284. package/styles/write-good/So.yml +0 -5
  285. package/styles/write-good/ThereIs.yml +0 -6
  286. package/styles/write-good/TooWordy.yml +0 -221
  287. package/styles/write-good/Weasel.yml +0 -29
  288. package/styles/write-good/meta.json +0 -4
  289. package/test/mcp-example-test.yaml +0 -27
  290. package/test/test_parser.js +0 -47
  291. package/testdriver/acceptance-sdk/QUICK_REFERENCE.md +0 -61
  292. package/testdriver/acceptance-sdk/README.md +0 -128
  293. package/testdriver/acceptance-sdk/TEST_REPORTING.md +0 -245
  294. package/testdriver/acceptance-sdk/assert.test.mjs +0 -44
  295. package/testdriver/acceptance-sdk/scroll-until-text.test.mjs +0 -42
  296. package/testdriver/acceptance-sdk/setup/lifecycleHelpers.mjs +0 -239
  297. package/testdriver/acceptance-sdk/type-checking-demo.js +0 -49
  298. package/testdriver/acceptance-sdk/type.test.mjs +0 -84
  299. package/vale.ini +0 -18
  300. package/vitest.config.example.js +0 -19
  301. package/vitest.config.mjs.bak +0 -44
  302. /package/docs/{ARCHITECTURE.md → v7/_drafts/architecture.mdx} +0 -0
  303. /package/docs/{AWESOME_LOGS_QUICK_REF.md → v7/_drafts/awesome-logs-quick-ref.mdx} +0 -0
  304. /package/{CONTRIBUTING.md → docs/v7/_drafts/contributing.mdx} +0 -0
  305. /package/docs/v7/{guides → _drafts}/migration.mdx +0 -0
  306. /package/{PLUGIN_MIGRATION.md → docs/v7/_drafts/plugin-migration.mdx} +0 -0
  307. /package/{PROMPT_CACHE.md → docs/v7/_drafts/prompt-cache.mdx} +0 -0
  308. /package/docs/{SDK_AWESOME_LOGS.md → v7/_drafts/sdk-awesome-logs.mdx} +0 -0
  309. /package/docs/{sdk-browser-rendering.md → v7/_drafts/sdk-browser-rendering.mdx} +0 -0
  310. /package/{SDK_LOGGING.md → docs/v7/_drafts/sdk-logging.mdx} +0 -0
  311. /package/{SDK_MIGRATION.md → docs/v7/_drafts/sdk-migration.mdx} +0 -0
  312. /package/docs/{TEST_RECORDING.md → v7/_drafts/test-recording.mdx} +0 -0
  313. /package/docs/v7/{README.md → overview/readme.mdx} +0 -0
  314. /package/{debug-locate-response.js → test/manual/debug-locate-response.js} +0 -0
  315. /package/{test-find-api.js → test/manual/test-find-api.js} +0 -0
  316. /package/{test-prompt-cache.js → test/manual/test-prompt-cache.js} +0 -0
  317. /package/{test-sandbox-render.js → test/manual/test-sandbox-render.js} +0 -0
  318. /package/{test-sdk-methods.js → test/manual/test-sdk-methods.js} +0 -0
  319. /package/{test-sdk-refactor.js → test/manual/test-sdk-refactor.js} +0 -0
  320. /package/{test-stack-trace.mjs → test/manual/test-stack-trace.mjs} +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}/setup/globalTeardown.mjs +0 -0
  324. /package/{testdriver/acceptance-sdk → test/testdriver}/setup/vitestSetup.mjs +0 -0
@@ -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 TestDriver.ai Sandbox login page is displayed
@@ -1,9 +0,0 @@
1
- version: 6.0.0
2
- session: 685b38f0eb7de6d6447396cf
3
- steps:
4
- - prompt: fetch user data from API
5
- commands:
6
- - command: hover-text
7
- text: Sign In
8
- description: black button below the password field
9
- action: click
@@ -1,49 +0,0 @@
1
- # yaml-language-server: $schema=https://raw.githubusercontent.com/testdriverai/cli/refs/heads/main/schema.json
2
-
3
- version: 6.0.5
4
- session: 687aa621328371880ec75e89
5
- steps:
6
- - prompt: Show the desktop
7
- commands:
8
- - command: press-keys
9
- keys:
10
- - win
11
- - d
12
- - prompt: Open the context menu
13
- commands:
14
- - command: press-keys
15
- keys:
16
- - shift
17
- - f10
18
- - prompt: Hover over "New" in the context menu
19
- commands:
20
- - command: hover-text
21
- text: New
22
- description: new option in the open context menu on the desktop
23
- action: hover
24
- - prompt: Click "Text Document" in the context menu
25
- commands:
26
- - command: hover-text
27
- text: Text Document
28
- description: text document option in the new submenu of the desktop context menu
29
- action: click
30
- - prompt: Unfocus the "Text Document" text field
31
- commands:
32
- - command: press-keys
33
- keys:
34
- - esc
35
- - prompt: Drag the "New Text Document" icon to the "Recycle Bin"
36
- commands:
37
- - command: hover-text
38
- text: New Text Document
39
- description: new text document icon in the center of the desktop
40
- action: mouseDown
41
- - command: hover-text
42
- text: Recycle Bin
43
- description: recycle bin icon in the top left corner of the desktop
44
- action: mouseUp
45
-
46
- - prompt: '"New Text Document" icon is not on the Desktop'
47
- commands:
48
- - command: assert
49
- expect: the "New Text Document" icon is not visible on the Desktop
@@ -1,9 +0,0 @@
1
- version: 6.0.11
2
- session: 682f5fc22856e2eb40664261
3
- steps:
4
- - prompt: run login test
5
- commands:
6
- - command: run
7
- file: ./snippets/login.yaml
8
- - command: assert
9
- expect: home page appears
@@ -1,29 +0,0 @@
1
- version: 5.7.7
2
- session: 682f5fc22856e2eb40664269
3
- steps:
4
- - prompt: fetch user data from API
5
- commands:
6
- - command: exec
7
- output: user
8
- lang: js
9
- code: >
10
- const response = await
11
- fetch('https://jsonplaceholder.typicode.com/users');
12
-
13
- const user = await response.json();
14
-
15
- console.log('user', user[0]);
16
-
17
- result = user[0].email;
18
- - command: hover-text
19
- text: Username
20
- description: input field for username
21
- action: click
22
- - command: type
23
- text: ${OUTPUT.user}
24
- - prompt: assert that the username field shows a valid email address
25
- commands:
26
- - command: assert
27
- expect: >-
28
- the username field contains "Sincere@april.biz" which is a valid email
29
- address
@@ -1,43 +0,0 @@
1
- version: 6.0.1-canary.dd4927e.0
2
- session: 686f219f56143a3ffe789d1e
3
- steps:
4
- - prompt: set the date for our test
5
- commands:
6
- - command: exec
7
- lang: pwsh
8
- output: queryString
9
- code: |
10
- $date = (Get-Date).AddMonths(1)
11
- Write-Output $date.ToString("yyyy-MM-dd")
12
- - command: assert
13
- expect: ${OUTPUT.queryString} is a valid date
14
- - prompt: set the date for our assertion
15
- commands:
16
- - command: exec
17
- lang: pwsh
18
- output: expectedDate
19
- code: |
20
- $date = (Get-Date).AddMonths(1)
21
- Write-Output $date.ToString("ddd MMM d yyyy")
22
- # Go to a public calendar that accepts query strings to set the date
23
- - prompt: >-
24
- now press ctrl + l, then type
25
- https://teamup.com/ks48cf2135e7e080bc?view=d&date=${OUTPUT.queryString} and press enter
26
- commands:
27
- - command: focus-application
28
- name: Google Chrome
29
- - command: press-keys
30
- keys:
31
- - ctrl
32
- - l
33
- - command: type
34
- text: https://teamup.com/ks48cf2135e7e080bc?view=d&date=${OUTPUT.queryString}
35
- - command: press-keys
36
- keys:
37
- - enter
38
- - prompt: assert that the date ${OUTPUT.expectedDate} shows
39
- commands:
40
- - command: focus-application
41
- name: Google Chrome
42
- - command: assert
43
- expect: the text ${OUTPUT.expectedDate} is visible on screen
@@ -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}"