@alwaysmeticulous/custom-checks 2.292.0 → 2.292.1
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/dist/__tests__/custom-checks.spec.js +49 -14
- package/dist/__tests__/custom-checks.spec.js.map +1 -1
- package/dist/__tests__/wait-for-test-run.spec.d.ts +1 -0
- package/dist/__tests__/wait-for-test-run.spec.js +110 -0
- package/dist/__tests__/wait-for-test-run.spec.js.map +1 -0
- package/dist/wait-for-test-run.d.ts +50 -0
- package/dist/wait-for-test-run.js +125 -12
- package/dist/wait-for-test-run.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="cd556762-8c3d-5988-af3c-a859d0147b2f")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
const vitest_1 = require("vitest");
|
|
@@ -121,30 +121,54 @@ const testRun = (id, status) => ({ id, status });
|
|
|
121
121
|
});
|
|
122
122
|
});
|
|
123
123
|
(0, vitest_1.describe)("findTestRunByIdAndWaitForCompletion", () => {
|
|
124
|
+
// After the run reaches a terminal status the wait resolves the "effective"
|
|
125
|
+
// test run via the network-patching-result endpoint. These tests have no
|
|
126
|
+
// patching, so it reports the original run as not-in-progress.
|
|
127
|
+
const noNetworkPatching = (id) => ({
|
|
128
|
+
data: { effectiveTestRunId: id, isNetworkPatchingInProgress: false },
|
|
129
|
+
});
|
|
124
130
|
(0, vitest_1.it)("polls until the test run reaches a terminal status", async () => {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
131
|
+
const statuses = [
|
|
132
|
+
"Running",
|
|
133
|
+
"PostProcessing",
|
|
134
|
+
"Success",
|
|
135
|
+
];
|
|
136
|
+
let statusCalls = 0;
|
|
137
|
+
client.get.mockImplementation(async (url) => {
|
|
138
|
+
if (url.endsWith("/network-patching-result")) {
|
|
139
|
+
return noNetworkPatching("tr-1");
|
|
140
|
+
}
|
|
141
|
+
const status = statuses[Math.min(statusCalls, statuses.length - 1)];
|
|
142
|
+
statusCalls += 1;
|
|
143
|
+
return { data: testRun("tr-1", status) };
|
|
144
|
+
});
|
|
129
145
|
const result = await (0, wait_for_test_run_1.findTestRunByIdAndWaitForCompletion)({
|
|
130
146
|
client: asClient(),
|
|
131
147
|
testRunId: "tr-1",
|
|
132
148
|
pollIntervalMs: 1,
|
|
133
149
|
});
|
|
134
150
|
(0, vitest_1.expect)(result.testRun.status).toBe("Success");
|
|
135
|
-
(0, vitest_1.expect)(
|
|
151
|
+
(0, vitest_1.expect)(result.testRunId).toBe("tr-1");
|
|
152
|
+
(0, vitest_1.expect)(statusCalls).toBe(3);
|
|
136
153
|
});
|
|
137
154
|
(0, vitest_1.it)("returns when a run leaves the in-progress states (e.g. Partial), not only on Success/Failure", async () => {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
155
|
+
const statuses = ["Running", "Partial"];
|
|
156
|
+
let statusCalls = 0;
|
|
157
|
+
client.get.mockImplementation(async (url) => {
|
|
158
|
+
if (url.endsWith("/network-patching-result")) {
|
|
159
|
+
return noNetworkPatching("tr-1");
|
|
160
|
+
}
|
|
161
|
+
const status = statuses[Math.min(statusCalls, statuses.length - 1)];
|
|
162
|
+
statusCalls += 1;
|
|
163
|
+
return { data: testRun("tr-1", status) };
|
|
164
|
+
});
|
|
141
165
|
const result = await (0, wait_for_test_run_1.findTestRunByIdAndWaitForCompletion)({
|
|
142
166
|
client: asClient(),
|
|
143
167
|
testRunId: "tr-1",
|
|
144
168
|
pollIntervalMs: 1,
|
|
145
169
|
});
|
|
146
170
|
(0, vitest_1.expect)(result.testRun.status).toBe("Partial");
|
|
147
|
-
(0, vitest_1.expect)(
|
|
171
|
+
(0, vitest_1.expect)(statusCalls).toBe(2);
|
|
148
172
|
});
|
|
149
173
|
(0, vitest_1.it)("throws once the timeout elapses", async () => {
|
|
150
174
|
client.get.mockResolvedValue({ data: testRun("tr-1", "Running") });
|
|
@@ -158,9 +182,20 @@ const testRun = (id, status) => ({ id, status });
|
|
|
158
182
|
});
|
|
159
183
|
(0, vitest_1.describe)("findTestRunByCommitAndWaitForCompletion", () => {
|
|
160
184
|
(0, vitest_1.it)("resolves the latest run for the commit, then waits for it to complete", async () => {
|
|
161
|
-
client.get.mockImplementation(async (url) =>
|
|
162
|
-
|
|
163
|
-
|
|
185
|
+
client.get.mockImplementation(async (url) => {
|
|
186
|
+
if (url === "test-runs/cache") {
|
|
187
|
+
return { data: testRun("tr-9", "Running") };
|
|
188
|
+
}
|
|
189
|
+
if (url.endsWith("/network-patching-result")) {
|
|
190
|
+
return {
|
|
191
|
+
data: {
|
|
192
|
+
effectiveTestRunId: "tr-9",
|
|
193
|
+
isNetworkPatchingInProgress: false,
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
return { data: testRun("tr-9", "Success") };
|
|
198
|
+
});
|
|
164
199
|
const result = await (0, wait_for_test_run_1.findTestRunByCommitAndWaitForCompletion)({
|
|
165
200
|
client: asClient(),
|
|
166
201
|
commitSha: "abc123",
|
|
@@ -180,4 +215,4 @@ const testRun = (id, status) => ({ id, status });
|
|
|
180
215
|
});
|
|
181
216
|
});
|
|
182
217
|
//# sourceMappingURL=custom-checks.spec.js.map
|
|
183
|
-
//# debugId=
|
|
218
|
+
//# debugId=cd556762-8c3d-5988-af3c-a859d0147b2f
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-checks.spec.js","sources":["../../src/__tests__/custom-checks.spec.ts"],"sourceRoot":"","names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"custom-checks.spec.js","sources":["../../src/__tests__/custom-checks.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"cd556762-8c3d-5988-af3c-a859d0147b2f"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c05cdcf4-ae16-511c-91ec-5b0b321377ed")}catch(e){}}();
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const client_1 = require("@alwaysmeticulous/client");
|
|
6
|
+
const common_1 = require("@alwaysmeticulous/common");
|
|
7
|
+
const vitest_1 = require("vitest");
|
|
8
|
+
const wait_for_test_run_1 = require("../wait-for-test-run");
|
|
9
|
+
vitest_1.vi.mock("@alwaysmeticulous/client", async (importOriginal) => {
|
|
10
|
+
const actual = await importOriginal();
|
|
11
|
+
return {
|
|
12
|
+
...actual,
|
|
13
|
+
getTestRun: vitest_1.vi.fn(),
|
|
14
|
+
getTestRunNetworkPatchingResult: vitest_1.vi.fn(),
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
const ORIGINAL = "test-run-A";
|
|
18
|
+
const MERGED = "test-run-C";
|
|
19
|
+
const TIMEOUT_MS = 100;
|
|
20
|
+
const POLL_MS = 10;
|
|
21
|
+
// Fake clock that advances virtual time whenever the code sleeps, so the
|
|
22
|
+
// poll/timeout logic runs deterministically without real timers.
|
|
23
|
+
const makeClock = () => {
|
|
24
|
+
let current = 0;
|
|
25
|
+
return {
|
|
26
|
+
now: () => current,
|
|
27
|
+
sleep: vitest_1.vi.fn(async (ms) => {
|
|
28
|
+
current += ms;
|
|
29
|
+
}),
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
const phase = (clock) => ({
|
|
33
|
+
client: {},
|
|
34
|
+
testRunId: ORIGINAL,
|
|
35
|
+
pollIntervalMs: POLL_MS,
|
|
36
|
+
timeoutMs: TIMEOUT_MS,
|
|
37
|
+
startTime: 0,
|
|
38
|
+
logger: (0, common_1.initLogger)(),
|
|
39
|
+
clock,
|
|
40
|
+
});
|
|
41
|
+
const testRunFixture = (id) => ({ id, status: "Success" });
|
|
42
|
+
(0, vitest_1.beforeEach)(() => {
|
|
43
|
+
vitest_1.vi.clearAllMocks();
|
|
44
|
+
});
|
|
45
|
+
(0, vitest_1.describe)("resolveEffectiveTestRunId", () => {
|
|
46
|
+
(0, vitest_1.it)("returns the original run when the endpoint is unavailable (404 → null)", async () => {
|
|
47
|
+
client_1.getTestRunNetworkPatchingResult.mockResolvedValue(null);
|
|
48
|
+
await (0, vitest_1.expect)((0, wait_for_test_run_1.resolveEffectiveTestRunId)(phase(makeClock()))).resolves.toBe(ORIGINAL);
|
|
49
|
+
(0, vitest_1.expect)(client_1.getTestRunNetworkPatchingResult).toHaveBeenCalledTimes(1);
|
|
50
|
+
});
|
|
51
|
+
(0, vitest_1.it)("returns the merged run id once patching has settled", async () => {
|
|
52
|
+
client_1.getTestRunNetworkPatchingResult.mockResolvedValue({
|
|
53
|
+
effectiveTestRunId: MERGED,
|
|
54
|
+
isNetworkPatchingInProgress: false,
|
|
55
|
+
});
|
|
56
|
+
await (0, vitest_1.expect)((0, wait_for_test_run_1.resolveEffectiveTestRunId)(phase(makeClock()))).resolves.toBe(MERGED);
|
|
57
|
+
});
|
|
58
|
+
(0, vitest_1.it)("keeps polling while patching is in progress, then returns the merged run", async () => {
|
|
59
|
+
client_1.getTestRunNetworkPatchingResult
|
|
60
|
+
.mockResolvedValueOnce({
|
|
61
|
+
effectiveTestRunId: ORIGINAL,
|
|
62
|
+
isNetworkPatchingInProgress: true,
|
|
63
|
+
})
|
|
64
|
+
.mockResolvedValueOnce({
|
|
65
|
+
effectiveTestRunId: ORIGINAL,
|
|
66
|
+
isNetworkPatchingInProgress: true,
|
|
67
|
+
})
|
|
68
|
+
.mockResolvedValue({
|
|
69
|
+
effectiveTestRunId: MERGED,
|
|
70
|
+
isNetworkPatchingInProgress: false,
|
|
71
|
+
});
|
|
72
|
+
await (0, vitest_1.expect)((0, wait_for_test_run_1.resolveEffectiveTestRunId)(phase(makeClock()))).resolves.toBe(MERGED);
|
|
73
|
+
(0, vitest_1.expect)(client_1.getTestRunNetworkPatchingResult).toHaveBeenCalledTimes(3);
|
|
74
|
+
});
|
|
75
|
+
(0, vitest_1.it)("returns the best-known effective id if patching never settles before the timeout", async () => {
|
|
76
|
+
client_1.getTestRunNetworkPatchingResult.mockResolvedValue({
|
|
77
|
+
effectiveTestRunId: MERGED,
|
|
78
|
+
isNetworkPatchingInProgress: true,
|
|
79
|
+
});
|
|
80
|
+
await (0, vitest_1.expect)((0, wait_for_test_run_1.resolveEffectiveTestRunId)(phase(makeClock()))).resolves.toBe(MERGED);
|
|
81
|
+
});
|
|
82
|
+
(0, vitest_1.it)("retries transient errors and then succeeds", async () => {
|
|
83
|
+
client_1.getTestRunNetworkPatchingResult
|
|
84
|
+
.mockRejectedValueOnce(new Error("boom"))
|
|
85
|
+
.mockResolvedValue({
|
|
86
|
+
effectiveTestRunId: MERGED,
|
|
87
|
+
isNetworkPatchingInProgress: false,
|
|
88
|
+
});
|
|
89
|
+
await (0, vitest_1.expect)((0, wait_for_test_run_1.resolveEffectiveTestRunId)(phase(makeClock()))).resolves.toBe(MERGED);
|
|
90
|
+
(0, vitest_1.expect)(client_1.getTestRunNetworkPatchingResult).toHaveBeenCalledTimes(2);
|
|
91
|
+
});
|
|
92
|
+
(0, vitest_1.it)("falls back to the original run if transient errors persist past the timeout", async () => {
|
|
93
|
+
client_1.getTestRunNetworkPatchingResult.mockRejectedValue(new Error("persistent"));
|
|
94
|
+
await (0, vitest_1.expect)((0, wait_for_test_run_1.resolveEffectiveTestRunId)(phase(makeClock()))).resolves.toBe(ORIGINAL);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
(0, vitest_1.describe)("fetchEffectiveTestRunOrFallback", () => {
|
|
98
|
+
(0, vitest_1.it)("returns the fetched merged run on success", async () => {
|
|
99
|
+
client_1.getTestRun.mockResolvedValue(testRunFixture(MERGED));
|
|
100
|
+
const original = testRunFixture(ORIGINAL);
|
|
101
|
+
await (0, vitest_1.expect)((0, wait_for_test_run_1.fetchEffectiveTestRunOrFallback)(phase(makeClock()), MERGED, original)).resolves.toEqual({ testRunId: MERGED, testRun: testRunFixture(MERGED) });
|
|
102
|
+
});
|
|
103
|
+
(0, vitest_1.it)("falls back to the original run if the merged run can't be fetched before the timeout", async () => {
|
|
104
|
+
client_1.getTestRun.mockRejectedValue(new Error("nope"));
|
|
105
|
+
const original = testRunFixture(ORIGINAL);
|
|
106
|
+
await (0, vitest_1.expect)((0, wait_for_test_run_1.fetchEffectiveTestRunOrFallback)(phase(makeClock()), MERGED, original)).resolves.toEqual({ testRunId: ORIGINAL, testRun: original });
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
//# sourceMappingURL=wait-for-test-run.spec.js.map
|
|
110
|
+
//# debugId=c05cdcf4-ae16-511c-91ec-5b0b321377ed
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait-for-test-run.spec.js","sources":["../../src/__tests__/wait-for-test-run.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"c05cdcf4-ae16-511c-91ec-5b0b321377ed"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import type { TestRun } from "@alwaysmeticulous/api";
|
|
2
2
|
import { type MeticulousClient } from "@alwaysmeticulous/client";
|
|
3
|
+
import { initLogger } from "@alwaysmeticulous/common";
|
|
4
|
+
type SdkLogger = ReturnType<typeof initLogger>;
|
|
5
|
+
/**
|
|
6
|
+
* Seam for the wall clock and sleeping, so the polling/grace logic can be
|
|
7
|
+
* unit-tested deterministically without real timers.
|
|
8
|
+
*/
|
|
9
|
+
export interface WaitClock {
|
|
10
|
+
now: () => number;
|
|
11
|
+
sleep: (ms: number) => Promise<void>;
|
|
12
|
+
}
|
|
3
13
|
export interface WaitForTestRunCompletionOptions {
|
|
4
14
|
/** How often to poll the test run's status, in ms. Defaults to 10000. */
|
|
5
15
|
pollIntervalMs?: number;
|
|
@@ -30,5 +40,45 @@ export type FindTestRunByIdAndWaitForCompletionOptions = WaitForTestRunCompletio
|
|
|
30
40
|
/**
|
|
31
41
|
* Waits for a known test run to reach a terminal status, returning it. Throws if
|
|
32
42
|
* it does not complete within the timeout.
|
|
43
|
+
*
|
|
44
|
+
* If network patching (session repair) is or may be triggered for the run, the
|
|
45
|
+
* results surfaced in the Meticulous UI come from the merged test run, not the
|
|
46
|
+
* original run. In that case this waits for patching to settle and returns the
|
|
47
|
+
* merged test run, so that custom check results reported against the returned id
|
|
48
|
+
* are attached to the run the user actually sees. Resilient to runs where no
|
|
49
|
+
* patching happens, and to patching that never finishes (bounded by the timeout,
|
|
50
|
+
* after which the best-known effective test run is returned rather than throwing).
|
|
33
51
|
*/
|
|
34
52
|
export declare const findTestRunByIdAndWaitForCompletion: ({ client, testRunId, pollIntervalMs, timeoutMs, }: FindTestRunByIdAndWaitForCompletionOptions) => Promise<WaitForTestRunResult>;
|
|
53
|
+
interface WaitPhaseOptions {
|
|
54
|
+
client: MeticulousClient;
|
|
55
|
+
testRunId: string;
|
|
56
|
+
pollIntervalMs: number;
|
|
57
|
+
timeoutMs: number;
|
|
58
|
+
startTime: number;
|
|
59
|
+
logger: SdkLogger;
|
|
60
|
+
clock: WaitClock;
|
|
61
|
+
}
|
|
62
|
+
export declare const pollUntilTestRunComplete: ({ client, testRunId, pollIntervalMs, timeoutMs, startTime, logger, clock, }: WaitPhaseOptions) => Promise<TestRun>;
|
|
63
|
+
/**
|
|
64
|
+
* Polls the backend for the effective test run to report custom check results
|
|
65
|
+
* against, waiting while network patching (session repair) is in progress.
|
|
66
|
+
*
|
|
67
|
+
* Returns the merged test run id once patching settles, or the original test run
|
|
68
|
+
* id when no patching applies. Resilient by design — it always returns an id
|
|
69
|
+
* rather than throwing, since the run has already completed by this point:
|
|
70
|
+
* - Older backends without the endpoint (404 → `null`) → original run.
|
|
71
|
+
* - Transient backend errors → keep retrying until the timeout, then fall back
|
|
72
|
+
* to the original run (rather than surfacing a brand-new failure mode in a
|
|
73
|
+
* window that previously couldn't fail).
|
|
74
|
+
* - Patching never settling → on timeout, the best-known effective id.
|
|
75
|
+
*/
|
|
76
|
+
export declare const resolveEffectiveTestRunId: ({ client, testRunId, pollIntervalMs, timeoutMs, startTime, logger, clock, }: WaitPhaseOptions) => Promise<string>;
|
|
77
|
+
/**
|
|
78
|
+
* Fetches the resolved (merged) test run, retrying transient errors until the
|
|
79
|
+
* timeout and then falling back to the already-resolved original run. This keeps
|
|
80
|
+
* the guarantee that the wait returns a terminal run once the original is done,
|
|
81
|
+
* even if the merged run can't be fetched.
|
|
82
|
+
*/
|
|
83
|
+
export declare const fetchEffectiveTestRunOrFallback: ({ client, pollIntervalMs, timeoutMs, startTime, logger, clock, }: WaitPhaseOptions, effectiveTestRunId: string, originalTestRun: TestRun) => Promise<WaitForTestRunResult>;
|
|
84
|
+
export {};
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9d1e4052-118e-50cd-9450-c247768e5a1b")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.findTestRunByIdAndWaitForCompletion = exports.findTestRunByCommitAndWaitForCompletion = void 0;
|
|
5
|
+
exports.fetchEffectiveTestRunOrFallback = exports.resolveEffectiveTestRunId = exports.pollUntilTestRunComplete = exports.findTestRunByIdAndWaitForCompletion = exports.findTestRunByCommitAndWaitForCompletion = void 0;
|
|
6
6
|
const client_1 = require("@alwaysmeticulous/client");
|
|
7
7
|
const common_1 = require("@alwaysmeticulous/common");
|
|
8
|
+
const REAL_CLOCK = {
|
|
9
|
+
now: () => Date.now(),
|
|
10
|
+
sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
|
|
11
|
+
};
|
|
8
12
|
// Mirrors the base-test-run polling in the SDK's `pollWhileBaseNotFound`: poll on
|
|
9
13
|
// a fixed interval, cap the total wait, and log progress at most once per
|
|
10
14
|
// PROGRESS_LOG_INTERVAL_MS so a long-running script isn't silent.
|
|
@@ -32,10 +36,41 @@ exports.findTestRunByCommitAndWaitForCompletion = findTestRunByCommitAndWaitForC
|
|
|
32
36
|
/**
|
|
33
37
|
* Waits for a known test run to reach a terminal status, returning it. Throws if
|
|
34
38
|
* it does not complete within the timeout.
|
|
39
|
+
*
|
|
40
|
+
* If network patching (session repair) is or may be triggered for the run, the
|
|
41
|
+
* results surfaced in the Meticulous UI come from the merged test run, not the
|
|
42
|
+
* original run. In that case this waits for patching to settle and returns the
|
|
43
|
+
* merged test run, so that custom check results reported against the returned id
|
|
44
|
+
* are attached to the run the user actually sees. Resilient to runs where no
|
|
45
|
+
* patching happens, and to patching that never finishes (bounded by the timeout,
|
|
46
|
+
* after which the best-known effective test run is returned rather than throwing).
|
|
35
47
|
*/
|
|
36
48
|
const findTestRunByIdAndWaitForCompletion = async ({ client, testRunId, pollIntervalMs = DEFAULT_POLL_INTERVAL_MS, timeoutMs = DEFAULT_TIMEOUT_MS, }) => {
|
|
37
|
-
const
|
|
38
|
-
|
|
49
|
+
const phase = {
|
|
50
|
+
client,
|
|
51
|
+
testRunId,
|
|
52
|
+
pollIntervalMs,
|
|
53
|
+
timeoutMs,
|
|
54
|
+
startTime: REAL_CLOCK.now(),
|
|
55
|
+
logger: (0, common_1.initLogger)(),
|
|
56
|
+
clock: REAL_CLOCK,
|
|
57
|
+
};
|
|
58
|
+
// Phase 1: wait for the requested test run to reach a terminal status.
|
|
59
|
+
const testRun = await (0, exports.pollUntilTestRunComplete)(phase);
|
|
60
|
+
// Phase 2: resolve the effective (merged) test run, accounting for network
|
|
61
|
+
// patching. Returns the original test run id when no patching applies.
|
|
62
|
+
const effectiveTestRunId = await (0, exports.resolveEffectiveTestRunId)(phase);
|
|
63
|
+
if (effectiveTestRunId === testRun.id) {
|
|
64
|
+
return { testRunId: testRun.id, testRun };
|
|
65
|
+
}
|
|
66
|
+
phase.logger.info(`Test run ${testRunId} was network patched; reporting against merged test run ${effectiveTestRunId}.`);
|
|
67
|
+
// Phase 3: fetch the merged run, falling back to the (already-terminal)
|
|
68
|
+
// original run if it can't be fetched, so a transient error here doesn't fail
|
|
69
|
+
// the whole wait after the run has completed.
|
|
70
|
+
return (0, exports.fetchEffectiveTestRunOrFallback)(phase, effectiveTestRunId, testRun);
|
|
71
|
+
};
|
|
72
|
+
exports.findTestRunByIdAndWaitForCompletion = findTestRunByIdAndWaitForCompletion;
|
|
73
|
+
const pollUntilTestRunComplete = async ({ client, testRunId, pollIntervalMs, timeoutMs, startTime, logger, clock, }) => {
|
|
39
74
|
let lastLoggedElapsedMs = 0;
|
|
40
75
|
for (;;) {
|
|
41
76
|
const testRun = await (0, client_1.getTestRun)({ client, testRunId });
|
|
@@ -44,23 +79,101 @@ const findTestRunByIdAndWaitForCompletion = async ({ client, testRunId, pollInte
|
|
|
44
79
|
// session pools), which is terminal enough and would otherwise hang here
|
|
45
80
|
// until the timeout.
|
|
46
81
|
if (!client_1.IN_PROGRESS_TEST_RUN_STATUS.includes(testRun.status)) {
|
|
47
|
-
return
|
|
82
|
+
return testRun;
|
|
48
83
|
}
|
|
49
|
-
const elapsedMs =
|
|
84
|
+
const elapsedMs = clock.now() - startTime;
|
|
50
85
|
if (elapsedMs > timeoutMs) {
|
|
51
86
|
throw new Error(`Timed out after ${Math.round(timeoutMs / 1000)}s waiting for test run ${testRunId} to complete (current status: ${testRun.status}).`);
|
|
52
87
|
}
|
|
53
88
|
// Log progress at most once every PROGRESS_LOG_INTERVAL_MS (mirroring the
|
|
54
89
|
// base-test-run wait) so a script blocked here for minutes isn't silent.
|
|
55
|
-
if (lastLoggedElapsedMs
|
|
56
|
-
elapsedMs - lastLoggedElapsedMs >= PROGRESS_LOG_INTERVAL_MS) {
|
|
90
|
+
if (shouldLogProgress(lastLoggedElapsedMs, elapsedMs)) {
|
|
57
91
|
logger.info(`Waiting for test run ${testRunId} to complete (current status: ${testRun.status}). Time elapsed: ${Math.round(elapsedMs / 1000)}s`);
|
|
58
92
|
lastLoggedElapsedMs = elapsedMs;
|
|
59
93
|
}
|
|
60
|
-
await sleep(pollIntervalMs);
|
|
94
|
+
await clock.sleep(pollIntervalMs);
|
|
61
95
|
}
|
|
62
96
|
};
|
|
63
|
-
exports.
|
|
64
|
-
|
|
97
|
+
exports.pollUntilTestRunComplete = pollUntilTestRunComplete;
|
|
98
|
+
/**
|
|
99
|
+
* Polls the backend for the effective test run to report custom check results
|
|
100
|
+
* against, waiting while network patching (session repair) is in progress.
|
|
101
|
+
*
|
|
102
|
+
* Returns the merged test run id once patching settles, or the original test run
|
|
103
|
+
* id when no patching applies. Resilient by design — it always returns an id
|
|
104
|
+
* rather than throwing, since the run has already completed by this point:
|
|
105
|
+
* - Older backends without the endpoint (404 → `null`) → original run.
|
|
106
|
+
* - Transient backend errors → keep retrying until the timeout, then fall back
|
|
107
|
+
* to the original run (rather than surfacing a brand-new failure mode in a
|
|
108
|
+
* window that previously couldn't fail).
|
|
109
|
+
* - Patching never settling → on timeout, the best-known effective id.
|
|
110
|
+
*/
|
|
111
|
+
const resolveEffectiveTestRunId = async ({ client, testRunId, pollIntervalMs, timeoutMs, startTime, logger, clock, }) => {
|
|
112
|
+
let lastLoggedElapsedMs = 0;
|
|
113
|
+
for (;;) {
|
|
114
|
+
let result;
|
|
115
|
+
try {
|
|
116
|
+
result = await (0, client_1.getTestRunNetworkPatchingResult)({ client, testRunId });
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
// Transient error talking to the backend. The run already completed, so
|
|
120
|
+
// don't fail the wait — retry until the timeout, then fall back to the
|
|
121
|
+
// original run.
|
|
122
|
+
if (clock.now() - startTime > timeoutMs) {
|
|
123
|
+
logger.warn(`Giving up resolving the network-patched test run for ${testRunId} after a transient error; reporting against the original run. ${error}`);
|
|
124
|
+
return testRunId;
|
|
125
|
+
}
|
|
126
|
+
await clock.sleep(pollIntervalMs);
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
// Older backends don't support this endpoint; fall back to the original run.
|
|
130
|
+
if (!result) {
|
|
131
|
+
return testRunId;
|
|
132
|
+
}
|
|
133
|
+
if (!result.isNetworkPatchingInProgress) {
|
|
134
|
+
return result.effectiveTestRunId;
|
|
135
|
+
}
|
|
136
|
+
const elapsedMs = clock.now() - startTime;
|
|
137
|
+
if (elapsedMs > timeoutMs) {
|
|
138
|
+
logger.warn(`Timed out after ${Math.round(timeoutMs / 1000)}s waiting for network patching of test run ${testRunId} to complete; reporting against ${result.effectiveTestRunId}.`);
|
|
139
|
+
return result.effectiveTestRunId;
|
|
140
|
+
}
|
|
141
|
+
if (shouldLogProgress(lastLoggedElapsedMs, elapsedMs)) {
|
|
142
|
+
logger.info(`Test run ${testRunId} is being network patched; waiting for the merged test run to complete. Time elapsed: ${Math.round(elapsedMs / 1000)}s`);
|
|
143
|
+
lastLoggedElapsedMs = elapsedMs;
|
|
144
|
+
}
|
|
145
|
+
await clock.sleep(pollIntervalMs);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
exports.resolveEffectiveTestRunId = resolveEffectiveTestRunId;
|
|
149
|
+
/**
|
|
150
|
+
* Fetches the resolved (merged) test run, retrying transient errors until the
|
|
151
|
+
* timeout and then falling back to the already-resolved original run. This keeps
|
|
152
|
+
* the guarantee that the wait returns a terminal run once the original is done,
|
|
153
|
+
* even if the merged run can't be fetched.
|
|
154
|
+
*/
|
|
155
|
+
const fetchEffectiveTestRunOrFallback = async ({ client, pollIntervalMs, timeoutMs, startTime, logger, clock, }, effectiveTestRunId, originalTestRun) => {
|
|
156
|
+
for (;;) {
|
|
157
|
+
try {
|
|
158
|
+
const effectiveTestRun = await (0, client_1.getTestRun)({
|
|
159
|
+
client,
|
|
160
|
+
testRunId: effectiveTestRunId,
|
|
161
|
+
});
|
|
162
|
+
return { testRunId: effectiveTestRun.id, testRun: effectiveTestRun };
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
if (clock.now() - startTime > timeoutMs) {
|
|
166
|
+
logger.warn(`Could not fetch merged test run ${effectiveTestRunId} after a transient error; reporting against the original run ${originalTestRun.id}. ${error}`);
|
|
167
|
+
return { testRunId: originalTestRun.id, testRun: originalTestRun };
|
|
168
|
+
}
|
|
169
|
+
await clock.sleep(pollIntervalMs);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
exports.fetchEffectiveTestRunOrFallback = fetchEffectiveTestRunOrFallback;
|
|
174
|
+
// Log progress at most once every PROGRESS_LOG_INTERVAL_MS so a script blocked
|
|
175
|
+
// here for minutes isn't silent.
|
|
176
|
+
const shouldLogProgress = (lastLoggedElapsedMs, elapsedMs) => lastLoggedElapsedMs === 0 ||
|
|
177
|
+
elapsedMs - lastLoggedElapsedMs >= PROGRESS_LOG_INTERVAL_MS;
|
|
65
178
|
//# sourceMappingURL=wait-for-test-run.js.map
|
|
66
|
-
//# debugId=
|
|
179
|
+
//# debugId=9d1e4052-118e-50cd-9450-c247768e5a1b
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait-for-test-run.js","sources":["../src/wait-for-test-run.ts"],"sourceRoot":"","names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"wait-for-test-run.js","sources":["../src/wait-for-test-run.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"9d1e4052-118e-50cd-9450-c247768e5a1b"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwaysmeticulous/custom-checks",
|
|
3
|
-
"version": "2.292.
|
|
3
|
+
"version": "2.292.1",
|
|
4
4
|
"description": "Helpers for writing Meticulous custom checks: fetch snapshots, wait for a test run, and report results from any script",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"p-limit": "^3.1.0",
|
|
13
|
-
"@alwaysmeticulous/api": "2.292.
|
|
14
|
-
"@alwaysmeticulous/client": "2.292.
|
|
15
|
-
"@alwaysmeticulous/
|
|
16
|
-
"@alwaysmeticulous/
|
|
13
|
+
"@alwaysmeticulous/api": "2.292.1",
|
|
14
|
+
"@alwaysmeticulous/client": "2.292.1",
|
|
15
|
+
"@alwaysmeticulous/common": "2.290.3",
|
|
16
|
+
"@alwaysmeticulous/downloading-helpers": "2.292.1"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"vitest": "^4.1.4"
|