testdriverai 6.1.10 → 6.2.0

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 (67) hide show
  1. package/.github/workflows/acceptance-tests.yml +0 -2
  2. package/.github/workflows/acceptance-v6.yml +0 -2
  3. package/.github/workflows/lint.yml +1 -4
  4. package/.github/workflows/publish-canary.yml +0 -2
  5. package/.github/workflows/publish-latest.yml +0 -1
  6. package/.prettierignore +0 -1
  7. package/.vscode/settings.json +1 -4
  8. package/agent/events.js +10 -1
  9. package/agent/index.js +76 -104
  10. package/agent/interface.js +6 -43
  11. package/agent/lib/censorship.js +10 -15
  12. package/agent/lib/commander.js +18 -31
  13. package/agent/lib/commands.js +63 -81
  14. package/agent/lib/debugger-server.js +5 -0
  15. package/agent/lib/generator.js +2 -2
  16. package/agent/lib/redraw.js +1 -0
  17. package/agent/lib/sandbox.js +2 -0
  18. package/agent/lib/sdk.js +1 -2
  19. package/agent/lib/source-mapper.js +1 -1
  20. package/agent/lib/system.js +6 -1
  21. package/docs/account/enterprise.mdx +12 -8
  22. package/docs/account/pricing.mdx +2 -2
  23. package/docs/account/projects.mdx +0 -5
  24. package/docs/cli/overview.mdx +6 -6
  25. package/docs/commands/assert.mdx +0 -1
  26. package/docs/commands/hover-text.mdx +1 -3
  27. package/docs/commands/match-image.mdx +4 -5
  28. package/docs/commands/press-keys.mdx +8 -6
  29. package/docs/commands/scroll-until-image.mdx +7 -8
  30. package/docs/commands/scroll-until-text.mdx +6 -7
  31. package/docs/commands/wait-for-image.mdx +4 -5
  32. package/docs/commands/wait-for-text.mdx +5 -6
  33. package/docs/docs.json +40 -42
  34. package/docs/getting-started/vscode.mdx +56 -67
  35. package/docs/guide/environment-variables.mdx +5 -5
  36. package/docs/overview/comparison.mdx +39 -22
  37. package/docs/overview/quickstart.mdx +32 -84
  38. package/docs/styles.css +1 -10
  39. package/interfaces/cli/lib/base.js +6 -27
  40. package/interfaces/cli/utils/factory.js +4 -17
  41. package/interfaces/logger.js +5 -4
  42. package/interfaces/readline.js +1 -1
  43. package/package.json +3 -3
  44. package/schema.json +2 -22
  45. package/testdriver/acceptance/hover-text.yaml +1 -2
  46. package/testdriver/acceptance/prompt.yaml +1 -4
  47. package/testdriver/acceptance/scroll-until-image.yaml +0 -5
  48. package/testdriver/{lifecycle/prerun.yaml → examples/web/lifecycle/provision.yaml} +0 -6
  49. package/testdriver/lifecycle/provision.yaml +20 -0
  50. package/.github/workflows/self-hosted.yml +0 -102
  51. package/docs/apps/tauri-apps.mdx +0 -361
  52. package/docs/getting-started/playwright.mdx +0 -342
  53. package/docs/getting-started/self-hosting.mdx +0 -370
  54. package/docs/guide/dashcam.mdx +0 -118
  55. package/docs/images/content/self-hosted/launchtemplateid.png +0 -0
  56. package/docs/images/content/vscode/ide-full.png +0 -0
  57. package/docs/images/content/vscode/running.png +0 -0
  58. package/interfaces/cli/commands/generate.js +0 -3
  59. package/setup/aws/cloudformation.yaml +0 -463
  60. package/setup/aws/spawn-runner.sh +0 -190
  61. package/testdriver/edge-cases/js-exception.yaml +0 -8
  62. package/testdriver/edge-cases/js-promise.yaml +0 -19
  63. package/testdriver/edge-cases/lifecycle/postrun.yaml +0 -10
  64. package/testdriver/edge-cases/success-test.yaml +0 -9
  65. package/testdriver/examples/web/lifecycle/postrun.yaml +0 -7
  66. package/testdriver/examples/web/lifecycle/prerun.yaml +0 -17
  67. package/testdriver/lifecycle/postrun.yaml +0 -7
@@ -24,15 +24,15 @@ We specialize in testing scenarios that other tools can't handle - desktop appli
24
24
 
25
25
  ## Enterprise Plans
26
26
 
27
- TestDriver Enterprise plans start at **$2,000/month** and include:
27
+ TestDriver Enterprise plans start at **$995/month** and include:
28
28
 
29
- - A pilot program with our expert team to create 4 custom tests within your first 4 weeks (4x4 Guarantee).
30
- - 4 parallel tests
31
29
  - **12,500 runner minutes per month**: Sufficient capacity for continuous testing of your custom test suite.
30
+ - Enterprise-grade test dashboards with advanced analytics.
32
31
  - Full CI/CD pipeline integration with custom configurations.
33
32
  - Dedicated infrastructure and ongoing support for complex testing scenarios.
33
+ - Expert test creation and maintenance services.
34
34
 
35
- For detailed pricing and contract information our [Pricing](/account/pricing) page. Want unlimited minutes or enhanced security? We also support self-hosted options with 16 parallel tests starting at $2,000/month. See our [Self Hosting](/getting-started/self-hosting) docs for more info.
35
+ For detailed pricing and contract information, see [Contract Details](#contract-details). For other plans, visit our [Pricing](/account/pricing) page.
36
36
 
37
37
  <CardGroup cols={3}>
38
38
  <Card title="Custom Desktop & Extension Testing">
@@ -66,14 +66,17 @@ TestDriver Enterprise provides comprehensive support for fast-moving teams with
66
66
 
67
67
  Testing complex applications requires more than standard automation tools. Desktop applications, browser extensions, and multi-platform workflows demand specialized infrastructure, custom integrations, and deep technical expertise. TestDriver Enterprise provides the complete solution - from initial setup through ongoing maintenance and support.
68
68
 
69
+ For more details, see [Contract Details](#contract-details).
70
+
69
71
  ---
70
72
 
71
73
  ## Implementation Process
72
74
 
73
75
  1. **Initial Consultation**: Discuss your specific testing challenges, application architecture, and infrastructure requirements.
74
- 2. **Expert Test Development**: Our team develops 4 custom tests designed specifically for your application's critical user flows and business logic.
75
- 3. **Integration & Deployment**: Implement tests within your CI/CD pipeline with custom monitoring and reporting configurations.
76
- 4. **Team Training & Ongoing Support**: Comprehensive training for your team plus ongoing technical support and consultation.
76
+ 2. **Custom Infrastructure Design**: Configure specialized testing environments tailored to your technology stack and workflow requirements.
77
+ 3. **Expert Test Development**: Our team develops 4 custom tests designed specifically for your application's critical user flows and business logic.
78
+ 4. **Integration & Deployment**: Implement tests within your CI/CD pipeline with custom monitoring and reporting configurations.
79
+ 5. **Team Training & Ongoing Support**: Comprehensive training for your team plus ongoing technical support and consultation.
77
80
 
78
81
  Complex applications - particularly desktop software, browser extensions, and multi-platform workflows - present unique testing challenges that require specialized infrastructure and deep technical expertise. TestDriver Enterprise addresses these challenges with custom solutions designed specifically for your application and development process.
79
82
 
@@ -83,6 +86,7 @@ Complex applications - particularly desktop software, browser extensions, and mu
83
86
 
84
87
  | Service | Timeline | Description |
85
88
  | --------------------------------- | ------------- | ------------------------------------------------------------------------------------------------ |
89
+ | **Infrastructure Design** | First 7 Days | Analysis and configuration of specialized testing environments for your application stack. |
86
90
  | **Requirements Analysis** | First 7 Days | Comprehensive review of testing requirements and technical specifications. |
87
91
  | **Custom Test Development** | First 4 Weeks | Expert creation of 4 fully customized tests (4x4 Guarantee) tailored to your critical workflows. |
88
92
  | **Training & Knowledge Transfer** | First 30 Days | Technical training for your team and establishment of ongoing support processes. |
@@ -99,7 +103,7 @@ Complex applications - particularly desktop software, browser extensions, and mu
99
103
  - **Service Level**: Dedicated support team and technical consultation included.
100
104
  - **Usage Tracking**: Monthly runner minute allocation with standard overage rates.
101
105
  - **Custom Infrastructure**: Specialized testing environments included for complex applications.
102
- - **Enterprise Options**: [Self hosting](/getting-started/self-hosting) configurations available.
106
+ - **Enterprise Options**: On-premises and BYOC (Bring Your Own Cloud) configurations available.
103
107
 
104
108
  ---
105
109
 
@@ -19,12 +19,12 @@ TestDriver offers a range of pricing plans to suit different needs, from individ
19
19
  </Card>
20
20
  <Card title="Enterprise" icon="shield">
21
21
  Need advanced features? Contact us for tailored solutions. Starting at
22
- $2,000/month.
22
+ $995/month.
23
23
  </Card>
24
24
  </CardGroup>
25
25
 
26
26
  <Tip>
27
- Every plan comes with access to the Playwright SDK to get you off the starting
27
+ Every plan starts with $100 in TestDriver credits to get you off the starting
28
28
  line!
29
29
  </Tip>
30
30
 
@@ -23,11 +23,6 @@ From the Project view, you can see all the replays (Dashes) stored for that proj
23
23
 
24
24
  When you create a new Project, you can also enable the <Icon icon="jira" /> Jira integration to create issues automatically each time a replay (Dash) is created.
25
25
 
26
- <Info>
27
- The project ID can be used in conjunction with your `lifecycle/postrun.yaml`
28
- script to automatically assign a replay to a project. For more info see the
29
- (Dashcam section)[/guide/dashcam].
30
- </Info>
31
26
  <Frame caption="Click a Project to view its replays">
32
27
  <img src="/images/content/account/newprojectsettings.png" />
33
28
  </Frame>
@@ -15,11 +15,11 @@ npx testdriverai@latest <command> [options]
15
15
 
16
16
  ## Available commands
17
17
 
18
- | Command | Description |
19
- | :----------------------: | :----------------------------------------------------------- |
20
- | [`run`](/commands/run) | Executes a TestDriver test. |
21
- | [`edit`](/commands/edit) | Launch interactive mode. |
22
- | [`help`](/commands/help) | Displays help information for the CLI or a specific command. |
18
+ | Command | Description |
19
+ | :--------------------: | :----------------------------------------------------------- |
20
+ | [`run`](/commands/run) | Executes a TestDriver test. |
21
+ | [`edit`](/commands/edit) | Launch interactive mode. |
22
+ | [`help`](/commands/help) | Displays help information for the CLI or a specific command. |
23
23
 
24
24
  ## Available Flags
25
25
 
@@ -27,9 +27,9 @@ npx testdriverai@latest <command> [options]
27
27
  | :------------------ | :----------------------------------------------------------------------------------------- |
28
28
  | `--heal` | Launch exploratory mode and attemp to recover if an error or failing state is encountered. |
29
29
  | `--write` | Ovewrite test file with new commands resulting from agentic testing |
30
+ | `--headless` | Run test without opening a browser window (useful for CI/CD environments) |
30
31
  | `--new` | Create a new sandbox environment for the test run. |
31
32
  | `--summary=<value>` | Output file where AI summary should be saved. |
32
- | `--junit=<value>` | Output file where junit report should be saved. |
33
33
 
34
34
  ## Example usage
35
35
 
@@ -22,7 +22,6 @@ The `assert` command validates that a specific condition is true. It ensures tha
22
22
  | -------- | --------- | ------------------------------------------------------------------------------------------------------------------ |
23
23
  | `expect` | `string` | The condition to check. This should describe what you expect to see on the screen. |
24
24
  | `async` | `boolean` | (Optional) If set to `true`, the test will continue without waiting for the assertion to pass. Default is `false`. |
25
- | `invert` | `boolean` | (Optional) If set to `true`, will fail if the assertion passes. |
26
25
 
27
26
  ## Example usage
28
27
 
@@ -24,7 +24,6 @@ The `hover-text` command is used to locate text on the screen based on a descrip
24
24
  | `description` | `string` | A description of the text and what it represents. The actual text itself shouldn't be included here. |
25
25
  | `action` | `string` | The action to take when the text is found. Available actions are: `click`, `right-click`, `double-click`, `hover`. Also supports `drag-start` and `drag-end` for [dragging text](/commands/hover-image#drag-functionality). |
26
26
  | `method` | `enum` | The matching algorithm to use. Possible values are `turbo` (default) and `ai`. |
27
- | `timeout` | `number` | **(Optional)** The duration in milliseconds to wait for the text to appear. Default is `5000` (5 seconds). |
28
27
 
29
28
  ## Example usage
30
29
 
@@ -33,12 +32,11 @@ command: hover-text
33
32
  text: Sign Up
34
33
  description: link in the header
35
34
  action: click
36
- timeout: 10000 # 10 seconds
37
35
  ```
38
36
 
39
37
  ## Gotchas
40
38
 
41
- - If the text can't be located, it will internally call the [wait-for-text](/commands/wait-for-text) command and wait for the text to appear. The wait `timeout` is 5 seconds by default, and the command fails if the text is not found.
39
+ - If the text can't be located, the command will fail. Ensure the text is visible on the screen and matches exactly.
42
40
  - Variations in font size, style, or screen resolution may affect detection accuracy.
43
41
 
44
42
  ## Notes
@@ -18,11 +18,10 @@ The `match-image` command is used to locate an image on the screen by matching i
18
18
 
19
19
  ## Arguments
20
20
 
21
- | Argument | Type | Description |
22
- | -------- | --------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
23
- | `path` | `string` | The path to the image that needs to be matched. The path needs to be relative to the current test file |
24
- | `action` | `string` | The action to take when the image is found. Available actions are: `click`, `right-click`, `double-click`, `hover`. Also supports `drag-start` and `drag-end` for [dragging images](/commands/hover-image#drag-functionality) |
25
- | `invert` | `boolean` | (Optional) If set to `true`, the command will pass when the specified image is NOT detected. Default is `false`. |
21
+ | Argument | Type | Description |
22
+ | -------- | -------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
23
+ | `path` | `string` | The path to the image that needs to be matched. The path needs to be relative to the current test file |
24
+ | `action` | `string` | The action to take when the image is found. Available actions are: `click`, `right-click`, `double-click`, `hover`. Also supports `drag-start` and `drag-end` for [dragging images](/commands/hover-image#drag-functionality) |
26
25
 
27
26
  ## Example usage
28
27
 
@@ -28,7 +28,8 @@ The keys supported are the standard [Windows keys](https://learn.microsoft.com/e
28
28
 
29
29
  <Tabs>
30
30
  <Tab title="Modifiers">
31
- - `ctrl`, `shift`, `alt`, `command`, `option`, `win` - Left/right variants:
31
+ - `ctrl`, `shift`, `alt`, `command`, `option`, `win`
32
+ - Left/right variants:
32
33
  `ctrlleft`, `ctrlright`, `shiftleft`, `shiftright`, `altleft`, `altright`,
33
34
  `optionleft`, `optionright`, `winleft`, `winright`
34
35
  </Tab>
@@ -36,7 +37,9 @@ The keys supported are the standard [Windows keys](https://learn.microsoft.com/e
36
37
  - All ASCII printable characters: letters `a`–`z`, digits `0`–`9`, common
37
38
  punctuation, and `space`.
38
39
  </Tab>
39
- <Tab title="Function keys">- `f1`–`f24`</Tab>
40
+ <Tab title="Function keys">
41
+ - `f1`–`f24`
42
+ </Tab>
40
43
  <Tab title="Navigation">
41
44
  - `up`, `down`, `left`, `right`, `home`, `end`, `pageup`, `pagedown`,
42
45
  `pgup`, `pgdn`
@@ -54,10 +57,9 @@ The keys supported are the standard [Windows keys](https://learn.microsoft.com/e
54
57
  `separator`
55
58
  </Tab>
56
59
  <Tab title="Media & Browser">
57
- - `playpause`, `stop`, `nexttrack`, `prevtrack`, `volumedown`, `volumeup`,
58
- `volumemute` - `browserback`, `browserforward`, `browserrefresh`,
59
- `browsersearch`, `browserstop`, `browserfavorites`, `browserhome` -
60
- `launchapp1`, `launchapp2`, `launchmail`, `launchmediaselect`
60
+ - `playpause`, `stop`, `nexttrack`, `prevtrack`, `volumedown`, `volumeup`, `volumemute`
61
+ - `browserback`, `browserforward`, `browserrefresh`, `browsersearch`, `browserstop`, `browserfavorites`, `browserhome`
62
+ - `launchapp1`, `launchapp2`, `launchmail`, `launchmediaselect`
61
63
  </Tab>
62
64
  <Tab title="IME / International">
63
65
  - `hangul`, `hanguel`, `hanja`, `junja`, `kana`, `kanji`, `modechange`,
@@ -18,14 +18,13 @@ The `scroll-until-image` command is used to scroll the screen in a specified dir
18
18
 
19
19
  ## Arguments
20
20
 
21
- | Argument | Type | Description |
22
- | :-----------: | :-------: | :---------------------------------------------------------------------------------------------------------------------- |
23
- | `description` | `string` | A description of the image and what it represents. |
24
- | `direction` | `string` | (Optional) The direction to scroll. Available directions are: `up`, `down`, `left`, `right`. Defaults to `down`. |
25
- | `distance` | `number` | (Optional) The maximum number of pixels to scroll before giving up. Default is `10000`. |
26
- | `method` | `string` | (Optional) The method to use to scroll the page. Available methods are: `mouse` and `keyboard`. Defaults to `keyboard`. |
27
- | `path` | `string` | (Optional) The relative path to the image file that needs to be matched on the screen. |
28
- | `invert` | `boolean` | (Optional) If set to `true`, the command will scroll until the specified image is NOT detected. Default is `false`. |
21
+ | Argument | Type | Description |
22
+ | :-----------: | :------: | :---------------------------------------------------------------------------------------------------------------------- |
23
+ | `description` | `string` | A description of the image and what it represents. |
24
+ | `direction` | `string` | (Optional) The direction to scroll. Available directions are: `up`, `down`, `left`, `right`. Defaults to `down`. |
25
+ | `distance` | `number` | (Optional) The maximum number of pixels to scroll before giving up. Default is `10000`. |
26
+ | `method` | `string` | (Optional) The method to use to scroll the page. Available methods are: `mouse` and `keyboard`. Defaults to `keyboard`. |
27
+ | `path` | `string` | (Optional) The relative path to the image file that needs to be matched on the screen. |
29
28
 
30
29
  <Note>
31
30
  Use either the `description` or `path` argument to match an image on the
@@ -18,13 +18,12 @@ The `scroll-until-text` command is used to scroll the screen in a specified dire
18
18
 
19
19
  ## Arguments
20
20
 
21
- | Argument | Type | Description |
22
- | :---------: | :-------: | :---------------------------------------------------------------------------------------------------------------------- |
23
- | `text` | `string` | The text to find on the screen. Longer and unique are better. Note this is **case sensitive** |
24
- | `direction` | `string` | (Optional) The direction to scroll. Available directions are: `up`, `down`, `left`, `right`. Defaults to `down`. |
25
- | `method` | `string` | (Optional) The method to use to scroll the page. Available methods are: `mouse` and `keyboard`. Defaults to `keyboard`. |
26
- | `distance` | `number` | (Optional) The maximum number of pixels to scroll before giving up. Default is `10000`. |
27
- | `invert` | `boolean` | (Optional) If set to `true`, the command will scroll until the specified text is NOT detected. Default is `false`. |
21
+ | Argument | Type | Description |
22
+ | :---------: | :------: | :---------------------------------------------------------------------------------------------------------------------- |
23
+ | `text` | `string` | The text to find on the screen. Longer and unique are better. Note this is **case sensitive** |
24
+ | `direction` | `string` | (Optional) The direction to scroll. Available directions are: `up`, `down`, `left`, `right`. Defaults to `down`. |
25
+ | `method` | `string` | (Optional) The method to use to scroll the page. Available methods are: `mouse` and `keyboard`. Defaults to `keyboard`. |
26
+ | `distance` | `number` | (Optional) The maximum number of pixels to scroll before giving up. Default is `10000`. |
28
27
 
29
28
  <Note>
30
29
  If the method is `keyboard` it just searches for the string by doing `ctrl + f`.
@@ -18,11 +18,10 @@ The `wait-for-image` command waits until the specified image is detected on the
18
18
 
19
19
  ## Arguments
20
20
 
21
- | Argument | Type | Description |
22
- | :-----------: | :-------: | :---------------------------------------------------------------------------------------------------------------- |
23
- | `description` | `string` | A description of the image. |
24
- | `timeout` | `number` | (Optional) The duration in milliseconds to wait for the image to appear. Default is `10000` (10 seconds). |
25
- | `invert` | `boolean` | (Optional) If set to `true`, the command will wait until the specified image is NOT detected. Default is `false`. |
21
+ | Argument | Type | Description |
22
+ | :-----------: | :------: | :-------------------------------------------------------------------------------------------------------- |
23
+ | `description` | `string` | A description of the image. |
24
+ | `timeout` | `number` | (Optional) The duration in milliseconds to wait for the image to appear. Default is `10000` (10 seconds). |
26
25
 
27
26
  ## Example usage
28
27
 
@@ -18,12 +18,11 @@ The `wait-for-text` command waits until the specified text is detected on the sc
18
18
 
19
19
  ## Arguments
20
20
 
21
- | Argument | Type | Description |
22
- | :-------: | :-------: | :--------------------------------------------------------------------------------------------------------------- |
23
- | `text` | `string` | The text to find on the screen. |
24
- | `timeout` | `number` | (Optional) The duration in milliseconds to wait for the text to appear. Default is `5000` (5 seconds). |
25
- | `method` | `enum` | (Optional) The matching algorithm to use. Possible values are `ai` and `turbo`. Default is `turbo` |
26
- | `invert` | `boolean` | (Optional) If set to `true`, the command will wait until the specified text is NOT detected. Default is `false`. |
21
+ | Argument | Type | Description |
22
+ | :-------: | :------: | :----------------------------------------------------------------------------------------------------- |
23
+ | `text` | `string` | The text to find on the screen. |
24
+ | `timeout` | `number` | (Optional) The duration in milliseconds to wait for the text to appear. Default is `5000` (5 seconds). |
25
+ | `method` | `enum` | (Optional) The matching algorithm to use. Possible values are `ai` and `turbo`. Default is `turbo` |
27
26
 
28
27
  ## Example usage
29
28
 
package/docs/docs.json CHANGED
@@ -38,6 +38,7 @@
38
38
  "group": "CLI",
39
39
  "icon": "terminal",
40
40
  "pages": [
41
+ "/getting-started/cli",
41
42
  "/cli/overview",
42
43
  {
43
44
  "group": "Commands",
@@ -49,10 +50,7 @@
49
50
  ]
50
51
  }
51
52
  ]
52
- },
53
- "/getting-started/self-hosting",
54
- "/getting-started/playwright",
55
- "/getting-started/vscode"
53
+ }
56
54
  ]
57
55
  },
58
56
  {
@@ -65,8 +63,7 @@
65
63
  "apps/static-websites",
66
64
  "apps/desktop-apps",
67
65
  "apps/chrome-extensions",
68
- "apps/mobile-apps",
69
- "apps/tauri-apps"
66
+ "apps/mobile-apps"
70
67
  ]
71
68
  },
72
69
  {
@@ -103,7 +100,6 @@
103
100
  "/guide/authentication",
104
101
  "/guide/variables",
105
102
  "/guide/lifecycle",
106
- "/guide/dashcam",
107
103
  "/guide/environment-variables",
108
104
  "/action/ami"
109
105
  ]
@@ -157,32 +153,39 @@
157
153
  {
158
154
  "group": "Reference",
159
155
  "pages": [
160
- {
161
- "group": "YAML",
162
- "icon": "file-code",
163
- "pages": [
164
- "/commands/assert",
165
- "/commands/exec",
166
- "/commands/focus-application",
167
- "/commands/hover-image",
168
- "/commands/hover-text",
169
- "/commands/if",
170
- "/commands/match-image",
171
- "/commands/press-keys",
172
- "/commands/remember",
173
- "/commands/run",
174
- "/commands/scroll",
175
- "/commands/scroll-until-image",
176
- "/commands/scroll-until-text",
177
- "/commands/type",
178
- "/commands/wait",
179
- "/commands/wait-for-image",
180
- "/commands/wait-for-text"
181
- ]
182
- }
156
+ "/commands/assert",
157
+ "/commands/exec",
158
+ "/commands/focus-application",
159
+ "/commands/hover-image",
160
+ "/commands/hover-text",
161
+ "/commands/if",
162
+ "/commands/match-image",
163
+ "/commands/press-keys",
164
+ "/commands/remember",
165
+ "/commands/run",
166
+ "/commands/scroll",
167
+ "/commands/scroll-until-image",
168
+ "/commands/scroll-until-text",
169
+ "/commands/type",
170
+ "/commands/wait",
171
+ "/commands/wait-for-image",
172
+ "/commands/wait-for-text"
183
173
  ]
184
174
  }
185
- ]
175
+ ],
176
+ "global": {
177
+ "anchors": [
178
+ {
179
+ "anchor": "Book a Demo",
180
+ "href": "https://testdriver.ai/demo",
181
+ "icon": "calendar"
182
+ }
183
+ ]
184
+ }
185
+ },
186
+ "modeToggle": {
187
+ "enabled": false,
188
+ "default": "dark"
186
189
  },
187
190
  "logo": {
188
191
  "light": "/images/template/light.png",
@@ -195,18 +198,13 @@
195
198
  "label": "Discord",
196
199
  "icon": "discord",
197
200
  "href": "https://discord.com/invite/cWDFW8DzPm"
198
- },
199
- {
200
- "label": "Book a Demo",
201
- "href": "https://form.typeform.com/to/UECf9rDx?typeform-source=docs.testdriver.ai",
202
- "icon": "calendar"
203
- },
204
- {
205
- "icon": "gauge-high",
206
- "label": "Dashboard",
207
- "href": "https://app.testdriver.ai"
208
201
  }
209
- ]
202
+ ],
203
+ "primary": {
204
+ "type": "button",
205
+ "label": "Dashboard",
206
+ "href": "https://app.testdriver.ai"
207
+ }
210
208
  },
211
209
  "footer": {
212
210
  "socials": {
@@ -1,86 +1,75 @@
1
1
  ---
2
2
  title: "Install the TestDriver VS Code Extension"
3
- sidebarTitle: "VS Code"
3
+ sidebarTitle: "VS Code Setup"
4
4
  description: "Comprehensive guide to installing and setting up TestDriver for VS Code"
5
5
  icon: "file-code"
6
- tag: BETA
7
6
  ---
8
7
 
9
- <iframe
10
- className="w-full aspect-video rounded-xl"
11
- src="https://www.youtube.com/embed/dell_2tI6nc"
12
- title="YouTube video player"
13
- frameBorder="0"
14
- allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
15
- allowFullScreen
16
- ></iframe>
17
-
18
- The TestDriver VS Code extension is a powerful tool that integrates TestDriver's AI-driven test generation capabilities directly into your development environment:
19
-
20
- - Get started with example scripts for different platforms
21
- - Get syntax highlighting and autocompletion for [TestDriver YAML](/getting-started/editing)
22
- - Chat with the TestDriver agent to generate tests based on your requirements
23
- - Save and manage your tests directly within your project
24
- - Run and debug tests directly from the IDE
25
- - View test results and logs within the IDE
26
-
27
- <Tip>
28
- The TestDriver VS Code Extension is currently in beta. If you encounter any
29
- issues or have feedback, please let us know [in
30
- Discord](https://discord.com/invite/cWDFW8DzPm)
31
- </Tip>
8
+ <Card
9
+ title="Get the VS Code Extension"
10
+ icon="link"
11
+ href="https://marketplace.visualstudio.com/items?itemName=testdriver.testdriver"
12
+ >
13
+ Turn your IDE into a powerful computer-use automation tool with our VS Code
14
+ extension.
15
+ </Card>
32
16
 
33
17
  <Steps>
34
- <Step title="Install the VS Code Extension">
35
-
36
- Click the button below to install the TestDriver extension for your preferred IDE. Then, follow the setup guide and chat with TestDriver to create your first test.
37
-
38
- <Card
39
- horizontal
40
- title="VS Code"
41
- arrow
42
- href="vscode:extension/testdriver.testdriver"
43
- icon="/images/content/extension/vscode.svg"
44
- ></Card>
45
-
46
- <Card
47
- horizontal
48
- title="Cursor"
49
- arrow
50
- href="cursor:extension/testdriver.testdriver"
51
- icon="/images/content/extension/cursor.svg"
52
-
53
- > </Card>
54
-
55
- <Card
56
- horizontal
57
- title="Windsurf"
58
- arrow
59
- href="windsurf:extension/testdriver.testdriver"
60
- icon="/images/content/extension/windsurf.svg"
61
- ></Card>
18
+ <Step title="Initialize Your Project" stepNumber={1}>
19
+ Set up your project with:
20
+
21
+ ```bash
22
+ npx testdriverai@latest init
23
+ ```
24
+
25
+ This creates a `.env` file and sample workflow files.
62
26
 
63
27
  </Step>
64
- <Step title="Set Your TestDriver API Key">
65
-
66
- After installing the extension, you'll need to set your TestDriver API key in the extension settings.
28
+ <Step title="Run TestDriver in Interactive Mode" stepNumber={2}>
29
+ Start TestDriver in interactive mode to create and refine tests dynamically:
67
30
 
68
- 1. Open the command palette (Cmd+Shift+P or Ctrl+Shift+P).
69
- 2. Search for "Preferences: Open Settings (UI)" and select it.
70
- 3. In the search bar, type "TestDriver" to filter the settings.
71
- 4. Find the "TestDriver: Set API Key" field and enter your API key from [the TestDriver dashboard](https://app.testdriver.ai/team).
31
+ ```bash
32
+ npx testdriverai@latest
33
+ ```
72
34
 
73
- <Tip>You can also set the `TD_API_KEY` environment variable in your system if you prefer not to enter it directly in the extension settings.</Tip>
35
+ Once started, you can use commands like `/explore`, `/run`, and `/save` to interactively build and test your flows.
74
36
 
75
37
  </Step>
76
- <Step title="Choose a Platform">
77
- Click on the TestDriver icon in the sidebar to open the extension panel and choose a platform to get started (Web, Desktop, or Mobile).
38
+ <Step title="Define Your Test Steps" stepNumber={3}>
39
+ Use natural language to describe what you want to test. For example:
40
+
41
+ ```
42
+ > Open Google Chrome and search for "testdriverai"
43
+ ```
44
+
45
+ TestDriver will generate steps like:
46
+
47
+ ```yaml
48
+ - command: focus-application
49
+ name: Google Chrome
50
+ - command: hover-text
51
+ text: Search Google or type a URL
52
+ description: main search bar
53
+ action: click
54
+ - command: type
55
+ text: testdriverai
56
+ - command: press-keys
57
+ keys:
58
+ - enter
59
+ ```
60
+
78
61
  </Step>
79
- <Step title="Create Your First Test">
80
- Now chat with the TestDriver agent to create your first test! Describe what you want to test, and the agent will generate the test steps for you.
62
+ <Step title="Refine and Save Your Test" stepNumber={4}>
63
+ - Save your test with `/save` to generate a reusable YAML file.
64
+ - Use `/run` to run the test.
81
65
  </Step>
82
- <Step title="Run your test">
83
- Run your test by clicking the "Run" button in the extension panel. You can view the test results and logs directly within VS Code's Test Explorer. [Learn more about running tests in VS Code](https://code.visualstudio.com/docs/debugtest/testing).
66
+ <Step title="Run Saved Tests" stepNumber={5}>
67
+ Once saved, you can run your test file anytime:
68
+
69
+ ```bash
70
+ npx testdriverai@latest run path/to/test.yaml
71
+ ```
72
+
84
73
  </Step>
85
74
  </Steps>
86
75
 
@@ -11,13 +11,13 @@ import GitignoreWarning from "/snippets/gitignore-warning.mdx";
11
11
  The supported environment variables in TestDriver are:
12
12
 
13
13
  <div className="env-vars-table">
14
- | Variable | Type | Description |
14
+ | Variable | Type | Description |
15
15
  |:---------------:|:---------:|---------------------------------------------------------------------------------|
16
- | TD_ANALYTICS | boolean | Send analytics to TestDriver servers. This helps
17
- provide feedback to inform our roadmap. | | TD_API_KEY | string | Set this to
18
- spawn VMs with TestDriver Pro. |
16
+ | TD_ANALYTICS | boolean | Send analytics to TestDriver servers. This helps provide feedback to inform our roadmap. |
17
+ | TD_API_KEY | string | Set this to spawn VMs with TestDriver Pro. |
19
18
  </div>
20
- <GitignoreWarning />
19
+
20
+ <GitignoreWarning/>
21
21
  ## Example
22
22
 
23
23
  ```bash .env