@shivaedev/vitest-rerun 0.2.0 → 0.3.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 +23 -0
- package/README.md +5 -3
- package/dist/{internal/junit.d.ts → adapters/RerunJunitReporter.d.ts} +3 -2
- package/dist/adapters/RerunJunitReporter.d.ts.map +1 -0
- package/dist/{internal/junit.js → adapters/RerunJunitReporter.js} +7 -4
- package/dist/adapters/RerunJunitReporter.js.map +1 -0
- package/dist/adapters/TimedJsonReporter.d.ts.map +1 -0
- package/dist/{internal/adapters → adapters}/TimedJsonReporter.js +1 -1
- package/dist/adapters/TimedJsonReporter.js.map +1 -0
- package/dist/adapters/VitestRunner.d.ts +48 -0
- package/dist/adapters/VitestRunner.d.ts.map +1 -0
- package/dist/adapters/VitestRunner.js +67 -0
- package/dist/adapters/VitestRunner.js.map +1 -0
- package/dist/adapters/deferCoverageThresholds.d.ts +4 -0
- package/dist/adapters/deferCoverageThresholds.d.ts.map +1 -0
- package/dist/adapters/deferCoverageThresholds.js +46 -0
- package/dist/adapters/deferCoverageThresholds.js.map +1 -0
- package/dist/adapters/mergeSnapshotSummary.d.ts +4 -0
- package/dist/adapters/mergeSnapshotSummary.d.ts.map +1 -0
- package/dist/adapters/mergeSnapshotSummary.js +19 -0
- package/dist/adapters/mergeSnapshotSummary.js.map +1 -0
- package/dist/adapters/tasks.d.ts +4 -0
- package/dist/adapters/tasks.d.ts.map +1 -0
- package/dist/adapters/tasks.js +2 -0
- package/dist/adapters/tasks.js.map +1 -0
- package/dist/adapters/writeMergedReports.d.ts +8 -0
- package/dist/adapters/writeMergedReports.d.ts.map +1 -0
- package/dist/adapters/writeMergedReports.js +21 -0
- package/dist/adapters/writeMergedReports.js.map +1 -0
- package/dist/cli.js +6 -3
- package/dist/cli.js.map +1 -1
- package/dist/flakyTests.d.ts +1 -1
- package/dist/flakyTests.d.ts.map +1 -1
- package/dist/internal/attempt.js +5 -6
- package/dist/internal/attempt.js.map +1 -1
- package/dist/internal/junitClassname.d.ts +2 -0
- package/dist/internal/junitClassname.d.ts.map +1 -0
- package/dist/internal/junitClassname.js +4 -0
- package/dist/internal/junitClassname.js.map +1 -0
- package/dist/internal/mergeAttempt.d.ts +21 -1
- package/dist/internal/mergeAttempt.d.ts.map +1 -1
- package/dist/internal/mergeAttempt.js +15 -19
- package/dist/internal/mergeAttempt.js.map +1 -1
- package/dist/internal/refuseDeclaredRetries.d.ts +4 -0
- package/dist/internal/refuseDeclaredRetries.d.ts.map +1 -0
- package/dist/internal/refuseDeclaredRetries.js +17 -0
- package/dist/internal/refuseDeclaredRetries.js.map +1 -0
- package/dist/internal/runAttempt.d.ts +2 -2
- package/dist/internal/runAttempt.d.ts.map +1 -1
- package/dist/internal/runAttempt.js +37 -73
- package/dist/internal/runAttempt.js.map +1 -1
- package/dist/internal/snapshot.d.ts +62 -6
- package/dist/internal/snapshot.d.ts.map +1 -1
- package/dist/internal/snapshot.js +19 -0
- package/dist/internal/snapshot.js.map +1 -1
- package/dist/internal/summaryLine.d.ts +3 -0
- package/dist/internal/summaryLine.d.ts.map +1 -0
- package/dist/internal/summaryLine.js +10 -0
- package/dist/internal/summaryLine.js.map +1 -0
- package/dist/rerun.d.ts.map +1 -1
- package/dist/rerun.js +2 -2
- package/dist/rerun.js.map +1 -1
- package/package.json +7 -4
- package/src/{internal/junit.ts → adapters/RerunJunitReporter.ts} +7 -4
- package/src/{internal/adapters → adapters}/TimedJsonReporter.ts +1 -1
- package/src/adapters/VitestRunner.ts +97 -0
- package/src/adapters/deferCoverageThresholds.ts +48 -0
- package/src/adapters/mergeSnapshotSummary.ts +21 -0
- package/src/adapters/tasks.ts +4 -0
- package/src/adapters/writeMergedReports.ts +27 -0
- package/src/cli.ts +6 -3
- package/src/flakyTests.ts +1 -1
- package/src/internal/SnapshotFiles.ts +1 -1
- package/src/internal/attempt.ts +7 -6
- package/src/internal/junitClassname.ts +3 -0
- package/src/internal/mergeAttempt.ts +18 -22
- package/src/internal/refuseDeclaredRetries.ts +22 -0
- package/src/internal/runAttempt.ts +36 -89
- package/src/internal/snapshot.ts +21 -4
- package/src/internal/summaryLine.ts +10 -0
- package/src/rerun.ts +2 -2
- package/dist/internal/adapters/TimedJsonReporter.d.ts.map +0 -1
- package/dist/internal/adapters/TimedJsonReporter.js.map +0 -1
- package/dist/internal/junit.d.ts.map +0 -1
- package/dist/internal/junit.js.map +0 -1
- /package/dist/{internal/adapters → adapters}/TimedJsonReporter.d.ts +0 -0
|
@@ -2,11 +2,11 @@ import { relative } from "node:path";
|
|
|
2
2
|
import { Effect } from "effect";
|
|
3
3
|
import { VitestRerunError } from "#error.ts";
|
|
4
4
|
import { failureMessage, testcases } from "#flakyTests.ts";
|
|
5
|
-
import { junitClassname } from "#internal/
|
|
5
|
+
import { junitClassname } from "#internal/junitClassname.ts";
|
|
6
6
|
import { tests } from "#internal/snapshot.ts";
|
|
7
|
-
function
|
|
8
|
-
const
|
|
9
|
-
if (first.result !== undefined && (first.result.state
|
|
7
|
+
function mergeResult(first, task) {
|
|
8
|
+
const completed = ["pass", "fail"].includes(task.result?.state ?? "");
|
|
9
|
+
if (first.result !== undefined && ["pass", "fail"].includes(first.result.state) && !completed) {
|
|
10
10
|
task.mode = first.mode;
|
|
11
11
|
task.result = first.result;
|
|
12
12
|
task.logs = first.logs ?? [];
|
|
@@ -15,31 +15,28 @@ function mergeTest(first, task) {
|
|
|
15
15
|
task.result.duration = (task.result.duration ?? 0) + (first.result?.duration ?? 0);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
function
|
|
18
|
+
function mergeTasks(original, rerun) {
|
|
19
19
|
for (const task of rerun) {
|
|
20
20
|
const first = original.find((item) => item.id === task.id);
|
|
21
21
|
if (first === undefined) {
|
|
22
22
|
continue;
|
|
23
23
|
}
|
|
24
24
|
if (task.type === "suite" && first.type === "suite") {
|
|
25
|
-
|
|
25
|
+
mergeTasks(first.tasks, task.tasks);
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
mergeResult(first, task);
|
|
28
|
+
if (task.type === "suite" && task.tasks.some((child) => child.result?.state === "fail") && task.result !== undefined) {
|
|
29
|
+
task.result.state = "fail";
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
function finishFile(file, next
|
|
33
|
-
|
|
34
|
-
if (!ranTests && file.tasks.length > 0 && file.result !== undefined) {
|
|
35
|
-
next.result = { ...file.result };
|
|
36
|
-
}
|
|
33
|
+
function finishFile(file, next) {
|
|
34
|
+
mergeResult(file, next);
|
|
37
35
|
if (next.result !== undefined) {
|
|
38
|
-
if (
|
|
36
|
+
if (next.tasks.some((task) => task.result?.state === "fail")) {
|
|
39
37
|
next.result.state = "fail";
|
|
40
38
|
}
|
|
41
39
|
next.result.startTime = file.result?.startTime ?? next.result.startTime ?? 0;
|
|
42
|
-
next.result.duration = duration;
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
42
|
function recordAttempts(file, retried, outcome) {
|
|
@@ -61,20 +58,19 @@ function recordAttempts(file, retried, outcome) {
|
|
|
61
58
|
function mergeFile(file, next, outcome) {
|
|
62
59
|
const original = tests(file.tasks);
|
|
63
60
|
const retried = tests(next.tasks);
|
|
64
|
-
const ranTests = retried.some((test) => ["pass", "fail"].includes(test.result?.state ?? "") && original.some((item) => item.id === test.id && item.result?.state !== "pass"));
|
|
65
61
|
recordAttempts(file, retried, outcome);
|
|
66
62
|
if (original.length === 0 && next.result?.state === "pass") {
|
|
67
63
|
outcome.summary(`- Flaky: ${junitClassname(relative(outcome.root, file.filepath), file.projectName ?? "")} — collection failure`);
|
|
68
64
|
}
|
|
69
65
|
else if (original.length > 0) {
|
|
70
|
-
|
|
66
|
+
mergeTasks(file.tasks, next.tasks);
|
|
71
67
|
}
|
|
72
|
-
finishFile(file, next
|
|
68
|
+
finishFile(file, next);
|
|
73
69
|
}
|
|
74
70
|
function unexpectedTask(original, rerun) {
|
|
75
71
|
for (const task of rerun) {
|
|
76
72
|
const first = original.find((item) => item.id === task.id);
|
|
77
|
-
if (first === undefined) {
|
|
73
|
+
if (first === undefined || first.name !== task.name || first.type !== task.type) {
|
|
78
74
|
return task;
|
|
79
75
|
}
|
|
80
76
|
const unexpected = first.type === "suite" && task.type === "suite" ? unexpectedTask(first.tasks, task.tasks) : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeAttempt.js","sourceRoot":"","sources":["../../src/internal/mergeAttempt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"mergeAttempt.js","sourceRoot":"","sources":["../../src/internal/mergeAttempt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { VitestRerunError } from "#error.ts";
|
|
3
|
+
export declare const refuseDeclaredRetries: (files: import("vitest").RunnerTestFile[], root: string) => Effect.Effect<undefined, VitestRerunError, never>;
|
|
4
|
+
//# sourceMappingURL=refuseDeclaredRetries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refuseDeclaredRetries.d.ts","sourceRoot":"","sources":["../../src/internal/refuseDeclaredRetries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAI7C,eAAO,MAAM,qBAAqB,+GAchC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { relative } from "node:path";
|
|
2
|
+
import { Effect } from "effect";
|
|
3
|
+
import { VitestRerunError } from "#error.ts";
|
|
4
|
+
import { testcases } from "#flakyTests.ts";
|
|
5
|
+
import { junitClassname } from "#internal/junitClassname.ts";
|
|
6
|
+
export const refuseDeclaredRetries = Effect.fn("VitestRerun.refuseDeclaredRetries")(function* (files, root) {
|
|
7
|
+
const offenders = files.flatMap((file) => testcases(file.tasks).flatMap(({ name, task }) => {
|
|
8
|
+
const count = typeof task.retry === "number" ? task.retry : (task.retry?.count ?? 0);
|
|
9
|
+
return count > 0 ? [`${junitClassname(relative(root, file.filepath), file.projectName ?? "")} > ${name}`] : [];
|
|
10
|
+
}));
|
|
11
|
+
if (offenders.length > 0) {
|
|
12
|
+
return yield* Effect.fail(new VitestRerunError({
|
|
13
|
+
message: `Retries are global only and recoveries are recorded in flaky-tests.json. Remove per-test and per-suite retry options: ${offenders.sort().join("; ")}`,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=refuseDeclaredRetries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refuseDeclaredRetries.js","sourceRoot":"","sources":["../../src/internal/refuseDeclaredRetries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,EAAE,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAY,EAAE,IAAY;IACxH,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACxC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAChD,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;QACrF,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChH,CAAC,CAAC,CACF,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACxB,IAAI,gBAAgB,CAAC;YACpB,OAAO,EAAE,yHAAyH,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC/J,CAAC,CACF,CAAC;IACH,CAAC;AACF,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Effect } from "effect";
|
|
2
2
|
export interface Attempt {
|
|
3
3
|
readonly attempt: number;
|
|
4
4
|
readonly outputDir: string;
|
|
5
5
|
readonly vitestArgs: readonly string[];
|
|
6
6
|
}
|
|
7
|
-
export declare const runAttempt: (input: Attempt) => Effect.Effect<boolean, Config.ConfigError | import("effect/PlatformError").PlatformError | Schema.SchemaError | import("
|
|
7
|
+
export declare const runAttempt: (input: Attempt) => Effect.Effect<boolean, import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError | import("effect/Schema").SchemaError | import("../error.ts").VitestRerunError, "@shivaedev/vitest-rerun/VitestRunner" | import("effect/FileSystem").FileSystem>;
|
|
8
8
|
//# sourceMappingURL=runAttempt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runAttempt.d.ts","sourceRoot":"","sources":["../../src/internal/runAttempt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"runAttempt.d.ts","sourceRoot":"","sources":["../../src/internal/runAttempt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAqCD,eAAO,MAAM,UAAU,gSAsBN,CAAC"}
|
|
@@ -1,101 +1,65 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { failWith } from "#error.ts";
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { VitestRunner } from "#adapters/VitestRunner.ts";
|
|
4
3
|
import { writeFlakyTests } from "#flakyTests.ts";
|
|
5
|
-
import { TimedJsonReporter } from "#internal/adapters/TimedJsonReporter.ts";
|
|
6
|
-
import { RerunJunitReporter } from "#internal/junit.ts";
|
|
7
4
|
import { mergeAttempt } from "#internal/mergeAttempt.ts";
|
|
5
|
+
import { refuseDeclaredRetries } from "#internal/refuseDeclaredRetries.ts";
|
|
8
6
|
import { attemptPaths, reportPaths } from "#internal/reportPaths.ts";
|
|
9
|
-
import { failedFiles, readSnapshot, saveSnapshot, tests } from "#internal/snapshot.ts";
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
function promise(message, run) {
|
|
13
|
-
return Effect.tryPromise({ catch: failWith(message), try: run });
|
|
14
|
-
}
|
|
15
|
-
function start(options, reports, cacheDir) {
|
|
16
|
-
return Effect.acquireRelease(promise("Vitest could not start", () => VitestNode.createVitest({
|
|
17
|
-
...options,
|
|
18
|
-
reporters: ["default", new TimedJsonReporter({ outputFile: reports.json }), new RerunJunitReporter(reports.junit)],
|
|
19
|
-
retry: 0,
|
|
20
|
-
watch: false,
|
|
21
|
-
}, cacheDir === undefined ? {} : { cacheDir })), (vitest) => Effect.promise(() => vitest.close()));
|
|
22
|
-
}
|
|
23
|
-
const failedSpecifications = Effect.fn("VitestRerun.failedSpecifications")(function* (vitest, previous, json) {
|
|
7
|
+
import { failedFiles, hasSuiteErrors, readSnapshot, saveSnapshot, tests } from "#internal/snapshot.ts";
|
|
8
|
+
import { summaryLine } from "#internal/summaryLine.ts";
|
|
9
|
+
const failedSelections = Effect.fn("VitestRerun.failedSelections")(function* (previous, json) {
|
|
24
10
|
const failed = new Set(yield* failedFiles(json));
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return specifications.flatMap((spec) => {
|
|
28
|
-
const file = previous.files.find((item) => item.id === spec.taskId && failed.has(spec.moduleId) && item.result?.state === "fail");
|
|
29
|
-
if (file === undefined) {
|
|
11
|
+
return previous.files.flatMap((file) => {
|
|
12
|
+
if (!failed.has(file.filepath) || file.result?.state !== "fail") {
|
|
30
13
|
return [];
|
|
31
14
|
}
|
|
32
15
|
const runnable = tests(file.tasks).filter((test) => !["pass", "skip", "todo"].includes(test.result?.state ?? test.mode));
|
|
33
|
-
return [
|
|
16
|
+
return [{ fileId: file.id, ...(file.tasks.length === 0 || hasSuiteErrors(file) ? {} : { testIds: runnable.map((test) => test.id) }) }];
|
|
34
17
|
});
|
|
35
18
|
});
|
|
36
|
-
const
|
|
37
|
-
const fs = yield* FileSystem.FileSystem;
|
|
38
|
-
const maps = [];
|
|
39
|
-
for (let earlier = 1; earlier <= attempt; earlier += 1) {
|
|
40
|
-
const { coverageMap } = yield* decodeCoverage(yield* fs.readFileString(attemptPaths(outputDir, earlier).json));
|
|
41
|
-
if (coverageMap !== undefined) {
|
|
42
|
-
maps.push(coverageMap);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
const provider = yield* promise("Vitest could not load its coverage provider", () => vitest.createCoverageProvider());
|
|
46
|
-
yield* promise("Vitest could not merge coverage", async () => provider?.mergeReports?.(maps));
|
|
47
|
-
});
|
|
48
|
-
const summaryLine = Effect.fn("VitestRerun.summaryLine")(function* (line) {
|
|
49
|
-
const fs = yield* FileSystem.FileSystem;
|
|
50
|
-
const summary = yield* Config.String("GITHUB_STEP_SUMMARY").pipe(Config.withDefault(""));
|
|
51
|
-
yield* Console.log(line);
|
|
52
|
-
if (summary !== "") {
|
|
53
|
-
yield* fs.writeFileString(summary, `${line}\n`, { flag: "a" });
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
const rerunFailed = Effect.fn("VitestRerun.rerunFailed")(function* (vitest, { attempt, outputDir }) {
|
|
19
|
+
const rerunFailed = Effect.fn("VitestRerun.rerunFailed")(function* (runner, { attempt, outputDir }) {
|
|
57
20
|
const previous = yield* readSnapshot(attemptPaths(outputDir, attempt - 1).snapshot);
|
|
58
21
|
const final = reportPaths(outputDir);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
yield* promise("Vitest could not rerun the failed tests", () => vitest.runTestSpecifications(specifications));
|
|
22
|
+
yield* runner.rerun(yield* failedSelections(previous, final.json));
|
|
23
|
+
const current = yield* runner.read();
|
|
24
|
+
yield* refuseDeclaredRetries(current.files, current.root);
|
|
64
25
|
const lines = [];
|
|
65
|
-
const merged = yield* mergeAttempt(previous,
|
|
66
|
-
|
|
67
|
-
vitest.state.collectFiles(vitest.getProjectByName(file.projectName ?? ""), [file]);
|
|
68
|
-
}
|
|
26
|
+
const merged = yield* mergeAttempt(previous, current.files, current.root, (line) => lines.push(line));
|
|
27
|
+
yield* runner.collect(merged.files, previous.summary);
|
|
69
28
|
yield* Effect.forEach(lines, summaryLine);
|
|
70
|
-
for (const reporter of [new TimedJsonReporter({ outputFile: final.json }), new RerunJunitReporter(final.junit)]) {
|
|
71
|
-
yield* promise("Vitest could not write the merged reports", async () => {
|
|
72
|
-
await reporter.onInit(vitest);
|
|
73
|
-
await reporter.onTestRunEnd(vitest.state.getTestModules());
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
29
|
if (merged.flaky.length > 0) {
|
|
77
30
|
yield* writeFlakyTests(final.flaky, merged.flaky);
|
|
78
31
|
}
|
|
79
|
-
|
|
80
|
-
yield* mergeCoverage(vitest, outputDir, attempt);
|
|
81
|
-
}
|
|
32
|
+
const state = yield* runner.read();
|
|
82
33
|
const snapshot = {
|
|
83
|
-
errors:
|
|
34
|
+
errors: state.errors,
|
|
84
35
|
failures: merged.failures,
|
|
85
|
-
files:
|
|
36
|
+
files: state.files,
|
|
86
37
|
flaky: merged.flaky,
|
|
38
|
+
summary: state.summary,
|
|
87
39
|
};
|
|
88
40
|
return snapshot;
|
|
89
41
|
});
|
|
90
42
|
export const runAttempt = Effect.fn("VitestRerun.runAttempt")(function* (input) {
|
|
91
|
-
const
|
|
43
|
+
const vitest = yield* VitestRunner;
|
|
92
44
|
const rerun = input.attempt > 1;
|
|
93
|
-
const { shard: _shard, ...unsharded } = options;
|
|
94
45
|
const reports = rerun ? attemptPaths(input.outputDir, input.attempt) : reportPaths(input.outputDir);
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
46
|
+
const runner = yield* vitest.open({
|
|
47
|
+
...(rerun ? { cacheDir: reportPaths(input.outputDir).rerunCache } : {}),
|
|
48
|
+
reports,
|
|
49
|
+
rerun,
|
|
50
|
+
vitestArgs: input.vitestArgs,
|
|
51
|
+
});
|
|
52
|
+
let snapshot;
|
|
53
|
+
if (rerun) {
|
|
54
|
+
snapshot = yield* rerunFailed(runner, input);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
yield* runner.start();
|
|
58
|
+
const state = yield* runner.read();
|
|
59
|
+
yield* refuseDeclaredRetries(state.files, state.root);
|
|
60
|
+
snapshot = { errors: state.errors, failures: {}, files: state.files, flaky: [], summary: state.summary };
|
|
61
|
+
}
|
|
62
|
+
yield* runner.finish(input.outputDir, input.attempt, reportPaths(input.outputDir));
|
|
99
63
|
yield* saveSnapshot(attemptPaths(input.outputDir, input.attempt).snapshot, snapshot);
|
|
100
64
|
return snapshot.files.some((file) => file.result?.state === "fail") || snapshot.errors.length > 0;
|
|
101
65
|
}, Effect.scoped);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runAttempt.js","sourceRoot":"","sources":["../../src/internal/runAttempt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"runAttempt.js","sourceRoot":"","sources":["../../src/internal/runAttempt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAsC,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAiB,YAAY,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAkB,EAAE,IAAY;IAC7G,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAe,EAAE;QACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC;YACjE,OAAO,EAAE,CAAC;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzH,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxI,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAqB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAW;IACzH,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrC,KAAK,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAa;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC;IACF,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAc;IACtF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACjC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO;QACP,KAAK;QACL,UAAU,EAAE,KAAK,CAAC,UAAU;KAC5B,CAAC,CAAC;IACH,IAAI,QAAkB,CAAC;IACvB,IAAI,KAAK,EAAE,CAAC;QACX,QAAQ,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,KAAK,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,QAAQ,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC1G,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACnF,KAAK,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACnG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Effect, FileSystem, Schema } from "effect";
|
|
2
|
-
import type {
|
|
3
|
-
export type Files = ReturnType<Vitest["state"]["getFiles"]>;
|
|
4
|
-
export type Task = Files[number]["tasks"][number];
|
|
2
|
+
import type { Task } from "#adapters/tasks.ts";
|
|
5
3
|
export interface FailureHistory {
|
|
6
4
|
readonly attempts: number;
|
|
7
5
|
readonly messages: readonly string[];
|
|
@@ -12,7 +10,7 @@ declare const SnapshotSchema: Schema.Struct<{
|
|
|
12
10
|
readonly attempts: Schema.Number;
|
|
13
11
|
readonly messages: Schema.$Array<Schema.String>;
|
|
14
12
|
}>>;
|
|
15
|
-
readonly files: Schema.declare<import("vitest
|
|
13
|
+
readonly files: Schema.declare<import("vitest").RunnerTestFile[], import("vitest").RunnerTestFile[]>;
|
|
16
14
|
readonly flaky: Schema.$Array<Schema.Struct<{
|
|
17
15
|
readonly attempts: Schema.Number;
|
|
18
16
|
readonly classname: Schema.String;
|
|
@@ -20,10 +18,30 @@ declare const SnapshotSchema: Schema.Struct<{
|
|
|
20
18
|
readonly messages: Schema.$Array<Schema.String>;
|
|
21
19
|
readonly name: Schema.String;
|
|
22
20
|
}>>;
|
|
21
|
+
readonly summary: Schema.Struct<{
|
|
22
|
+
readonly added: Schema.Number;
|
|
23
|
+
readonly didUpdate: Schema.Boolean;
|
|
24
|
+
readonly failure: Schema.Boolean;
|
|
25
|
+
readonly filesAdded: Schema.Number;
|
|
26
|
+
readonly filesRemoved: Schema.Number;
|
|
27
|
+
readonly filesRemovedList: Schema.$Array<Schema.String>;
|
|
28
|
+
readonly filesUnmatched: Schema.Number;
|
|
29
|
+
readonly filesUpdated: Schema.Number;
|
|
30
|
+
readonly matched: Schema.Number;
|
|
31
|
+
readonly total: Schema.Number;
|
|
32
|
+
readonly unchecked: Schema.Number;
|
|
33
|
+
readonly uncheckedKeysByFile: Schema.$Array<Schema.Struct<{
|
|
34
|
+
readonly filePath: Schema.String;
|
|
35
|
+
readonly keys: Schema.$Array<Schema.String>;
|
|
36
|
+
}>>;
|
|
37
|
+
readonly unmatched: Schema.Number;
|
|
38
|
+
readonly updated: Schema.Number;
|
|
39
|
+
}>;
|
|
23
40
|
}>;
|
|
24
41
|
export type Snapshot = typeof SnapshotSchema.Type;
|
|
25
42
|
export declare const failedFiles: (path: string) => Effect.Effect<string[], import("effect/PlatformError").PlatformError | import("#error.ts").VitestRerunError, FileSystem.FileSystem>;
|
|
26
43
|
export declare function tests(tasks: readonly Task[]): Task[];
|
|
44
|
+
export declare function hasSuiteErrors(task: Task): boolean;
|
|
27
45
|
export declare const saveSnapshot: (path: string, snapshot: {
|
|
28
46
|
readonly errors: readonly unknown[];
|
|
29
47
|
readonly failures: {
|
|
@@ -32,7 +50,7 @@ export declare const saveSnapshot: (path: string, snapshot: {
|
|
|
32
50
|
readonly messages: readonly string[];
|
|
33
51
|
};
|
|
34
52
|
};
|
|
35
|
-
readonly files: import("vitest
|
|
53
|
+
readonly files: import("vitest").RunnerTestFile[];
|
|
36
54
|
readonly flaky: readonly {
|
|
37
55
|
readonly attempts: number;
|
|
38
56
|
readonly classname: string;
|
|
@@ -40,6 +58,25 @@ export declare const saveSnapshot: (path: string, snapshot: {
|
|
|
40
58
|
readonly messages: readonly string[];
|
|
41
59
|
readonly name: string;
|
|
42
60
|
}[];
|
|
61
|
+
readonly summary: {
|
|
62
|
+
readonly added: number;
|
|
63
|
+
readonly didUpdate: boolean;
|
|
64
|
+
readonly failure: boolean;
|
|
65
|
+
readonly filesAdded: number;
|
|
66
|
+
readonly filesRemoved: number;
|
|
67
|
+
readonly filesRemovedList: readonly string[];
|
|
68
|
+
readonly filesUnmatched: number;
|
|
69
|
+
readonly filesUpdated: number;
|
|
70
|
+
readonly matched: number;
|
|
71
|
+
readonly total: number;
|
|
72
|
+
readonly unchecked: number;
|
|
73
|
+
readonly uncheckedKeysByFile: readonly {
|
|
74
|
+
readonly filePath: string;
|
|
75
|
+
readonly keys: readonly string[];
|
|
76
|
+
}[];
|
|
77
|
+
readonly unmatched: number;
|
|
78
|
+
readonly updated: number;
|
|
79
|
+
};
|
|
43
80
|
}) => Effect.Effect<void, import("effect/PlatformError").PlatformError, FileSystem.FileSystem>;
|
|
44
81
|
export declare const readSnapshot: (path: string) => Effect.Effect<{
|
|
45
82
|
readonly errors: readonly unknown[];
|
|
@@ -49,7 +86,7 @@ export declare const readSnapshot: (path: string) => Effect.Effect<{
|
|
|
49
86
|
readonly messages: readonly string[];
|
|
50
87
|
};
|
|
51
88
|
};
|
|
52
|
-
readonly files: import("vitest
|
|
89
|
+
readonly files: import("vitest").RunnerTestFile[];
|
|
53
90
|
readonly flaky: readonly {
|
|
54
91
|
readonly attempts: number;
|
|
55
92
|
readonly classname: string;
|
|
@@ -57,6 +94,25 @@ export declare const readSnapshot: (path: string) => Effect.Effect<{
|
|
|
57
94
|
readonly messages: readonly string[];
|
|
58
95
|
readonly name: string;
|
|
59
96
|
}[];
|
|
97
|
+
readonly summary: {
|
|
98
|
+
readonly added: number;
|
|
99
|
+
readonly didUpdate: boolean;
|
|
100
|
+
readonly failure: boolean;
|
|
101
|
+
readonly filesAdded: number;
|
|
102
|
+
readonly filesRemoved: number;
|
|
103
|
+
readonly filesRemovedList: readonly string[];
|
|
104
|
+
readonly filesUnmatched: number;
|
|
105
|
+
readonly filesUpdated: number;
|
|
106
|
+
readonly matched: number;
|
|
107
|
+
readonly total: number;
|
|
108
|
+
readonly unchecked: number;
|
|
109
|
+
readonly uncheckedKeysByFile: readonly {
|
|
110
|
+
readonly filePath: string;
|
|
111
|
+
readonly keys: readonly string[];
|
|
112
|
+
}[];
|
|
113
|
+
readonly unmatched: number;
|
|
114
|
+
readonly updated: number;
|
|
115
|
+
};
|
|
60
116
|
}, import("effect/PlatformError").PlatformError | import("#error.ts").VitestRerunError, FileSystem.FileSystem>;
|
|
61
117
|
export {};
|
|
62
118
|
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/internal/snapshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/internal/snapshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAK/C,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBlB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AAOlD,eAAO,MAAM,WAAW,uJAKtB,CAAC;AAEH,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE,CAEpD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAElD;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8FAGvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8GAOvB,CAAC"}
|
|
@@ -8,6 +8,22 @@ const SnapshotSchema = Schema.Struct({
|
|
|
8
8
|
failures: Schema.Record(Schema.String, Schema.Struct({ attempts: Schema.Number, messages: Schema.Array(Schema.String) })),
|
|
9
9
|
files: SnapshotFiles,
|
|
10
10
|
flaky: Schema.Array(FlakyTest),
|
|
11
|
+
summary: Schema.Struct({
|
|
12
|
+
added: Schema.Number,
|
|
13
|
+
didUpdate: Schema.Boolean,
|
|
14
|
+
failure: Schema.Boolean,
|
|
15
|
+
filesAdded: Schema.Number,
|
|
16
|
+
filesRemoved: Schema.Number,
|
|
17
|
+
filesRemovedList: Schema.Array(Schema.String),
|
|
18
|
+
filesUnmatched: Schema.Number,
|
|
19
|
+
filesUpdated: Schema.Number,
|
|
20
|
+
matched: Schema.Number,
|
|
21
|
+
total: Schema.Number,
|
|
22
|
+
unchecked: Schema.Number,
|
|
23
|
+
uncheckedKeysByFile: Schema.Array(Schema.Struct({ filePath: Schema.String, keys: Schema.Array(Schema.String) })),
|
|
24
|
+
unmatched: Schema.Number,
|
|
25
|
+
updated: Schema.Number,
|
|
26
|
+
}),
|
|
11
27
|
});
|
|
12
28
|
const decodeSnapshot = Schema.decodeUnknownEffect(SnapshotSchema);
|
|
13
29
|
const Report = Schema.Struct({ testResults: Schema.Array(Schema.Struct({ name: Schema.String, status: Schema.Literals(["failed", "passed"]) })) });
|
|
@@ -21,6 +37,9 @@ export const failedFiles = Effect.fn("VitestRerun.failedFiles")(function* (path)
|
|
|
21
37
|
export function tests(tasks) {
|
|
22
38
|
return tasks.flatMap((task) => (task.type === "suite" ? tests(task.tasks) : [task]));
|
|
23
39
|
}
|
|
40
|
+
export function hasSuiteErrors(task) {
|
|
41
|
+
return task.type === "suite" && ((task.result?.errors?.length ?? 0) > 0 || task.tasks.some(hasSuiteErrors));
|
|
42
|
+
}
|
|
24
43
|
export const saveSnapshot = Effect.fn("VitestRerun.saveSnapshot")(function* (path, snapshot) {
|
|
25
44
|
const fs = yield* FileSystem.FileSystem;
|
|
26
45
|
yield* fs.writeFile(path, serialize(snapshot));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/internal/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/internal/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summaryLine.d.ts","sourceRoot":"","sources":["../../src/internal/summaryLine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE7D,eAAO,MAAM,WAAW,iIAOtB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Config, Console, Effect, FileSystem } from "effect";
|
|
2
|
+
export const summaryLine = Effect.fn("VitestRerun.summaryLine")(function* (line) {
|
|
3
|
+
const fs = yield* FileSystem.FileSystem;
|
|
4
|
+
const summary = yield* Config.String("GITHUB_STEP_SUMMARY").pipe(Config.withDefault(""));
|
|
5
|
+
yield* Console.log(line);
|
|
6
|
+
if (summary !== "") {
|
|
7
|
+
yield* fs.writeFileString(summary, `${line}\n`, { flag: "a" });
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=summaryLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summaryLine.js","sourceRoot":"","sources":["../../src/internal/summaryLine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAY;IACtF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IACzF,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACpB,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAChE,CAAC;AACF,CAAC,CAAC,CAAC"}
|
package/dist/rerun.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rerun.d.ts","sourceRoot":"","sources":["../src/rerun.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAU,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAgB,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkDhD,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"rerun.d.ts","sourceRoot":"","sources":["../src/rerun.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAU,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAgB,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkDhD,eAAO,MAAM,KAAK,yMAaD,CAAC"}
|
package/dist/rerun.js
CHANGED
|
@@ -43,6 +43,7 @@ const removeSnapshots = Effect.fn("VitestRerun.removeSnapshots")(function* (outp
|
|
|
43
43
|
export const rerun = Effect.fn("VitestRerun.rerun")(function* (options) {
|
|
44
44
|
yield* removeReports(options.outputDir);
|
|
45
45
|
let attempts = 1;
|
|
46
|
+
yield* Effect.addFinalizer(() => removeSnapshots(options.outputDir, attempts).pipe(Effect.orDie));
|
|
46
47
|
let code = yield* spawnAttempt(options, attempts);
|
|
47
48
|
while (attempts <= options.reruns && Option.exists(code, (status) => status !== 0) && (yield* rerunnable(options.outputDir, attempts))) {
|
|
48
49
|
if (attempts === 1) {
|
|
@@ -51,7 +52,6 @@ export const rerun = Effect.fn("VitestRerun.rerun")(function* (options) {
|
|
|
51
52
|
attempts += 1;
|
|
52
53
|
code = yield* spawnAttempt(options, attempts);
|
|
53
54
|
}
|
|
54
|
-
yield* removeSnapshots(options.outputDir, attempts);
|
|
55
55
|
return Option.getOrElse(code, () => 1);
|
|
56
|
-
});
|
|
56
|
+
}, Effect.scoped);
|
|
57
57
|
//# sourceMappingURL=rerun.js.map
|
package/dist/rerun.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rerun.js","sourceRoot":"","sources":["../src/rerun.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rerun.js","sourceRoot":"","sources":["../src/rerun.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/vitest-rerun",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Reruns failed Vitest tests in a fresh process and reports which tests were flaky",
|
|
5
5
|
"homepage": "https://github.com/ShivaeDev/platform/tree/main/packages/vitest-rerun#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -42,13 +42,16 @@
|
|
|
42
42
|
"CHANGELOG.md",
|
|
43
43
|
"README.md"
|
|
44
44
|
],
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@shivaedev/service": "0.6.1"
|
|
47
|
+
},
|
|
45
48
|
"devDependencies": {
|
|
46
49
|
"@effect/platform-node": "4.0.6",
|
|
47
50
|
"@effect/platform-node-shared": "4.0.6",
|
|
48
51
|
"@effect/vitest": "4.0.6",
|
|
49
|
-
"@shivaedev/quality": "0.
|
|
50
|
-
"@shivaedev/test": "0.
|
|
51
|
-
"@shivaedev/test-story": "0.
|
|
52
|
+
"@shivaedev/quality": "0.55.0",
|
|
53
|
+
"@shivaedev/test": "0.12.1",
|
|
54
|
+
"@shivaedev/test-story": "0.33.0",
|
|
52
55
|
"@types/node": "24.19.2",
|
|
53
56
|
"@vitest/coverage-v8": "5.0.5",
|
|
54
57
|
"effect": "4.0.6",
|