@glubean/runner 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { TestExecutor } from "./executor.js";
2
+ export type { EventHandler, ExecutionBatchResult, ExecutionContext, ExecutionEvent, ExecutionNetworkPolicy, ExecutionOptions, ExecutionResult, ExecutorOptions, SingleExecutionOptions, TimelineEvent, } from "./executor.js";
3
+ export { LOCAL_RUN_DEFAULTS, normalizePositiveTimeoutMs, SHARED_RUN_DEFAULTS, toExecutionOptions, toSingleExecutionOptions, WORKER_RUN_DEFAULTS, } from "./config.js";
4
+ export type { SharedRunConfig } from "./config.js";
5
+ export { autoResolve, findTestByExport, findTestById, isEachBuilder, isTest, isTestBuilder, resolveModuleTests, } from "./resolve.js";
6
+ export type { ResolvedTest } from "./resolve.js";
7
+ export { aggregate, evaluateThresholds, MetricCollector, parseExpression } from "./thresholds.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,MAAM,EACN,aAAa,EACb,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { TestExecutor } from "./executor.js";
2
+ export { LOCAL_RUN_DEFAULTS, normalizePositiveTimeoutMs, SHARED_RUN_DEFAULTS, toExecutionOptions, toSingleExecutionOptions, WORKER_RUN_DEFAULTS, } from "./config.js";
3
+ export { autoResolve, findTestByExport, findTestById, isEachBuilder, isTest, isTestBuilder, resolveModuleTests, } from "./resolve.js";
4
+ export { aggregate, evaluateThresholds, MetricCollector, parseExpression } from "./thresholds.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAc7C,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,MAAM,EACN,aAAa,EACb,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface ResponseBudgetOptions {
2
+ requestUrl: URL;
3
+ maxResponseBytes: number;
4
+ getUsedResponseBytes: () => number;
5
+ addUsedResponseBytes: (delta: number) => void;
6
+ emitWarning: (code: string, message: string) => void;
7
+ }
8
+ export declare function applyResponseByteBudget(response: Response, options: ResponseBudgetOptions): Response;
9
+ //# sourceMappingURL=network_budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network_budget.d.ts","sourceRoot":"","sources":["../src/network_budget.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,GAAG,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,MAAM,CAAC;IACnC,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD;AAQD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,qBAAqB,GAC7B,QAAQ,CA2CV"}
@@ -0,0 +1,34 @@
1
+ function createBudgetExceededError(maxResponseBytes) {
2
+ return new Error(`Network policy exceeded response-byte budget (${maxResponseBytes}).`);
3
+ }
4
+ export function applyResponseByteBudget(response, options) {
5
+ if (!response.body)
6
+ return response;
7
+ const contentLength = Number(response.headers.get("content-length") ?? "");
8
+ if (Number.isFinite(contentLength) && contentLength > 0) {
9
+ if (options.getUsedResponseBytes() + contentLength > options.maxResponseBytes) {
10
+ options.emitWarning("response_budget_exceeded", `Response-byte budget exceeded (${options.maxResponseBytes})`);
11
+ throw createBudgetExceededError(options.maxResponseBytes);
12
+ }
13
+ }
14
+ else {
15
+ options.emitWarning("response_size_unknown", `No content-length for ${options.requestUrl.href}; enforcing response-byte budget via stream counting.`);
16
+ }
17
+ const budgetedBody = response.body.pipeThrough(new TransformStream({
18
+ transform(chunk, controller) {
19
+ options.addUsedResponseBytes(chunk.byteLength);
20
+ if (options.getUsedResponseBytes() > options.maxResponseBytes) {
21
+ options.emitWarning("response_budget_exceeded", `Response-byte budget exceeded (${options.maxResponseBytes})`);
22
+ controller.error(createBudgetExceededError(options.maxResponseBytes));
23
+ return;
24
+ }
25
+ controller.enqueue(chunk);
26
+ },
27
+ }));
28
+ return new Response(budgetedBody, {
29
+ status: response.status,
30
+ statusText: response.statusText,
31
+ headers: response.headers,
32
+ });
33
+ }
34
+ //# sourceMappingURL=network_budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network_budget.js","sourceRoot":"","sources":["../src/network_budget.ts"],"names":[],"mappings":"AAQA,SAAS,yBAAyB,CAAC,gBAAwB;IACzD,OAAO,IAAI,KAAK,CACd,iDAAiD,gBAAgB,IAAI,CACtE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,OAA8B;IAE9B,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAEpC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACxD,IACE,OAAO,CAAC,oBAAoB,EAAE,GAAG,aAAa,GAAG,OAAO,CAAC,gBAAgB,EACzE,CAAC;YACD,OAAO,CAAC,WAAW,CACjB,0BAA0B,EAC1B,kCAAkC,OAAO,CAAC,gBAAgB,GAAG,CAC9D,CAAC;YACF,MAAM,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,WAAW,CACjB,uBAAuB,EACvB,yBAAyB,OAAO,CAAC,UAAU,CAAC,IAAI,uDAAuD,CACxG,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAC5C,IAAI,eAAe,CAAyB;QAC1C,SAAS,CAAC,KAAK,EAAE,UAAU;YACzB,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,oBAAoB,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC9D,OAAO,CAAC,WAAW,CACjB,0BAA0B,EAC1B,kCAAkC,OAAO,CAAC,gBAAgB,GAAG,CAC9D,CAAC;gBACF,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACtE,OAAO;YACT,CAAC;YACD,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;KACF,CAAC,CACH,CAAC;IAEF,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE;QAChC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Utilities for shared-serverless network guardrails.
3
+ */
4
+ export declare const SHARED_SERVERLESS_BLOCKED_HOSTNAMES: Set<string>;
5
+ export declare const SHARED_SERVERLESS_METADATA_IPS: Set<string>;
6
+ export declare function isIpLiteral(hostname: string): boolean;
7
+ export declare function resolveUrlPort(url: URL): number;
8
+ export declare function isAllowedProtocol(protocol: string): boolean;
9
+ export declare function isAllowedPort(port: number, allowedPorts: number[]): boolean;
10
+ export declare function classifyHostnameBlockReason(hostname: string): string | undefined;
11
+ export declare function classifyIpBlockReason(ip: string): string | undefined;
12
+ //# sourceMappingURL=network_policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network_policy.d.ts","sourceRoot":"","sources":["../src/network_policy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,mCAAmC,aAK9C,CAAC;AAEH,eAAO,MAAM,8BAA8B,aAIzC,CAAC;AAEH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAG/C;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAE3E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMhF;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA8BpE"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Utilities for shared-serverless network guardrails.
3
+ */
4
+ export const SHARED_SERVERLESS_BLOCKED_HOSTNAMES = new Set([
5
+ "localhost",
6
+ "localhost.localdomain",
7
+ "metadata.google.internal",
8
+ "metadata",
9
+ ]);
10
+ export const SHARED_SERVERLESS_METADATA_IPS = new Set([
11
+ "169.254.169.254", // AWS / GCP / Azure metadata endpoint
12
+ "100.100.100.200", // Alibaba Cloud metadata endpoint
13
+ "fd00:ec2::254", // AWS IPv6 metadata endpoint
14
+ ]);
15
+ export function isIpLiteral(hostname) {
16
+ const normalized = unwrapIpBrackets(hostname.toLowerCase());
17
+ return isIpv4(normalized) || isIpv6(normalized);
18
+ }
19
+ export function resolveUrlPort(url) {
20
+ if (url.port)
21
+ return Number(url.port);
22
+ return url.protocol === "https:" ? 443 : 80;
23
+ }
24
+ export function isAllowedProtocol(protocol) {
25
+ return protocol === "http:" || protocol === "https:";
26
+ }
27
+ export function isAllowedPort(port, allowedPorts) {
28
+ return allowedPorts.includes(port);
29
+ }
30
+ export function classifyHostnameBlockReason(hostname) {
31
+ const normalized = hostname.toLowerCase();
32
+ if (SHARED_SERVERLESS_BLOCKED_HOSTNAMES.has(normalized)) {
33
+ return "blocked_hostname";
34
+ }
35
+ return undefined;
36
+ }
37
+ export function classifyIpBlockReason(ip) {
38
+ const normalized = unwrapIpBrackets(ip.toLowerCase());
39
+ if (SHARED_SERVERLESS_METADATA_IPS.has(normalized)) {
40
+ return "metadata_ip";
41
+ }
42
+ if (isIpv4(normalized)) {
43
+ const octets = normalized.split(".").map((value) => Number(value));
44
+ const [a, b] = octets;
45
+ if (a === 127 || a === 0)
46
+ return "loopback_ip";
47
+ if (a === 10)
48
+ return "private_ip";
49
+ if (a === 192 && b === 168)
50
+ return "private_ip";
51
+ if (a === 172 && b >= 16 && b <= 31)
52
+ return "private_ip";
53
+ if (a === 169 && b === 254)
54
+ return "link_local_ip";
55
+ return undefined;
56
+ }
57
+ if (isIpv6(normalized)) {
58
+ if (normalized === "::1")
59
+ return "loopback_ip";
60
+ if (normalized.startsWith("fe80:"))
61
+ return "link_local_ip";
62
+ if (normalized.startsWith("fc") || normalized.startsWith("fd")) {
63
+ return "private_ip";
64
+ }
65
+ if (normalized.startsWith("::ffff:")) {
66
+ const mapped = normalized.slice("::ffff:".length);
67
+ return classifyIpBlockReason(mapped);
68
+ }
69
+ }
70
+ return undefined;
71
+ }
72
+ function isIpv4(value) {
73
+ const parts = value.split(".");
74
+ if (parts.length !== 4)
75
+ return false;
76
+ return parts.every((part) => {
77
+ if (!/^\d+$/.test(part))
78
+ return false;
79
+ const n = Number(part);
80
+ return n >= 0 && n <= 255;
81
+ });
82
+ }
83
+ function isIpv6(value) {
84
+ return value.includes(":");
85
+ }
86
+ function unwrapIpBrackets(value) {
87
+ if (value.startsWith("[") && value.endsWith("]")) {
88
+ return value.slice(1, -1);
89
+ }
90
+ return value;
91
+ }
92
+ //# sourceMappingURL=network_policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network_policy.js","sourceRoot":"","sources":["../src/network_policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Shared test resolution utilities.
3
+ *
4
+ * Extracted from harness.ts so that both the runner sandbox and external
5
+ * consumers (e.g. MCP server) can resolve module exports into Test objects
6
+ * using the same logic.
7
+ *
8
+ * @module
9
+ */
10
+ import type { Test } from "@glubean/sdk";
11
+ /**
12
+ * Lightweight metadata about a discovered test.
13
+ *
14
+ * Returned by {@link resolveModuleTests} after resolving all export shapes
15
+ * (plain `Test`, `Test[]`, `TestBuilder`, `EachBuilder`).
16
+ *
17
+ * Consumers should use `id` for routing (passing to the runner) and
18
+ * `exportName` for display / fallback lookup.
19
+ */
20
+ export interface ResolvedTest {
21
+ exportName: string;
22
+ id: string;
23
+ name?: string;
24
+ tags?: string[];
25
+ type: "simple" | "steps";
26
+ only?: boolean;
27
+ skip?: boolean;
28
+ }
29
+ /**
30
+ * Type guard — check if a value is a resolved `Test` object.
31
+ *
32
+ * A Test has `meta` (with at least `id`) and `type` ("simple" | "steps").
33
+ */
34
+ export declare function isTest(obj: unknown): obj is Test<unknown>;
35
+ /**
36
+ * Type guard — check if a value is an un-built `TestBuilder`.
37
+ *
38
+ * The builder carries `__glubean_type === "builder"` and a `build()` method
39
+ * that returns a single `Test`.
40
+ */
41
+ export declare function isTestBuilder(obj: unknown): obj is {
42
+ __glubean_type: "builder";
43
+ build(): Test<unknown>;
44
+ };
45
+ /**
46
+ * Type guard — check if a value is an un-built `EachBuilder`
47
+ * (from `test.each()` builder mode).
48
+ *
49
+ * The builder carries `__glubean_type === "each-builder"` and a `build()`
50
+ * method that returns a `Test[]`.
51
+ */
52
+ export declare function isEachBuilder(obj: unknown): obj is {
53
+ __glubean_type: "each-builder";
54
+ build(): Test<unknown>[];
55
+ };
56
+ /**
57
+ * If the value is a `TestBuilder`, call `.build()` to get a `Test`.
58
+ * If the value is an `EachBuilder`, call `.build()` to get a `Test[]`.
59
+ * Otherwise return as-is.
60
+ */
61
+ export declare function autoResolve(value: unknown): unknown;
62
+ /**
63
+ * Enumerate all tests from an imported module.
64
+ *
65
+ * Handles every export shape produced by the SDK:
66
+ * - Plain `Test` object (`test("id", fn)` or built builder)
67
+ * - `Test[]` array (`test.each(data)("id-$key", fn)`)
68
+ * - Un-built `TestBuilder` (`test("id").step(...)`)
69
+ * - Un-built `EachBuilder` (`test.each(data)("id-$key").step(...)`)
70
+ *
71
+ * @param module The imported user module (`await import(url)`)
72
+ * @returns Array of {@link ResolvedTest} metadata for every discovered test
73
+ */
74
+ export declare function resolveModuleTests(module: Record<string, unknown>): ResolvedTest[];
75
+ /**
76
+ * Find a test by its `meta.id` in an imported module.
77
+ *
78
+ * Searches: default export, direct export keyed by testId, then all exports.
79
+ * Automatically builds any `TestBuilder` or `EachBuilder` it encounters.
80
+ *
81
+ * @param userModule The imported user test module
82
+ * @param testId The test ID (`meta.id`) to find
83
+ * @returns The `Test` object if found, `undefined` otherwise
84
+ */
85
+ export declare function findTestById(userModule: Record<string, unknown>, testId: string): Test<unknown> | undefined;
86
+ /**
87
+ * Find a test by its export name instead of test ID.
88
+ *
89
+ * Used as a fallback for non-deterministic tests like `test.pick()`, where
90
+ * the test ID from discovery may differ from the current run's random
91
+ * selection. The export name (e.g. `"searchProducts"`) is stable across runs.
92
+ *
93
+ * @param userModule The imported user test module
94
+ * @param name The export name to look up
95
+ * @returns The first `Test` object found in that export, or `undefined`
96
+ */
97
+ export declare function findTestByExport(userModule: Record<string, unknown>, name: string): Test<unknown> | undefined;
98
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAMzC;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAMD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CASzD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,GACX,GAAG,IAAI;IAAE,cAAc,EAAE,SAAS,CAAC;IAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;CAAE,CAO9D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,GACX,GAAG,IAAI;IAAE,cAAc,EAAE,cAAc,CAAC;IAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;CAAE,CAOrE;AAMD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInD;AA2BD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,YAAY,EAAE,CAQhB;AAiDD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,EAAE,MAAM,GACb,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CA2B3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,IAAI,EAAE,MAAM,GACX,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAiB3B"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Shared test resolution utilities.
3
+ *
4
+ * Extracted from harness.ts so that both the runner sandbox and external
5
+ * consumers (e.g. MCP server) can resolve module exports into Test objects
6
+ * using the same logic.
7
+ *
8
+ * @module
9
+ */
10
+ // ---------------------------------------------------------------------------
11
+ // Type guards
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * Type guard — check if a value is a resolved `Test` object.
15
+ *
16
+ * A Test has `meta` (with at least `id`) and `type` ("simple" | "steps").
17
+ */
18
+ export function isTest(obj) {
19
+ return (typeof obj === "object" &&
20
+ obj !== null &&
21
+ "meta" in obj &&
22
+ "type" in obj &&
23
+ (obj.type === "simple" ||
24
+ obj.type === "steps"));
25
+ }
26
+ /**
27
+ * Type guard — check if a value is an un-built `TestBuilder`.
28
+ *
29
+ * The builder carries `__glubean_type === "builder"` and a `build()` method
30
+ * that returns a single `Test`.
31
+ */
32
+ export function isTestBuilder(obj) {
33
+ return (typeof obj === "object" &&
34
+ obj !== null &&
35
+ obj.__glubean_type === "builder" &&
36
+ typeof obj.build === "function");
37
+ }
38
+ /**
39
+ * Type guard — check if a value is an un-built `EachBuilder`
40
+ * (from `test.each()` builder mode).
41
+ *
42
+ * The builder carries `__glubean_type === "each-builder"` and a `build()`
43
+ * method that returns a `Test[]`.
44
+ */
45
+ export function isEachBuilder(obj) {
46
+ return (typeof obj === "object" &&
47
+ obj !== null &&
48
+ obj.__glubean_type === "each-builder" &&
49
+ typeof obj.build === "function");
50
+ }
51
+ // ---------------------------------------------------------------------------
52
+ // Auto-resolve helpers
53
+ // ---------------------------------------------------------------------------
54
+ /**
55
+ * If the value is a `TestBuilder`, call `.build()` to get a `Test`.
56
+ * If the value is an `EachBuilder`, call `.build()` to get a `Test[]`.
57
+ * Otherwise return as-is.
58
+ */
59
+ export function autoResolve(value) {
60
+ if (isTestBuilder(value))
61
+ return value.build();
62
+ if (isEachBuilder(value))
63
+ return value.build();
64
+ return value;
65
+ }
66
+ /**
67
+ * Search a resolved value (single `Test` or `Test[]`) for a matching test ID.
68
+ * @internal
69
+ */
70
+ function findInResolved(resolved, testId) {
71
+ if (isTest(resolved) && resolved.meta?.id === testId) {
72
+ return resolved;
73
+ }
74
+ if (Array.isArray(resolved)) {
75
+ for (const item of resolved) {
76
+ if (isTest(item) && item.meta?.id === testId) {
77
+ return item;
78
+ }
79
+ }
80
+ }
81
+ return undefined;
82
+ }
83
+ // ---------------------------------------------------------------------------
84
+ // Module-level resolution
85
+ // ---------------------------------------------------------------------------
86
+ /**
87
+ * Enumerate all tests from an imported module.
88
+ *
89
+ * Handles every export shape produced by the SDK:
90
+ * - Plain `Test` object (`test("id", fn)` or built builder)
91
+ * - `Test[]` array (`test.each(data)("id-$key", fn)`)
92
+ * - Un-built `TestBuilder` (`test("id").step(...)`)
93
+ * - Un-built `EachBuilder` (`test.each(data)("id-$key").step(...)`)
94
+ *
95
+ * @param module The imported user module (`await import(url)`)
96
+ * @returns Array of {@link ResolvedTest} metadata for every discovered test
97
+ */
98
+ export function resolveModuleTests(module) {
99
+ const tests = [];
100
+ for (const [exportName, value] of Object.entries(module)) {
101
+ collectTests(exportName, value, tests);
102
+ }
103
+ return tests;
104
+ }
105
+ /**
106
+ * Resolve a single export value and push any discovered tests into `out`.
107
+ * @internal
108
+ */
109
+ function collectTests(exportName, value, out) {
110
+ const resolved = autoResolve(value);
111
+ if (isTest(resolved)) {
112
+ out.push(toResolvedTest(exportName, resolved));
113
+ return;
114
+ }
115
+ if (Array.isArray(resolved)) {
116
+ for (const item of resolved) {
117
+ const resolvedItem = autoResolve(item);
118
+ if (isTest(resolvedItem)) {
119
+ out.push(toResolvedTest(exportName, resolvedItem));
120
+ }
121
+ }
122
+ }
123
+ }
124
+ /**
125
+ * Map a `Test` object to a lightweight `ResolvedTest` record.
126
+ * @internal
127
+ */
128
+ function toResolvedTest(exportName, test) {
129
+ const meta = test.meta;
130
+ return {
131
+ exportName,
132
+ id: meta.id,
133
+ name: meta.name,
134
+ tags: Array.isArray(meta.tags) ? meta.tags : typeof meta.tags === "string" ? [meta.tags] : undefined,
135
+ type: test.type,
136
+ only: meta.only ?? undefined,
137
+ skip: meta.skip ?? undefined,
138
+ };
139
+ }
140
+ // ---------------------------------------------------------------------------
141
+ // Single-test lookup (used by runner harness during execution)
142
+ // ---------------------------------------------------------------------------
143
+ /**
144
+ * Find a test by its `meta.id` in an imported module.
145
+ *
146
+ * Searches: default export, direct export keyed by testId, then all exports.
147
+ * Automatically builds any `TestBuilder` or `EachBuilder` it encounters.
148
+ *
149
+ * @param userModule The imported user test module
150
+ * @param testId The test ID (`meta.id`) to find
151
+ * @returns The `Test` object if found, `undefined` otherwise
152
+ */
153
+ export function findTestById(userModule, testId) {
154
+ // Check default export
155
+ const defaultResolved = autoResolve(userModule.default);
156
+ const fromDefault = findInResolved(defaultResolved, testId);
157
+ if (fromDefault)
158
+ return fromDefault;
159
+ // Check direct export by testId
160
+ const directResolved = autoResolve(userModule[testId]);
161
+ const fromDirect = findInResolved(directResolved, testId);
162
+ if (fromDirect)
163
+ return fromDirect;
164
+ for (const value of Object.values(userModule)) {
165
+ const resolved = autoResolve(value);
166
+ const found = findInResolved(resolved, testId);
167
+ if (found)
168
+ return found;
169
+ // Also support plain Test[] arrays (test.each simple mode exports)
170
+ if (Array.isArray(value)) {
171
+ for (const item of value) {
172
+ const resolvedItem = autoResolve(item);
173
+ const foundItem = findInResolved(resolvedItem, testId);
174
+ if (foundItem)
175
+ return foundItem;
176
+ }
177
+ }
178
+ }
179
+ return undefined;
180
+ }
181
+ /**
182
+ * Find a test by its export name instead of test ID.
183
+ *
184
+ * Used as a fallback for non-deterministic tests like `test.pick()`, where
185
+ * the test ID from discovery may differ from the current run's random
186
+ * selection. The export name (e.g. `"searchProducts"`) is stable across runs.
187
+ *
188
+ * @param userModule The imported user test module
189
+ * @param name The export name to look up
190
+ * @returns The first `Test` object found in that export, or `undefined`
191
+ */
192
+ export function findTestByExport(userModule, name) {
193
+ const value = userModule[name];
194
+ if (value === undefined)
195
+ return undefined;
196
+ const resolved = autoResolve(value);
197
+ if (isTest(resolved)) {
198
+ return resolved;
199
+ }
200
+ if (Array.isArray(resolved)) {
201
+ for (const item of resolved) {
202
+ if (isTest(item)) {
203
+ return item;
204
+ }
205
+ }
206
+ }
207
+ return undefined;
208
+ }
209
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}