Unified · Split
| @@ -40,11 +40,20 @@ function mockHandle(result: { stdout?: string; stderr?: string; code?: number }) · 39 unmodified lines | ||
| 40 | 40 | } |
| 41 | 41 | |
| 42 | 42 | function mockNeverFinishingHandle() { |
| 43 | + let finish: ((exitCode: ChildProcessSpawner.ExitCode) => void) | null = null; | |
| 43 | 44 | return ChildProcessSpawner.makeHandle({ |
| 44 | 45 | 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 | + }), | |
| 46 | 52 | isRunning: Effect.succeed(true), |
| 47 | − kill: () => Effect.void, | |
| 53 | + kill: () => | |
| 54 | + Effect.sync(() => { | |
| 55 | + finish?.(ChildProcessSpawner.ExitCode(143)); | |
| 56 | + }), | |
| 48 | 57 | unref: Effect.succeed(Effect.void), |
| 49 | 58 | stdin: Sink.drain, |
| 50 | 59 | stdout: Stream.empty, |