add persisted pi workflow extension
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import type {
|
||||
ExtensionAPI,
|
||||
ExtensionContext,
|
||||
} from "@earendil-works/pi-coding-agent";
|
||||
import { registerWorkflowRecovery } from "./index.ts";
|
||||
import type { ContextTransitionRuntime } from "./context-transition.ts";
|
||||
|
||||
|
||||
test("session startup invokes persisted Workflow recovery", async () => {
|
||||
let sessionStart:
|
||||
| ((event: { reason: string }, ctx: ExtensionContext) => Promise<void>)
|
||||
| undefined;
|
||||
const pi = {
|
||||
on(event: string, handler: typeof sessionStart) {
|
||||
if (event === "session_start") sessionStart = handler;
|
||||
},
|
||||
} as unknown as ExtensionAPI;
|
||||
let recoveries = 0;
|
||||
registerWorkflowRecovery(pi, {
|
||||
store: {} as never,
|
||||
engineForContext: async () =>
|
||||
({
|
||||
async recover() {
|
||||
recoveries++;
|
||||
return [];
|
||||
},
|
||||
}) as never,
|
||||
} as ContextTransitionRuntime);
|
||||
assert.ok(sessionStart);
|
||||
await sessionStart(
|
||||
{ reason: "startup" },
|
||||
{
|
||||
ui: { notify: () => {} },
|
||||
} as unknown as ExtensionContext,
|
||||
);
|
||||
assert.equal(recoveries, 1);
|
||||
});
|
||||
Reference in New Issue
Block a user