char-slop/berry

multipurpose self-modifiable agentic harness

git clone https://git.t4t.associates/char-slop/berry

Charlotte Somtests: drop those that drive a real Firefox6483d2d

main
1.2 KiB34 linesraw
1import { assertEquals, assertRejects } from "@std/assert";
2import { localEnvironment } from "@berry/api/environment.ts";
3import { launch } from "./transport.ts";
4
5Deno.test("cancelling startup closes the target runner before Firefox is ready", async () => {
6  const env = localEnvironment(Deno.cwd());
7  const started = Promise.withResolvers<void>();
8  const exited = Promise.withResolvers<number | null>();
9  let output!: ReadableStreamDefaultController<Uint8Array>;
10  let stopped = false;
11  env.spawn = () => {
12    started.resolve();
13    return Promise.resolve({
14      stdin: new WritableStream({
15        close() {
16          stopped = true;
17          output.close();
18          exited.resolve(0);
19        },
20      }),
21      stdout: new ReadableStream({ start: (stream) => output = stream }),
22      stderr: new ReadableStream({ start: (stream) => stream.close() }),
23      exited: exited.promise,
24      kill() {},
25    });
26  };
27  const abort = new AbortController();
28  const pending = launch(env, () => {}, abort.signal);
29  const rejected = assertRejects(() => pending, Error, "cancelled startup");
30  await started.promise;
31  abort.abort(new Error("cancelled startup"));
32  await rejected;
33  assertEquals(stopped, true);
34});