Some checks failed
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
19 lines
938 B
TypeScript
19 lines
938 B
TypeScript
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
import test from "node:test";
|
|
|
|
const source = readFileSync(new URL("./AppSideEffects.tsx", import.meta.url), "utf8");
|
|
|
|
test("open-terminal requests wait behind App Lock and resume after unlock", () => {
|
|
const handlerStart = source.indexOf("const _handleOpenTerminalPath");
|
|
const handlerEnd = source.indexOf("useEffect(() =>", handlerStart);
|
|
const handlerSource = source.slice(handlerStart, handlerEnd);
|
|
const drainStart = source.indexOf("const pending = pendingDeepLinksWhileLockedRef.current.splice(0)");
|
|
const drainEnd = source.indexOf("}, [appLockLocked]);", drainStart);
|
|
const drainSource = source.slice(drainStart, drainEnd);
|
|
|
|
assert.match(handlerSource, /shouldDeferExternalActionWhileAppLocked/);
|
|
assert.match(handlerSource, /kind: 'open-terminal-path'/);
|
|
assert.match(drainSource, /_processOpenTerminalPath\(item\.payload\)/);
|
|
});
|