@testdriverai/mcp 7.8.0-canary.13 → 7.8.0-canary.15
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.
- package/agent/lib/sandbox.js +41 -25
- package/docs/_data/examples-manifest.json +46 -46
- package/docs/v7/examples/ai.mdx +1 -1
- package/docs/v7/examples/assert.mdx +1 -1
- package/docs/v7/examples/chrome-extension.mdx +1 -1
- package/docs/v7/examples/element-not-found.mdx +1 -1
- package/docs/v7/examples/exec-output.mdx +1 -1
- package/docs/v7/examples/exec-pwsh.mdx +1 -1
- package/docs/v7/examples/focus-window.mdx +1 -1
- package/docs/v7/examples/hover-image.mdx +1 -1
- package/docs/v7/examples/hover-text.mdx +1 -1
- package/docs/v7/examples/installer.mdx +1 -1
- package/docs/v7/examples/launch-vscode-linux.mdx +1 -1
- package/docs/v7/examples/match-image.mdx +1 -1
- package/docs/v7/examples/press-keys.mdx +1 -1
- package/docs/v7/examples/scroll-keyboard.mdx +1 -1
- package/docs/v7/examples/scroll-until-image.mdx +1 -1
- package/docs/v7/examples/scroll.mdx +1 -1
- package/docs/v7/examples/type.mdx +1 -1
- package/docs/v7/examples/windows-installer.mdx +1 -1
- package/package.json +1 -1
- package/vitest.config.mjs +2 -2
package/agent/lib/sandbox.js
CHANGED
|
@@ -61,8 +61,23 @@ const createSandbox = function (emitter, analytics, sessionInstance) {
|
|
|
61
61
|
var self = this;
|
|
62
62
|
|
|
63
63
|
this._ably = new Ably.Realtime({
|
|
64
|
-
authCallback: function (tokenParams, callback) {
|
|
65
|
-
|
|
64
|
+
authCallback: async function (tokenParams, callback) {
|
|
65
|
+
// On initial connect Ably may supply the token directly; on renewal
|
|
66
|
+
// we must fetch a fresh one from the API (the original token will
|
|
67
|
+
// have expired, causing 40143 token.unrecognized if reused).
|
|
68
|
+
try {
|
|
69
|
+
const response = await axios({
|
|
70
|
+
method: "post",
|
|
71
|
+
url: self.apiRoot + "/api/v7/sandbox/ably-token",
|
|
72
|
+
data: { apiKey: self.apiKey, sandboxId: self._sandboxId },
|
|
73
|
+
headers: { "Content-Type": "application/json" },
|
|
74
|
+
timeout: 15000,
|
|
75
|
+
});
|
|
76
|
+
callback(null, response.data.token);
|
|
77
|
+
} catch (err) {
|
|
78
|
+
logger.warn("[ably] Token renewal failed, falling back to original token: " + (err.message || err));
|
|
79
|
+
callback(null, ablyToken);
|
|
80
|
+
}
|
|
66
81
|
},
|
|
67
82
|
clientId: "sdk-" + this._sandboxId,
|
|
68
83
|
echoMessages: false, // don't receive our own published messages
|
|
@@ -310,7 +325,7 @@ const createSandbox = function (emitter, analytics, sessionInstance) {
|
|
|
310
325
|
var reason = stateChange.reason;
|
|
311
326
|
var reasonMsg = reason ? (reason.message || reason.code || String(reason)) : '';
|
|
312
327
|
|
|
313
|
-
if (current === 'attached' && stateChange.resumed === false && previous) {
|
|
328
|
+
if (current === 'attached' && stateChange.resumed === false && previous === 'attached') {
|
|
314
329
|
logger.warn('[ably] Channel DISCONTINUITY detected (resumed=false)' + (reasonMsg ? ' — ' + reasonMsg : ''));
|
|
315
330
|
emitter.emit(events.sandbox.progress, {
|
|
316
331
|
step: 'discontinuity',
|
|
@@ -517,34 +532,31 @@ const createSandbox = function (emitter, analytics, sessionInstance) {
|
|
|
517
532
|
}
|
|
518
533
|
|
|
519
534
|
if (message.type === "create") {
|
|
520
|
-
// E2B (Linux) sandboxes
|
|
521
|
-
//
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
return {
|
|
525
|
-
success: true,
|
|
526
|
-
sandbox: {
|
|
527
|
-
sandboxId: reply.sandboxId,
|
|
528
|
-
instanceId: reply.sandbox?.sandboxId || reply.sandboxId,
|
|
529
|
-
os: body.os || 'linux',
|
|
530
|
-
url: reply.url,
|
|
531
|
-
},
|
|
532
|
-
};
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
+
// E2B (Linux) sandboxes return a url directly.
|
|
536
|
+
// We still need to wait for runner.ready since sandbox-agent.js runs inside E2B.
|
|
537
|
+
const isE2B = !!reply.url;
|
|
538
|
+
|
|
535
539
|
const runnerIp = reply.runner && reply.runner.ip;
|
|
536
540
|
const noVncPort = reply.runner && reply.runner.noVncPort;
|
|
537
541
|
const runnerVncUrl = reply.runner && reply.runner.vncUrl;
|
|
538
542
|
|
|
539
|
-
|
|
543
|
+
if (!isE2B) {
|
|
544
|
+
logger.log(`Runner claimed — ip=${runnerIp || 'none'}, os=${reply.runner?.os || 'unknown'}, noVncPort=${noVncPort || 'not reported'}, vncUrl=${runnerVncUrl || 'not reported'}`);
|
|
545
|
+
}
|
|
540
546
|
|
|
541
|
-
//
|
|
542
|
-
//
|
|
543
|
-
//
|
|
547
|
+
// Wait for the runner agent to signal readiness before sending commands.
|
|
548
|
+
// Without this gate, commands published before the agent subscribes are lost.
|
|
549
|
+
// This applies to:
|
|
550
|
+
// - E2B Linux sandboxes (native runner agent via sandbox-agent.js)
|
|
551
|
+
// - Windows EC2 sandboxes without presence runners
|
|
552
|
+
// For presence-based Windows runners (reply.runner already set), the runner
|
|
553
|
+
// is already listening so we can skip the wait.
|
|
544
554
|
var self = this;
|
|
545
|
-
|
|
555
|
+
const needsReadyWait = this._sessionChannel && (isE2B || !reply.runner);
|
|
556
|
+
if (needsReadyWait) {
|
|
546
557
|
logger.log('Waiting for runner agent to signal readiness...');
|
|
547
|
-
|
|
558
|
+
// E2B (Linux) sandboxes need extra time: S3 upload + npm install can add 60-120s on top of sandbox boot
|
|
559
|
+
var readyTimeout = isE2B ? 300000 : 120000; // 5 min for E2B (S3+npm), 2 min for EC2
|
|
548
560
|
await new Promise(function (resolve, reject) {
|
|
549
561
|
var resolved = false;
|
|
550
562
|
function finish(data) {
|
|
@@ -622,9 +634,13 @@ const createSandbox = function (emitter, analytics, sessionInstance) {
|
|
|
622
634
|
});
|
|
623
635
|
}
|
|
624
636
|
// Prefer the full vncUrl reported by the runner (infrastructure-agnostic).
|
|
637
|
+
// For E2B sandboxes, use the url from the API reply.
|
|
625
638
|
// Fall back to constructing from ip + noVncPort for older runners.
|
|
626
639
|
let url;
|
|
627
|
-
if (
|
|
640
|
+
if (isE2B && reply.url) {
|
|
641
|
+
url = reply.url;
|
|
642
|
+
logger.log(`E2B sandbox ready — url=${url}`);
|
|
643
|
+
} else if (runnerVncUrl) {
|
|
628
644
|
url = runnerVncUrl;
|
|
629
645
|
logger.log(`Using runner-provided vncUrl: ${url}`);
|
|
630
646
|
} else if (runnerIp && noVncPort) {
|
|
@@ -2,104 +2,104 @@
|
|
|
2
2
|
"$schema": "./examples-manifest.schema.json",
|
|
3
3
|
"examples": {
|
|
4
4
|
"assert.test.mjs": {
|
|
5
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
6
|
-
"lastUpdated": "2026-03-
|
|
5
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a33ec10882051dcb4c6",
|
|
6
|
+
"lastUpdated": "2026-03-23T00:48:07.166Z"
|
|
7
7
|
},
|
|
8
8
|
"drag-and-drop.test.mjs": {
|
|
9
9
|
"url": "https://console.testdriver.ai/runs/69a62b3aaa712ecd3dea730a/69a62b42fc0ac3cc632a918b",
|
|
10
10
|
"lastUpdated": "2026-03-03T00:32:25.275Z"
|
|
11
11
|
},
|
|
12
12
|
"exec-pwsh.test.mjs": {
|
|
13
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
14
|
-
"lastUpdated": "2026-03-
|
|
13
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a1d3fc5f4138e1b30b3",
|
|
14
|
+
"lastUpdated": "2026-03-23T00:48:07.155Z"
|
|
15
15
|
},
|
|
16
16
|
"match-image.test.mjs": {
|
|
17
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
18
|
-
"lastUpdated": "2026-03-
|
|
17
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a1fec10882051dcb4ba",
|
|
18
|
+
"lastUpdated": "2026-03-23T00:48:07.155Z"
|
|
19
19
|
},
|
|
20
20
|
"scroll-until-text.test.mjs": {
|
|
21
21
|
"url": "https://console.testdriver.ai/runs/69a62b3aaa712ecd3dea730a/69a62b99dc33133fc0da9440",
|
|
22
22
|
"lastUpdated": "2026-03-03T00:32:25.282Z"
|
|
23
23
|
},
|
|
24
24
|
"hover-text-with-description.test.mjs": {
|
|
25
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
26
|
-
"lastUpdated": "2026-03-
|
|
25
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a213fc5f4138e1b30b5",
|
|
26
|
+
"lastUpdated": "2026-03-23T00:48:07.159Z"
|
|
27
27
|
},
|
|
28
28
|
"windows-installer.test.mjs": {
|
|
29
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
30
|
-
"lastUpdated": "2026-03-
|
|
29
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a242ae8c7c745aa101e",
|
|
30
|
+
"lastUpdated": "2026-03-23T00:48:07.159Z"
|
|
31
31
|
},
|
|
32
32
|
"exec-output.test.mjs": {
|
|
33
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
34
|
-
"lastUpdated": "2026-03-
|
|
33
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a26ec10882051dcb4bc",
|
|
34
|
+
"lastUpdated": "2026-03-23T00:48:07.159Z"
|
|
35
35
|
},
|
|
36
36
|
"chrome-extension.test.mjs": {
|
|
37
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
38
|
-
"lastUpdated": "2026-03-
|
|
37
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a1c80ef14ab384e09f9",
|
|
38
|
+
"lastUpdated": "2026-03-23T00:48:07.155Z"
|
|
39
39
|
},
|
|
40
40
|
"launch-vscode-linux.test.mjs": {
|
|
41
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
42
|
-
"lastUpdated": "2026-03-
|
|
41
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a23c68cc3bf937157e6",
|
|
42
|
+
"lastUpdated": "2026-03-23T00:48:07.159Z"
|
|
43
43
|
},
|
|
44
44
|
"hover-image.test.mjs": {
|
|
45
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
46
|
-
"lastUpdated": "2026-03-
|
|
45
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a272ae8c7c745aa101f",
|
|
46
|
+
"lastUpdated": "2026-03-23T00:48:07.161Z"
|
|
47
47
|
},
|
|
48
48
|
"installer.test.mjs": {
|
|
49
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
50
|
-
"lastUpdated": "2026-03-
|
|
49
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a29c68cc3bf937157e7",
|
|
50
|
+
"lastUpdated": "2026-03-23T00:48:07.161Z"
|
|
51
51
|
},
|
|
52
52
|
"type.test.mjs": {
|
|
53
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
54
|
-
"lastUpdated": "2026-03-
|
|
53
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a2cec10882051dcb4c2",
|
|
54
|
+
"lastUpdated": "2026-03-23T00:48:07.165Z"
|
|
55
55
|
},
|
|
56
56
|
"press-keys.test.mjs": {
|
|
57
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
58
|
-
"lastUpdated": "2026-03-
|
|
57
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a312ae8c7c745aa1028",
|
|
58
|
+
"lastUpdated": "2026-03-23T00:48:07.166Z"
|
|
59
59
|
},
|
|
60
60
|
"scroll-keyboard.test.mjs": {
|
|
61
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
62
|
-
"lastUpdated": "2026-03-
|
|
61
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a2fec10882051dcb4c4",
|
|
62
|
+
"lastUpdated": "2026-03-23T00:48:07.166Z"
|
|
63
63
|
},
|
|
64
64
|
"scroll.test.mjs": {
|
|
65
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
66
|
-
"lastUpdated": "2026-03-
|
|
65
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a2d2ae8c7c745aa1026",
|
|
66
|
+
"lastUpdated": "2026-03-23T00:48:07.165Z"
|
|
67
67
|
},
|
|
68
68
|
"scroll-until-image.test.mjs": {
|
|
69
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
70
|
-
"lastUpdated": "2026-03-
|
|
69
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a36c68cc3bf937157ec",
|
|
70
|
+
"lastUpdated": "2026-03-23T00:48:07.167Z"
|
|
71
71
|
},
|
|
72
72
|
"prompt.test.mjs": {
|
|
73
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
74
|
-
"lastUpdated": "2026-03-
|
|
73
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a382ae8c7c745aa102a",
|
|
74
|
+
"lastUpdated": "2026-03-23T00:48:07.167Z"
|
|
75
75
|
},
|
|
76
76
|
"focus-window.test.mjs": {
|
|
77
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
78
|
-
"lastUpdated": "2026-03-
|
|
77
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a3980ef14ab384e0a08",
|
|
78
|
+
"lastUpdated": "2026-03-23T00:48:07.167Z"
|
|
79
79
|
},
|
|
80
80
|
"captcha-api.test.mjs": {
|
|
81
81
|
"url": "https://console.testdriver.ai/runs/698f7df69e27ce1528d7d087/698f7fb0d3b320ad547d9d44",
|
|
82
82
|
"lastUpdated": "2026-02-13T19:55:05.951Z"
|
|
83
83
|
},
|
|
84
84
|
"element-not-found.test.mjs": {
|
|
85
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
86
|
-
"lastUpdated": "2026-03-
|
|
85
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a3d2ae8c7c745aa102d",
|
|
86
|
+
"lastUpdated": "2026-03-23T00:48:07.168Z"
|
|
87
87
|
},
|
|
88
88
|
"formatted-logging.test.mjs": {
|
|
89
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
90
|
-
"lastUpdated": "2026-03-
|
|
89
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a3bec10882051dcb4ca",
|
|
90
|
+
"lastUpdated": "2026-03-23T00:48:07.168Z"
|
|
91
91
|
},
|
|
92
92
|
"hover-text.test.mjs": {
|
|
93
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
94
|
-
"lastUpdated": "2026-03-
|
|
93
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a413fc5f4138e1b30c2",
|
|
94
|
+
"lastUpdated": "2026-03-23T00:48:07.170Z"
|
|
95
95
|
},
|
|
96
96
|
"no-provision.test.mjs": {
|
|
97
97
|
"url": "https://console.testdriver.ai/runs/69a62b3aaa712ecd3dea730a/69a62b7706a177a05bccd1cf",
|
|
98
98
|
"lastUpdated": "2026-03-03T00:32:25.279Z"
|
|
99
99
|
},
|
|
100
100
|
"ai.test.mjs": {
|
|
101
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
102
|
-
"lastUpdated": "2026-03-
|
|
101
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a3e2ae8c7c745aa102e",
|
|
102
|
+
"lastUpdated": "2026-03-23T00:48:07.169Z"
|
|
103
103
|
},
|
|
104
104
|
"popup-loading.test.mjs": {
|
|
105
105
|
"url": "https://console.testdriver.ai/runs/698bc89f7140c3fa7daaca8d/698bca7f7140c3fa7daacbf7",
|
|
@@ -134,12 +134,12 @@
|
|
|
134
134
|
"lastUpdated": "2026-02-13T19:55:05.953Z"
|
|
135
135
|
},
|
|
136
136
|
"findall-coffee-icons.test.mjs": {
|
|
137
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
138
|
-
"lastUpdated": "2026-03-
|
|
137
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a35ec10882051dcb4c7",
|
|
138
|
+
"lastUpdated": "2026-03-23T00:48:07.167Z"
|
|
139
139
|
},
|
|
140
140
|
"parse.test.mjs": {
|
|
141
|
-
"url": "https://console-test.testdriver.ai/runs/
|
|
142
|
-
"lastUpdated": "2026-03-
|
|
141
|
+
"url": "https://console-test.testdriver.ai/runs/69c08a1a3fc5f4138e1b30b1/69c08a4280ef14ab384e0a0b",
|
|
142
|
+
"lastUpdated": "2026-03-23T00:48:07.170Z"
|
|
143
143
|
},
|
|
144
144
|
"flake-diffthreshold-001.test.mjs": {
|
|
145
145
|
"url": "https://console.testdriver.ai/runs/69a62b3aaa712ecd3dea730a/69a62bcafc0ac3cc632a91aa",
|
package/docs/v7/examples/ai.mdx
CHANGED
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* ai.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a3e2ae8c7c745aa102e/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* assert.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a33ec10882051dcb4c6/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* chrome-extension.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a1c80ef14ab384e09f9/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* element-not-found.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a3d2ae8c7c745aa102d/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* exec-output.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a26ec10882051dcb4bc/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* exec-pwsh.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a1d3fc5f4138e1b30b3/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* focus-window.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a3980ef14ab384e0a08/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* hover-image.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a272ae8c7c745aa101f/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* hover-text.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a413fc5f4138e1b30c2/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* installer.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a29c68cc3bf937157e7/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* launch-vscode-linux.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a23c68cc3bf937157e6/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* match-image.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a1fec10882051dcb4ba/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* press-keys.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a312ae8c7c745aa1028/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* scroll-keyboard.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a2fec10882051dcb4c4/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* scroll-until-image.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a36c68cc3bf937157ec/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* scroll.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a2d2ae8c7c745aa1026/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* type.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a2cec10882051dcb4c2/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* windows-installer.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/
|
|
15
|
+
src="https://api-test.testdriver.ai/api/v1/testdriver/testcase/69c08a242ae8c7c745aa101e/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
package/package.json
CHANGED
package/vitest.config.mjs
CHANGED