testdriverai 7.5.26 → 7.6.0-test.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.
- package/CHANGELOG.md +17 -19
- package/README.md +1 -0
- package/agent/lib/config.js +3 -1
- package/agent/lib/sandbox.js +6 -4
- package/ai/agents/testdriver.md +0 -3
- package/ai/skills/testdriver-exec/SKILL.md +23 -40
- package/ai/skills/testdriver-test-writer/SKILL.md +0 -3
- package/ai/skills/testdriver-testdriver/SKILL.md +0 -3
- package/channel.json +9 -0
- package/docs/v6/commands/exec.mdx +15 -21
- package/docs/v7/_drafts/agents.mdx +4 -13
- package/docs/v7/_drafts/commands/exec.mdx +15 -21
- package/docs/v7/exec.mdx +36 -64
- package/docs/v7/quickstart.mdx +1 -1
- package/interfaces/cli/commands/init.js +2 -1
- package/interfaces/vitest-plugin.mjs +23 -2
- package/lib/core/Dashcam.js +23 -2
- package/lib/init-project.js +67 -27
- package/lib/vitest/hooks.mjs +2 -1
- package/mcp-server/README.md +12 -2
- package/mcp-server/dist/codegen.js +1 -1
- package/mcp-server/dist/server.mjs +50 -2
- package/mcp-server/src/codegen.ts +1 -1
- package/mcp-server/src/server.ts +44 -2
- package/package.json +6 -2
- package/sdk.d.ts +2 -2
- package/sdk.js +47 -2
- package/vitest.config.mjs +56 -12
package/vitest.config.mjs
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import TestDriver from "testdriverai/vitest";
|
|
2
2
|
import { defineConfig } from "vitest/config";
|
|
3
|
+
import { readFileSync, existsSync } from "fs";
|
|
4
|
+
import { resolve } from "path";
|
|
3
5
|
|
|
4
6
|
// Always include AWS setup - it will be a no-op unless TD_OS=windows
|
|
5
7
|
// Note: dotenv is loaded automatically by the TestDriver SDK
|
|
@@ -8,19 +10,61 @@ const setupFiles = [
|
|
|
8
10
|
"testdriverai/vitest/setup-aws"
|
|
9
11
|
];
|
|
10
12
|
|
|
13
|
+
const sharedTestConfig = {
|
|
14
|
+
retry: 0,
|
|
15
|
+
testTimeout: 900000,
|
|
16
|
+
hookTimeout: 900000,
|
|
17
|
+
maxConcurrency: 100,
|
|
18
|
+
disableConsoleIntercept: false,
|
|
19
|
+
silent: false,
|
|
20
|
+
reporters: [
|
|
21
|
+
"verbose",
|
|
22
|
+
TestDriver()
|
|
23
|
+
],
|
|
24
|
+
setupFiles,
|
|
25
|
+
include: ["examples/**/*.test.mjs"],
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// ── Parse a simple KEY=VALUE .env file ──────────────────────────────
|
|
29
|
+
function parseEnvFile(filePath) {
|
|
30
|
+
if (!existsSync(filePath)) return {};
|
|
31
|
+
const env = {};
|
|
32
|
+
for (const line of readFileSync(filePath, "utf-8").split("\n")) {
|
|
33
|
+
const trimmed = line.trim();
|
|
34
|
+
if (!trimmed || trimmed.startsWith("#")) continue;
|
|
35
|
+
const idx = trimmed.indexOf("=");
|
|
36
|
+
if (idx === -1) continue;
|
|
37
|
+
env[trimmed.slice(0, idx)] = trimmed.slice(idx + 1);
|
|
38
|
+
}
|
|
39
|
+
return env;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// ── Load base .env + per-environment overlay ────────────────────────
|
|
43
|
+
const monoRoot = resolve(import.meta.dirname, "..");
|
|
44
|
+
const baseEnv = parseEnvFile(resolve(monoRoot, ".env"));
|
|
45
|
+
|
|
46
|
+
const environments = ["dev", "test", "canary", "stable"];
|
|
47
|
+
|
|
48
|
+
function envForProject(envName) {
|
|
49
|
+
const overlay = parseEnvFile(resolve(monoRoot, "envs", `${envName}.env`));
|
|
50
|
+
return { ...baseEnv, ...overlay };
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ── If TD_ENV is set (e.g. from CLI), only run that environment ─────
|
|
54
|
+
// Usage: TD_ENV=dev vitest run
|
|
55
|
+
// TD_ENV=canary vitest run examples/assert.test.mjs
|
|
56
|
+
// vitest run --project dev
|
|
57
|
+
// vitest run --project canary --project stable
|
|
11
58
|
export default defineConfig({
|
|
12
59
|
test: {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
TestDriver()
|
|
23
|
-
],
|
|
24
|
-
setupFiles,
|
|
60
|
+
...sharedTestConfig,
|
|
61
|
+
env: envForProject(process.env.TD_ENV || "dev"),
|
|
62
|
+
projects: environments.map((envName) => ({
|
|
63
|
+
extends: true,
|
|
64
|
+
test: {
|
|
65
|
+
name: envName,
|
|
66
|
+
env: envForProject(envName),
|
|
67
|
+
},
|
|
68
|
+
})),
|
|
25
69
|
},
|
|
26
70
|
});
|