testdriverai 7.2.14 → 7.2.16

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.
@@ -29,40 +29,14 @@ jobs:
29
29
  - name: Install Sentry CLI
30
30
  run: npm install -g @sentry/cli
31
31
 
32
- - name: Sentry Cron Check-in (Start)
33
- env:
34
- SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
35
- SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
36
- SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
32
+ - name: Run Linux tests with Sentry Cron monitoring
37
33
  run: |
38
- CHECK_IN_ID=$(sentry-cli monitors checkin testdriver-linux-acceptance --status in_progress 2>&1 | grep -oE '[a-f0-9-]{36}' | head -1)
39
- echo "CHECK_IN_ID=$CHECK_IN_ID" >> $GITHUB_ENV
40
-
41
- - name: Run Linux tests
42
- id: tests
43
- run: npx vitest run test/testdriver/*.test.mjs
34
+ sentry-cli monitors run testdriver-linux-acceptance -- npx vitest run test/testdriver/*.test.mjs
44
35
  env:
36
+ SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
45
37
  TD_API_KEY: ${{ secrets.TD_API_KEY }}
46
38
  TD_OS: linux
47
39
 
48
- - name: Sentry Cron Check-in (Success)
49
- if: success()
50
- env:
51
- SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
52
- SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
53
- SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
54
- run: |
55
- sentry-cli monitors checkin testdriver-linux-acceptance --check-in-id ${{ env.CHECK_IN_ID }} --status ok
56
-
57
- - name: Sentry Cron Check-in (Failure)
58
- if: failure()
59
- env:
60
- SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
61
- SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
62
- SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
63
- run: |
64
- sentry-cli monitors checkin testdriver-linux-acceptance --check-in-id ${{ env.CHECK_IN_ID }} --status error
65
-
66
40
  - name: Upload test results to Sentry Prevent
67
41
  if: ${{ !cancelled() }}
68
42
  uses: getsentry/prevent-action@v0
@@ -29,40 +29,14 @@ jobs:
29
29
  - name: Install Sentry CLI
30
30
  run: npm install -g @sentry/cli
31
31
 
32
- - name: Sentry Cron Check-in (Start)
33
- env:
34
- SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
35
- SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
36
- SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
32
+ - name: Run Windows tests with Sentry Cron monitoring
37
33
  run: |
38
- CHECK_IN_ID=$(sentry-cli monitors checkin testdriver-windows-acceptance --status in_progress 2>&1 | grep -oE '[a-f0-9-]{36}' | head -1)
39
- echo "CHECK_IN_ID=$CHECK_IN_ID" >> $GITHUB_ENV
40
-
41
- - name: Run Windows tests
42
- id: tests
43
- run: npx vitest run test/testdriver/*.test.mjs
34
+ sentry-cli monitors run testdriver-windows-acceptance -- npx vitest run test/testdriver/*.test.mjs
44
35
  env:
36
+ SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
45
37
  TD_API_KEY: ${{ secrets.TD_API_KEY }}
46
38
  TD_OS: windows
47
39
 
48
- - name: Sentry Cron Check-in (Success)
49
- if: success()
50
- env:
51
- SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
52
- SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
53
- SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
54
- run: |
55
- sentry-cli monitors checkin testdriver-windows-acceptance --check-in-id ${{ env.CHECK_IN_ID }} --status ok
56
-
57
- - name: Sentry Cron Check-in (Failure)
58
- if: failure()
59
- env:
60
- SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
61
- SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
62
- SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
63
- run: |
64
- sentry-cli monitors checkin testdriver-windows-acceptance --check-in-id ${{ env.CHECK_IN_ID }} --status error
65
-
66
40
  - name: Upload test results to Sentry Prevent
67
41
  if: ${{ !cancelled() }}
68
42
  uses: getsentry/prevent-action@v0
@@ -7,6 +7,41 @@ import { setTestRunInfo } from "./shared-test-state.mjs";
7
7
  // Use createRequire to import CommonJS modules without esbuild processing
8
8
  const require = createRequire(import.meta.url);
9
9
 
10
+ /**
11
+ * Minimum required Vitest major version
12
+ */
13
+ const MINIMUM_VITEST_VERSION = 4;
14
+
15
+ /**
16
+ * Check that Vitest version meets minimum requirements
17
+ * @throws {Error} if Vitest version is below minimum or not installed
18
+ */
19
+ function checkVitestVersion() {
20
+ try {
21
+ const vitestPkg = require('vitest/package.json');
22
+ const version = vitestPkg.version;
23
+ const major = parseInt(version.split('.')[0], 10);
24
+
25
+ if (major < MINIMUM_VITEST_VERSION) {
26
+ throw new Error(
27
+ `TestDriver requires Vitest >= ${MINIMUM_VITEST_VERSION}.0.0, but found ${version}. ` +
28
+ `Please upgrade Vitest: npm install vitest@latest`
29
+ );
30
+ }
31
+ } catch (err) {
32
+ if (err.code === 'MODULE_NOT_FOUND') {
33
+ throw new Error(
34
+ 'TestDriver requires Vitest to be installed. ' +
35
+ 'Please install it: npm install vitest@latest'
36
+ );
37
+ }
38
+ throw err;
39
+ }
40
+ }
41
+
42
+ // Check Vitest version at plugin load time
43
+ checkVitestVersion();
44
+
10
45
  /**
11
46
  * Simple logger for the vitest plugin
12
47
  * Supports log levels: debug, info, warn, error
@@ -16,10 +16,49 @@
16
16
  */
17
17
 
18
18
  import chalk from 'chalk';
19
+ import { createRequire } from 'module';
19
20
  import path from 'path';
20
21
  import { vi } from 'vitest';
21
22
  import TestDriverSDK from '../../sdk.js';
22
23
 
24
+ // Use createRequire to import CommonJS modules
25
+ const require = createRequire(import.meta.url);
26
+
27
+ /**
28
+ * Minimum required Vitest major version
29
+ */
30
+ const MINIMUM_VITEST_VERSION = 4;
31
+
32
+ /**
33
+ * Check that Vitest version meets minimum requirements
34
+ * @throws {Error} if Vitest version is below minimum or not installed
35
+ */
36
+ function checkVitestVersion() {
37
+ try {
38
+ const vitestPkg = require('vitest/package.json');
39
+ const version = vitestPkg.version;
40
+ const major = parseInt(version.split('.')[0], 10);
41
+
42
+ if (major < MINIMUM_VITEST_VERSION) {
43
+ throw new Error(
44
+ `TestDriver requires Vitest >= ${MINIMUM_VITEST_VERSION}.0.0, but found ${version}. ` +
45
+ `Please upgrade Vitest: npm install vitest@latest`
46
+ );
47
+ }
48
+ } catch (err) {
49
+ if (err.code === 'MODULE_NOT_FOUND') {
50
+ throw new Error(
51
+ 'TestDriver requires Vitest to be installed. ' +
52
+ 'Please install it: npm install vitest@latest'
53
+ );
54
+ }
55
+ throw err;
56
+ }
57
+ }
58
+
59
+ // Check Vitest version at module load time
60
+ checkVitestVersion();
61
+
23
62
  /**
24
63
  * Set up console spies using Vitest's vi.spyOn to intercept console logs
25
64
  * and forward them to the sandbox for Dashcam visibility.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testdriverai",
3
- "version": "7.2.14",
3
+ "version": "7.2.16",
4
4
  "description": "Next generation autonomous AI agent for end-to-end testing of web & desktop",
5
5
  "main": "sdk.js",
6
6
  "exports": {
@@ -84,6 +84,14 @@
84
84
  "glob": "^11.0.1",
85
85
  "rimraf": "^5.0.10"
86
86
  },
87
+ "peerDependencies": {
88
+ "vitest": ">=4.0.0"
89
+ },
90
+ "peerDependenciesMeta": {
91
+ "vitest": {
92
+ "optional": true
93
+ }
94
+ },
87
95
  "devDependencies": {
88
96
  "@eslint/js": "^9.10.0",
89
97
  "@vitest/ui": "^4.0.15",
@@ -1,7 +0,0 @@
1
- {
2
- "sandboxId": "i4kn8zrl6y0483ooe10pl",
3
- "os": "linux",
4
- "ami": null,
5
- "instanceType": null,
6
- "timestamp": "2026-01-06T19:39:48.956Z"
7
- }