History

Resolve mock process on timeout cleanup

Cursor Agent committed 6 months ago

Commit d8ec10a1 parent f30413f1 file · +11 −2Browse files

Unified · Split

packages/tailscale/src/tailscale.test.ts+11−2
@@ -40,11 +40,20 @@ function mockHandle(result: { stdout?: string; stderr?: string; code?: number }) · 39 unmodified lines
4040 }
4141
4242 function mockNeverFinishingHandle() {
43+ let finish: ((exitCode: ChildProcessSpawner.ExitCode) => void) | null = null;
4344 return ChildProcessSpawner.makeHandle({
4445 pid: ChildProcessSpawner.ProcessId(1),
45− exitCode: Effect.never,
46+ exitCode: Effect.callback<ChildProcessSpawner.ExitCode>((resume) => {
47+ finish = (exitCode) => resume(Effect.succeed(exitCode));
48+ return Effect.sync(() => {
49+ finish = null;
50+ });
51+ }),
4652 isRunning: Effect.succeed(true),
47− kill: () => Effect.void,
53+ kill: () =>
54+ Effect.sync(() => {
55+ finish?.(ChildProcessSpawner.ExitCode(143));
56+ }),
4857 unref: Effect.succeed(Effect.void),
4958 stdin: Sink.drain,
5059 stdout: Stream.empty,