char-slop/berry
multipurpose self-modifiable agentic harness
git clone https://git.t4t.associates/char-slop/berry
6483d2d
main
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 () => { 6const env = localEnvironment ( Deno . cwd ()); 7const started = Promise . withResolvers < void >(); 8const exited = Promise . withResolvers < number | null >(); 9let output ! :ReadableStreamDefaultController < Uint8Array >; 10let stopped = false ; 11env . spawn = () => { 12started . resolve (); 13return Promise . resolve ({ 14stdin :new WritableStream ({ 15close () { 16stopped = true ; 17output . close (); 18exited . resolve ( 0 ); 19}, 20}), 21stdout :new ReadableStream ({ start :( stream ) => output = stream }), 22stderr :new ReadableStream ({ start :( stream ) => stream . close () }), 23exited :exited . promise , 24kill () {}, 25}); 26}; 27const abort = new AbortController (); 28const pending = launch ( env , () => {}, abort . signal ); 29const rejected = assertRejects (() => pending , Error , "cancelled startup" ); 30await started . promise ; 31abort . abort ( new Error ( "cancelled startup" )); 32await rejected ; 33assertEquals ( stopped , true ); 34});