@alchemy.run/test 0.0.0 → 2.0.0-beta.86

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.
Files changed (119) hide show
  1. package/LICENSE +201 -0
  2. package/bin/alchemy-test.ts +2 -0
  3. package/lib/Alchemy.d.ts +77 -0
  4. package/lib/Alchemy.d.ts.map +1 -0
  5. package/lib/Alchemy.js +195 -0
  6. package/lib/Alchemy.js.map +1 -0
  7. package/lib/Api.d.ts +135 -0
  8. package/lib/Api.d.ts.map +1 -0
  9. package/lib/Api.js +245 -0
  10. package/lib/Api.js.map +1 -0
  11. package/lib/Bun.d.ts +66 -0
  12. package/lib/Bun.d.ts.map +1 -0
  13. package/lib/Bun.js +142 -0
  14. package/lib/Bun.js.map +1 -0
  15. package/lib/Capture.d.ts +10 -0
  16. package/lib/Capture.d.ts.map +1 -0
  17. package/lib/Capture.js +68 -0
  18. package/lib/Capture.js.map +1 -0
  19. package/lib/Core.d.ts +301 -0
  20. package/lib/Core.d.ts.map +1 -0
  21. package/lib/Core.js +442 -0
  22. package/lib/Core.js.map +1 -0
  23. package/lib/DevCli.d.ts +47 -0
  24. package/lib/DevCli.d.ts.map +1 -0
  25. package/lib/DevCli.js +181 -0
  26. package/lib/DevCli.js.map +1 -0
  27. package/lib/Expect.d.ts +84 -0
  28. package/lib/Expect.d.ts.map +1 -0
  29. package/lib/Expect.js +518 -0
  30. package/lib/Expect.js.map +1 -0
  31. package/lib/FileLog.d.ts +27 -0
  32. package/lib/FileLog.d.ts.map +1 -0
  33. package/lib/FileLog.js +136 -0
  34. package/lib/FileLog.js.map +1 -0
  35. package/lib/Http.d.ts +109 -0
  36. package/lib/Http.d.ts.map +1 -0
  37. package/lib/Http.js +123 -0
  38. package/lib/Http.js.map +1 -0
  39. package/lib/Model.d.ts +111 -0
  40. package/lib/Model.d.ts.map +1 -0
  41. package/lib/Model.js +59 -0
  42. package/lib/Model.js.map +1 -0
  43. package/lib/PlainReporter.d.ts +18 -0
  44. package/lib/PlainReporter.d.ts.map +1 -0
  45. package/lib/PlainReporter.js +274 -0
  46. package/lib/PlainReporter.js.map +1 -0
  47. package/lib/Plan.d.ts +19 -0
  48. package/lib/Plan.d.ts.map +1 -0
  49. package/lib/Plan.js +32 -0
  50. package/lib/Plan.js.map +1 -0
  51. package/lib/Registry.d.ts +34 -0
  52. package/lib/Registry.d.ts.map +1 -0
  53. package/lib/Registry.js +80 -0
  54. package/lib/Registry.js.map +1 -0
  55. package/lib/Reporter.d.ts +160 -0
  56. package/lib/Reporter.d.ts.map +1 -0
  57. package/lib/Reporter.js +9 -0
  58. package/lib/Reporter.js.map +1 -0
  59. package/lib/Runner.d.ts +51 -0
  60. package/lib/Runner.d.ts.map +1 -0
  61. package/lib/Runner.js +1075 -0
  62. package/lib/Runner.js.map +1 -0
  63. package/lib/StrayOutput.d.ts +8 -0
  64. package/lib/StrayOutput.d.ts.map +1 -0
  65. package/lib/StrayOutput.js +259 -0
  66. package/lib/StrayOutput.js.map +1 -0
  67. package/lib/Tags.d.ts +17 -0
  68. package/lib/Tags.d.ts.map +1 -0
  69. package/lib/Tags.js +84 -0
  70. package/lib/Tags.js.map +1 -0
  71. package/lib/TestState.d.ts +12 -0
  72. package/lib/TestState.d.ts.map +1 -0
  73. package/lib/TestState.js +15 -0
  74. package/lib/TestState.js.map +1 -0
  75. package/lib/Tui.d.ts +4 -0
  76. package/lib/Tui.d.ts.map +1 -0
  77. package/lib/Tui.js +1137 -0
  78. package/lib/Tui.js.map +1 -0
  79. package/lib/Vitest.d.ts +58 -0
  80. package/lib/Vitest.d.ts.map +1 -0
  81. package/lib/Vitest.js +131 -0
  82. package/lib/Vitest.js.map +1 -0
  83. package/lib/WorktreeStage.d.ts +17 -0
  84. package/lib/WorktreeStage.d.ts.map +1 -0
  85. package/lib/WorktreeStage.js +48 -0
  86. package/lib/WorktreeStage.js.map +1 -0
  87. package/lib/cli.d.ts +2 -0
  88. package/lib/cli.d.ts.map +1 -0
  89. package/lib/cli.js +222 -0
  90. package/lib/cli.js.map +1 -0
  91. package/lib/index.d.ts +14 -0
  92. package/lib/index.d.ts.map +1 -0
  93. package/lib/index.js +12 -0
  94. package/lib/index.js.map +1 -0
  95. package/package.json +73 -3
  96. package/src/Alchemy.ts +337 -0
  97. package/src/Api.ts +522 -0
  98. package/src/Bun.ts +254 -0
  99. package/src/Capture.ts +72 -0
  100. package/src/Core.ts +906 -0
  101. package/src/DevCli.ts +229 -0
  102. package/src/Expect.ts +763 -0
  103. package/src/FileLog.ts +158 -0
  104. package/src/Http.ts +201 -0
  105. package/src/Model.ts +178 -0
  106. package/src/PlainReporter.ts +338 -0
  107. package/src/Plan.ts +45 -0
  108. package/src/Registry.ts +101 -0
  109. package/src/Reporter.ts +171 -0
  110. package/src/Runner.ts +1361 -0
  111. package/src/StrayOutput.ts +283 -0
  112. package/src/Tags.ts +100 -0
  113. package/src/TestState.ts +35 -0
  114. package/src/Tui.ts +1272 -0
  115. package/src/Vitest.ts +238 -0
  116. package/src/WorktreeStage.ts +45 -0
  117. package/src/cli.ts +330 -0
  118. package/src/index.ts +58 -0
  119. package/README.md +0 -9
package/lib/Tui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tui.js","sources":["../src/Tui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { StackDefinition } from "alchemy/Stack";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Core from "./Core.ts";
4
+ export { executeWhenReady, getWhenReady, guardContentType, guardedFetchLayer, rpcClientLayer, WorkerNotReady, type EdgeGuardOptions, type WhenReadyOptions, } from "./Http.ts";
5
+ export type MakeOptions<ROut = any> = Core.MakeOptions<ROut>;
6
+ export type ScratchStack = Core.ScratchStack;
7
+ export type TestEffect<A, R = never> = Core.TestEffect<A, R>;
8
+ export declare const defaultStage: typeof Core.defaultStage;
9
+ export declare const resolveStage: typeof Core.resolveStage;
10
+ type TestOptions = number | {
11
+ timeout?: number;
12
+ };
13
+ interface TestFn {
14
+ (name: string, eff: TestEffect<void>, options?: TestOptions): void;
15
+ skip: (name: string, eff: TestEffect<void>, options?: TestOptions) => void;
16
+ skipIf: (condition: boolean) => (name: string, eff: TestEffect<void>, options?: TestOptions) => void;
17
+ only: (name: string, eff: TestEffect<void>, options?: TestOptions) => void;
18
+ todo: (name: string, eff: TestEffect<void>, options?: TestOptions) => void;
19
+ provider: ProviderFn;
20
+ }
21
+ interface ProviderFn {
22
+ (name: string, fn: (stack: ScratchStack) => Effect.Effect<void, any, any>, options?: TestOptions): void;
23
+ skip: (name: string, fn: (stack: ScratchStack) => Effect.Effect<void, any, any>, options?: TestOptions) => void;
24
+ skipIf: (condition: boolean) => (name: string, fn: (stack: ScratchStack) => Effect.Effect<void, any, any>, options?: TestOptions) => void;
25
+ }
26
+ interface BeforeAllFn {
27
+ <A>(eff: TestEffect<A>, options?: TestOptions): Effect.Effect<A>;
28
+ }
29
+ interface BeforeEachFn {
30
+ (eff: TestEffect<void>, options?: TestOptions): void;
31
+ }
32
+ interface AfterAllFn {
33
+ (eff: TestEffect<any>, options?: TestOptions): void;
34
+ skipIf: (predicate: boolean) => (eff: TestEffect<any>, options?: TestOptions) => void;
35
+ }
36
+ interface AfterEachFn {
37
+ (eff: TestEffect<void>, options?: TestOptions): void;
38
+ }
39
+ export interface TestApi {
40
+ test: TestFn;
41
+ beforeAll: BeforeAllFn;
42
+ beforeEach: BeforeEachFn;
43
+ afterAll: AfterAllFn;
44
+ afterEach: AfterEachFn;
45
+ deploy: Core.Deploy;
46
+ destroy: <ROut>(stack: StackDefinition<ROut>, options?: {
47
+ stage?: string;
48
+ include?: never;
49
+ exclude?: never;
50
+ }) => ReturnType<typeof Core.destroy>;
51
+ }
52
+ /**
53
+ * Build the per-file test API. See {@link "./Bun.ts"} for the same shape
54
+ * over `bun:test`. Vitest variant uses `@effect/vitest`'s `it.live` so
55
+ * Effect-aware tests stay first-class.
56
+ */
57
+ export declare const make: <ROut = any>(options: MakeOptions<ROut>) => TestApi;
58
+ //# sourceMappingURL=Vitest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vitest.d.ts","sources":["../src/Vitest.ts"],"names":[],"mappings":"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"}
package/lib/Vitest.js ADDED
@@ -0,0 +1,131 @@
1
+ import { it } from "@effect/vitest";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Exit from "effect/Exit";
4
+ import * as Scope from "effect/Scope";
5
+ import { afterAll as vitestAfterAll, afterEach as vitestAfterEach, beforeAll as vitestBeforeAll, beforeEach as vitestBeforeEach, } from "vitest";
6
+ import * as Core from "./Core.js";
7
+ export { executeWhenReady, getWhenReady, guardContentType, guardedFetchLayer, rpcClientLayer, WorkerNotReady, } from "./Http.js";
8
+ export const defaultStage = Core.defaultStage;
9
+ export const resolveStage = Core.resolveStage;
10
+ const timeoutOf = (opts) => typeof opts === "number" ? opts : opts?.timeout;
11
+ const DEFAULT_TIMEOUT = 120_000;
12
+ /**
13
+ * Build the per-file test API. See {@link "./Bun.ts"} for the same shape
14
+ * over `bun:test`. Vitest variant uses `@effect/vitest`'s `it.live` so
15
+ * Effect-aware tests stay first-class.
16
+ */
17
+ export const make = (options) => {
18
+ // See `Test/Bun.ts` for the rationale: the dev sidecar must outlive a
19
+ // single `runPromise` boundary, so all hooks share one scope that's only
20
+ // closed after `destroy(...)` runs.
21
+ const sharedScope = Scope.makeUnsafe("sequential");
22
+ // In dev mode, run local providers behind one file-scoped RPC sidecar
23
+ // (the `alchemy dev` topology). Lives in its own scope — NOT sharedScope,
24
+ // which `destroy(Stack)` closes mid-file in self-contained tests — and is
25
+ // closed by the fallback afterAll below.
26
+ const sidecar = Core.makeSidecarHandle(options);
27
+ const wrap = (eff) => Core.toEffect(eff, options, sharedScope, sidecar);
28
+ const runEff = (eff) => Core.run(eff, options, sharedScope, sidecar);
29
+ const test = ((name, eff, opts) => {
30
+ it.live(name, () => wrap(eff), timeoutOf(opts));
31
+ });
32
+ test.skip = (name, _eff, opts) => {
33
+ it.skip(name, () => { }, timeoutOf(opts));
34
+ };
35
+ test.skipIf = (condition) => (name, eff, opts) => {
36
+ if (condition) {
37
+ it.skip(name, () => { }, timeoutOf(opts));
38
+ }
39
+ else {
40
+ it.live(name, () => wrap(eff), timeoutOf(opts));
41
+ }
42
+ };
43
+ test.only = (name, eff, opts) => {
44
+ it.live.only(name, () => wrap(eff), timeoutOf(opts));
45
+ };
46
+ test.todo = (name, _eff, _opts) => {
47
+ it.todo(name);
48
+ };
49
+ const wrapProvider = (name, fn) => {
50
+ const scratch = Core.scratchStack(options, name);
51
+ // Guarantee teardown. `test.provider` has no built-in cleanup, so a body
52
+ // that fails (assertion, API error like a 409/Unauthorized) or is
53
+ // interrupted (vitest timeout) BEFORE its trailing `stack.destroy()` would
54
+ // otherwise leak every cloud resource it deployed: the scratch's in-memory
55
+ // state is discarded with the process, so no later run can reclaim the
56
+ // orphan (only an account-wide `nuke` can). `scratch.destroy()` is
57
+ // idempotent (empty-plan apply against the shared scratch state) — a no-op
58
+ // when the body already destroyed, and it reclaims the orphans otherwise.
59
+ // `Effect.ensuring` runs the finalizer on success, failure, AND interruption.
60
+ const body = Core.withProviders(fn(scratch), options, scratch.name).pipe(Effect.ensuring(scratch.destroy().pipe(Effect.ignore)));
61
+ return Core.toEffect(body, { ...options, state: scratch.state }, sharedScope, sidecar);
62
+ };
63
+ const provider = ((name, fn, opts) => {
64
+ it.live(name, () => wrapProvider(name, fn), timeoutOf(opts));
65
+ });
66
+ provider.skip = (name, _fn, opts) => {
67
+ it.skip(name, () => { }, timeoutOf(opts));
68
+ };
69
+ provider.skipIf = (condition) => (name, fn, opts) => {
70
+ if (condition) {
71
+ it.skip(name, () => { }, timeoutOf(opts));
72
+ }
73
+ else {
74
+ it.live(name, () => wrapProvider(name, fn), timeoutOf(opts));
75
+ }
76
+ };
77
+ test.provider = provider;
78
+ const beforeAll = (eff, hookOptions) => {
79
+ let result;
80
+ vitestBeforeAll(() => runEff(eff).then((v) => (result = v)), timeoutOf(hookOptions) ?? DEFAULT_TIMEOUT);
81
+ return Effect.sync(() => result);
82
+ };
83
+ const beforeEach = (eff, hookOptions) => {
84
+ vitestBeforeEach(() => runEff(eff), timeoutOf(hookOptions));
85
+ };
86
+ const afterAll = ((eff, hookOptions) => {
87
+ vitestAfterAll(() => runEff(eff), timeoutOf(hookOptions) ?? DEFAULT_TIMEOUT);
88
+ });
89
+ afterAll.skipIf = (predicate) => (eff, hookOptions) => {
90
+ if (predicate)
91
+ return;
92
+ vitestAfterAll(() => runEff(eff), timeoutOf(hookOptions) ?? DEFAULT_TIMEOUT);
93
+ };
94
+ const afterEach = (eff, hookOptions) => {
95
+ vitestAfterEach(() => runEff(eff), timeoutOf(hookOptions));
96
+ };
97
+ // `destroy(Stack)` needs the dev sidecar alive so it can call `sidecar.stop`.
98
+ // `Scope.close` on an already-closed scope is a no-op, so the destroy
99
+ // wrapper AND the fallback cleanup hook below can both call it safely.
100
+ const closeScope = Effect.suspend(() => Scope.close(sharedScope, Exit.void)).pipe(Effect.ignore);
101
+ // Fallback cleanup: if the user never calls `destroy(Stack)` (e.g.
102
+ // `NO_DESTROY=1`), nothing else closes the shared scope and the sidecar
103
+ // child process leaks past the test process. The RPC sidecar lives in its
104
+ // own scope so that mid-file `destroy(Stack)` calls can't kill it for later
105
+ // tests.
106
+ //
107
+ // The cleanup must run after every user `afterAll` (including
108
+ // `destroy(Stack)`, which needs the sidecar). Vitest's default
109
+ // `sequence.hooks: "stack"` runs `afterAll` hooks in reverse registration
110
+ // order and `"list"` runs them in registration order, so register the
111
+ // cleanup both before (now) and after (next microtask) the file's
112
+ // `afterAll` calls, and only close on the second invocation: whichever
113
+ // order is configured, that one runs last.
114
+ const closeAll = sidecar ? Effect.andThen(closeScope, sidecar.close) : closeScope;
115
+ let cleanupCalls = 0;
116
+ const cleanup = () => (++cleanupCalls === 2 ? Effect.runPromise(closeAll) : undefined);
117
+ vitestAfterAll(cleanup, DEFAULT_TIMEOUT);
118
+ queueMicrotask(() => {
119
+ vitestAfterAll(cleanup, DEFAULT_TIMEOUT);
120
+ });
121
+ return {
122
+ test,
123
+ beforeAll,
124
+ beforeEach,
125
+ afterAll,
126
+ afterEach,
127
+ deploy: Core.makeDeploy(options, sharedScope),
128
+ destroy: (stack, callOpts) => Core.destroy(options, stack, { ...callOpts, scope: sharedScope }).pipe(Effect.ensuring(closeScope)),
129
+ };
130
+ };
131
+ //# sourceMappingURL=Vitest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vitest.js","sources":["../src/Vitest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import * as Path from "effect/Path";
4
+ /**
5
+ * The name of the linked git worktree containing `cwd`, or `undefined` in a
6
+ * main checkout (or outside git). A linked worktree's `.git` is a file
7
+ * pointing at `<common>/.git/worktrees/<name>`; a submodule's points at
8
+ * `.git/modules/<name>` and doesn't count.
9
+ */
10
+ export declare const worktreeName: (cwd: string) => Effect.Effect<string | undefined, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
11
+ /**
12
+ * The default test stage for a linked worktree: `test_$USER_<worktree>`, so
13
+ * concurrent runs from two worktrees of one developer never share
14
+ * deployments. `undefined` in a main checkout, which keeps `test_$USER`.
15
+ */
16
+ export declare const worktreeStage: (cwd: string) => Effect.Effect<string | undefined, never, FileSystem.FileSystem | Path.Path>;
17
+ //# sourceMappingURL=WorktreeStage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorktreeStage.d.ts","sources":["../src/WorktreeStage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,qIAiBvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,8FASxB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { userStage } from "alchemy/Cli/commands/flags";
2
+ import * as Effect from "effect/Effect";
3
+ import * as FileSystem from "effect/FileSystem";
4
+ import * as Path from "effect/Path";
5
+ /**
6
+ * The name of the linked git worktree containing `cwd`, or `undefined` in a
7
+ * main checkout (or outside git). A linked worktree's `.git` is a file
8
+ * pointing at `<common>/.git/worktrees/<name>`; a submodule's points at
9
+ * `.git/modules/<name>` and doesn't count.
10
+ */
11
+ export const worktreeName = Effect.fn(function* (cwd) {
12
+ const fs = yield* FileSystem.FileSystem;
13
+ const path = yield* Path.Path;
14
+ let dir = cwd;
15
+ while (true) {
16
+ const dotGit = path.join(dir, ".git");
17
+ if (yield* fs.exists(dotGit)) {
18
+ const info = yield* fs.stat(dotGit);
19
+ if (info.type !== "File")
20
+ return undefined;
21
+ const gitdir = /^gitdir:\s*(.+)$/m.exec(yield* fs.readFileString(dotGit))?.[1]?.trim();
22
+ const parts = gitdir?.split(/[\\/]+/).filter(Boolean) ?? [];
23
+ return parts.at(-2) === "worktrees" ? parts.at(-1) : undefined;
24
+ }
25
+ const parent = path.dirname(dir);
26
+ if (parent === dir)
27
+ return undefined;
28
+ dir = parent;
29
+ }
30
+ });
31
+ /**
32
+ * The default test stage for a linked worktree: `test_$USER_<worktree>`, so
33
+ * concurrent runs from two worktrees of one developer never share
34
+ * deployments. `undefined` in a main checkout, which keeps `test_$USER`.
35
+ */
36
+ export const worktreeStage = Effect.fn(function* (cwd) {
37
+ const name = yield* worktreeName(cwd).pipe(Effect.orElseSucceed(() => undefined));
38
+ if (name === undefined)
39
+ return undefined;
40
+ const safe = name
41
+ .toLowerCase()
42
+ .replace(/[^a-z0-9_-]+/g, "-")
43
+ .replace(/^-+|-+$/g, "");
44
+ if (safe === "")
45
+ return undefined;
46
+ return `${yield* userStage("test")}_${safe}`;
47
+ });
48
+ //# sourceMappingURL=WorktreeStage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorktreeStage.js","sources":["../src/WorktreeStage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAW;IAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvF,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACrC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAW;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAClF,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI;SACd,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;AAC/C,CAAC,CAAC,CAAC"}
package/lib/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/lib/cli.js ADDED
@@ -0,0 +1,222 @@
1
+ /**
2
+ * The `alchemy-test` CLI.
3
+ *
4
+ * ```sh
5
+ * alchemy-test [paths...] [-t pattern] [--exclude path]... [--timeout ms]
6
+ * [--retry n] [--concurrency n] [--sequential] [--tui]
7
+ * [--profile name] [--stage name] [--fast]
8
+ * [--tags 'unit || (e2e && !live)']
9
+ * ```
10
+ *
11
+ * Runs every `*.test.ts` under the given paths (default `./test`) in a single
12
+ * bun process. Interactive terminals get the opentui view; otherwise tests
13
+ * are logged line-by-line and failures are dumped at the end.
14
+ */
15
+ // The runner executes every test file's effects on ONE event loop, so any
16
+ // fiber touching a relative path can race a transient process-wide chdir.
17
+ // cross-spawn (bundled in vite/build tools the tests exercise) chdirs the
18
+ // whole process to resolve a spawn's binary; `process.chdir.disabled` is
19
+ // its own escape hatch (built for worker threads) — with it set, commands
20
+ // still resolve via PATH and absolutize against the spawn's `cwd`.
21
+ process.chdir.disabled = true;
22
+ import * as BunRuntime from "@effect/platform-bun/BunRuntime";
23
+ import * as BunServices from "@effect/platform-bun/BunServices";
24
+ import * as Argument from "effect/cli/Argument";
25
+ import * as Command from "effect/cli/Command";
26
+ import * as Flag from "effect/cli/Flag";
27
+ import * as Data from "effect/Data";
28
+ import * as Effect from "effect/Effect";
29
+ import * as FileSystem from "effect/FileSystem";
30
+ import * as Layer from "effect/Layer";
31
+ import * as Option from "effect/Option";
32
+ import * as Path from "effect/Path";
33
+ import * as Runtime from "effect/Runtime";
34
+ import * as Schema from "effect/Schema";
35
+ import packageJson from "../package.json" with { type: "json" };
36
+ import { PlainReporterLive, printSummary } from "./PlainReporter.js";
37
+ import { parsePlan } from "./Plan.js";
38
+ import { Reporter } from "./Reporter.js";
39
+ import { run } from "./Runner.js";
40
+ import { captureStrayOutput } from "./StrayOutput.js";
41
+ import { worktreeStage } from "./WorktreeStage.js";
42
+ const paths = Argument.String("paths").pipe(Argument.withDescription("Test files or directories (default: ./test)"), Argument.variadic());
43
+ const testNamePattern = Flag.String("test-name-pattern").pipe(Flag.withAlias("t"), Flag.withDescription("Only run tests whose title matches this regex"), Flag.optional);
44
+ const exclude = Flag.String("exclude").pipe(Flag.withDescription("Skip test files under this path (repeatable). Existing files/directories exclude by prefix; anything else is a case-insensitive substring filter. Explicitly passing an excluded path as a positional argument overrides the exclusion."), Flag.atLeast(0));
45
+ const tagsFilter = Flag.String("tags").pipe(Flag.withDescription('Select tags using &&, ||, !, parentheses and * wildcards (e.g. "e2e && provider:aws && !slow"). Repeated filters are ANDed.'), Flag.atLeast(0));
46
+ const plan = Flag.String("plan").pipe(Flag.withDescription("JSON array of sequential phases; nested arrays run branches in parallel. Each branch has tags (ANDed expressions) and optional file concurrency. First match wins; shared hooks live until the file's final phase."), Flag.optional);
47
+ const dryRun = Flag.Boolean("dry-run").pipe(Flag.withDescription("Collect tests and show the execution plan without running tests or hooks"), Flag.withDefault(false));
48
+ const timeout = Flag.Int("timeout").pipe(Flag.withDescription("Default per-test timeout in milliseconds"), Flag.withDefault(120_000));
49
+ const retry = Flag.Int("retry").pipe(Flag.withDescription("Times a failing test is retried before failing the run"), Flag.withDefault(2));
50
+ const concurrency = Flag.String("concurrency").pipe(Flag.withAlias("c"), Flag.withDescription('Maximum number of files running concurrently: a number (default 32) or "unbounded". Unbounded runs of large suites saturate the event loop and drown real failures in spurious 0ms beforeAll timeouts.'), Flag.withDefault("32"));
51
+ const toConcurrency = (value) => {
52
+ if (value === "unbounded")
53
+ return "unbounded";
54
+ const parsed = Number.parseInt(value, 10);
55
+ if (!Number.isFinite(parsed) || parsed < 1) {
56
+ throw new Error(`--concurrency must be a positive integer or "unbounded", got: ${value}`);
57
+ }
58
+ return parsed;
59
+ };
60
+ /** `--tui` was requested but the optional `@opentui/core` peer isn't installed. */
61
+ class TuiUnavailable extends Data.TaggedError("TuiUnavailable") {
62
+ }
63
+ // The TUI's renderer (`@opentui/core`) is an optional peer, so it loads only
64
+ // when `--tui` asks for it.
65
+ const tuiReporter = (logFile) => Layer.unwrap(Effect.tryPromise({
66
+ try: () => import("./Tui.js"),
67
+ catch: (cause) => new TuiUnavailable({
68
+ message: "--tui needs @opentui/core. Install it with `bun add -d @opentui/core`.",
69
+ cause,
70
+ }),
71
+ }).pipe(Effect.map(({ TuiReporter }) => TuiReporter(logFile))));
72
+ const sequential = Flag.Boolean("sequential").pipe(Flag.withDescription("Run tests within each file sequentially"), Flag.withDefault(false));
73
+ const tui = Flag.Boolean("tui").pipe(Flag.withDescription("Opt in to the interactive TUI (default is plain line output)"), Flag.withDefault(false));
74
+ const profile = Flag.String("profile").pipe(Flag.withDescription('Set ALCHEMY_PROFILE for the run (e.g. "testing") before any test module is imported'), Flag.optional);
75
+ const stage = Flag.String("stage").pipe(Flag.withSchema(Schema.String.check(Schema.isPattern(/^[a-z0-9]+([-_a-z0-9]+)*$/i))), Flag.withDescription('Set ALCHEMY_TEST_STAGE for the run (e.g. "test_sam_feat-x") before any test module is imported'), Flag.optional);
76
+ const fast = Flag.Boolean("fast").pipe(Flag.withDescription("Set FAST=1 — suites skip their slow tests (long-provisioning resources, smoke tests)"), Flag.withDefault(false));
77
+ /**
78
+ * Build the `-t` matcher — bun/vitest semantics: the pattern is a regex
79
+ * tested against the full nested title (`file > describe chain > name`).
80
+ * A syntactically INVALID regex (e.g. `-t "[worker"`) degrades to a literal
81
+ * substring match instead of erroring.
82
+ */
83
+ const toFilter = (pattern) => Option.match(pattern, {
84
+ onNone: () => undefined,
85
+ onSome: (source) => {
86
+ let regex;
87
+ try {
88
+ regex = new RegExp(source);
89
+ }
90
+ catch {
91
+ // Not a valid regex — treat it as a literal substring.
92
+ regex = new RegExp(source.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
93
+ }
94
+ return (fullTitle) => regex.test(fullTitle);
95
+ },
96
+ });
97
+ const rootCommand = Command.make("alchemy-test", {
98
+ paths,
99
+ testNamePattern,
100
+ tagsFilter,
101
+ plan,
102
+ dryRun,
103
+ exclude,
104
+ timeout,
105
+ retry,
106
+ concurrency,
107
+ sequential,
108
+ tui,
109
+ profile,
110
+ stage,
111
+ fast,
112
+ }, Effect.fn(function* (args) {
113
+ // Environment knobs — set BEFORE any test module is imported (imports
114
+ // happen inside `run` during collection), so `skipIf(process.env.FAST)`
115
+ // gates and profile-dependent layers see the final values.
116
+ // Inherit CI from the caller: setting it here also disables local auth
117
+ // profiles, even when the caller explicitly selected one.
118
+ yield* Effect.sync(() => {
119
+ if (Option.isSome(args.profile)) {
120
+ process.env.ALCHEMY_PROFILE = args.profile.value;
121
+ }
122
+ if (Option.isSome(args.stage)) {
123
+ process.env.ALCHEMY_TEST_STAGE = args.stage.value;
124
+ }
125
+ if (args.fast) {
126
+ process.env.FAST = "1";
127
+ }
128
+ // The runner owns the terminal: stdout belongs to the reporter (or
129
+ // the TUI) and stdin carries TUI keystrokes. Code under test must see
130
+ // the same non-interactive, colorless process CI gives it, regardless
131
+ // of the terminal this run was launched from — otherwise assertions
132
+ // on CLI output and on interactive-vs-plain copy depend on whether a
133
+ // human or a pipeline started the run. Sigil's detection honors
134
+ // FORCE_COLOR over everything else, so pin it rather than NO_COLOR.
135
+ process.env.ALCHEMY_NO_TUI = "1";
136
+ process.env.NO_COLOR = "1";
137
+ process.env.FORCE_COLOR = "0";
138
+ });
139
+ // A linked git worktree defaults to its own stage, so two worktrees of
140
+ // one developer running the same suite never share deployments. An
141
+ // explicit `--stage` or ALCHEMY_TEST_STAGE wins.
142
+ if (Option.isNone(args.stage) && !process.env.ALCHEMY_TEST_STAGE) {
143
+ const stage = yield* worktreeStage(yield* Effect.sync(() => process.cwd()));
144
+ if (stage !== undefined) {
145
+ yield* Effect.sync(() => {
146
+ process.env.ALCHEMY_TEST_STAGE = stage;
147
+ });
148
+ }
149
+ }
150
+ // Plain line output by default; the TUI is opt-in (`--tui`) and requires
151
+ // an interactive terminal.
152
+ const interactive = !args.dryRun && args.tui && process.stdout.isTTY === true;
153
+ const path = yield* Path.Path;
154
+ const root = process.cwd();
155
+ // Per-run log file (timestamp + pid) so concurrent runs in different
156
+ // terminals never trample each other's logs.
157
+ const timestamp = new Date().toISOString().slice(0, 19).replaceAll(":", "-");
158
+ const logFile = path.resolve(root, ".alchemy", "log", "test", `${timestamp}-pid${process.pid}.log`);
159
+ const options = {
160
+ root,
161
+ paths: args.paths,
162
+ exclude: args.exclude,
163
+ filter: toFilter(args.testNamePattern),
164
+ tagsFilter: args.tagsFilter,
165
+ dryRun: args.dryRun,
166
+ plan: Option.isSome(args.plan) ? parsePlan(args.plan.value) : undefined,
167
+ timeout: args.timeout,
168
+ retry: args.retry,
169
+ concurrency: toConcurrency(args.concurrency),
170
+ sequential: args.sequential,
171
+ logFile,
172
+ };
173
+ // In plain mode, divert stray JS-level stdout/stderr writes into the
174
+ // run log for the duration of the run (the reporter writes through the
175
+ // real stream); the TUI installs its own diversion after the renderer
176
+ // is created.
177
+ const restoreStrayCapture = interactive ? undefined : captureStrayOutput(logFile);
178
+ const summary = yield* Effect.gen(function* () {
179
+ const reporter = yield* Reporter;
180
+ const summary = yield* run(options);
181
+ yield* reporter.waitForExit(summary);
182
+ return summary;
183
+ }).pipe(Effect.provide(interactive ? tuiReporter(logFile) : PlainReporterLive), Effect.scoped, Effect.onExit(() => Effect.sync(() => restoreStrayCapture?.())));
184
+ // After the TUI tears down, leave a plain record in the terminal.
185
+ if (interactive) {
186
+ yield* printSummary(summary);
187
+ }
188
+ // Point agents/tooling at the full run log, with its size so the reader
189
+ // knows what they're getting into before opening it.
190
+ yield* Effect.gen(function* () {
191
+ const fs = yield* FileSystem.FileSystem;
192
+ const stats = yield* fs.stat(logFile).pipe(Effect.orElseSucceed(() => undefined));
193
+ const kb = stats === undefined ? 0 : Number(stats.size) / 1024;
194
+ yield* Effect.sync(() => {
195
+ process.stdout.write(`\nFull log: ${logFile} (${kb.toFixed(1)} KB)\n`);
196
+ });
197
+ });
198
+ if (summary.failed > 0) {
199
+ yield* Effect.sync(() => {
200
+ process.exitCode = 1;
201
+ });
202
+ }
203
+ }));
204
+ const cli = Command.run(rootCommand, {
205
+ version: packageJson.version,
206
+ });
207
+ cli.pipe(Effect.provide(Layer.mergeAll(BunServices.layer)), Effect.scoped, (effect) => BunRuntime.runMain(effect, {
208
+ // ALWAYS exit once the main effect completes. runMain's default only
209
+ // force-exits on failure/signal — but tests can leak live handles
210
+ // (vite watchers, workerd sidecar sockets, keep-alive agents) that
211
+ // keep bun's event loop alive forever after a green run. Everything
212
+ // is already flushed by now (summary + log written in the main
213
+ // effect); the macrotask hop lets any buffered stdout drain.
214
+ teardown: (exit, onExit) => {
215
+ Runtime.defaultTeardown(exit, (code) => {
216
+ const finalCode = code !== 0 ? code : Number(process.exitCode ?? 0) || 0;
217
+ setTimeout(() => process.exit(finalCode), 0);
218
+ onExit(finalCode);
219
+ });
220
+ },
221
+ }));
222
+ //# sourceMappingURL=cli.js.map
package/lib/cli.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sources":["../src/cli.ts"],"names":[],"mappings":"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"}