refactor(test): centralize trigger and cron test helpers

This commit is contained in:
Peter Steinberger
2026-02-22 20:01:54 +00:00
parent 3c75bc0e41
commit 5e8b1f5ac8
21 changed files with 217 additions and 316 deletions

View File

@@ -214,6 +214,51 @@ export async function runDirectElevatedToggleAndLoadStore(params: {
return { text, store };
}
export async function expectDirectElevatedToggleOn(params: {
getReplyFromConfig: typeof import("./reply.js").getReplyFromConfig;
}) {
await withTempHome(async (home) => {
const cfg = makeWhatsAppElevatedCfg(home);
const { text, store } = await runDirectElevatedToggleAndLoadStore({
cfg,
getReplyFromConfig: params.getReplyFromConfig,
});
expect(text).toContain("Elevated mode set to ask");
expect(store[MAIN_SESSION_KEY]?.elevatedLevel).toBe("on");
});
}
export async function expectInlineCommandHandledAndStripped(params: {
home: string;
getReplyFromConfig: typeof import("./reply.js").getReplyFromConfig;
body: string;
stripToken: string;
blockReplyContains: string;
requestOverrides?: Record<string, unknown>;
}) {
const runEmbeddedPiAgentMock = mockRunEmbeddedPiAgentOk();
const { blockReplies, handlers } = createBlockReplyCollector();
const res = await params.getReplyFromConfig(
{
Body: params.body,
From: "+1002",
To: "+2000",
CommandAuthorized: true,
...params.requestOverrides,
},
handlers,
makeCfg(params.home),
);
const text = Array.isArray(res) ? res[0]?.text : res?.text;
expect(blockReplies.length).toBe(1);
expect(blockReplies[0]?.text).toContain(params.blockReplyContains);
expect(runEmbeddedPiAgentMock).toHaveBeenCalled();
const prompt = runEmbeddedPiAgentMock.mock.calls[0]?.[0]?.prompt ?? "";
expect(prompt).not.toContain(params.stripToken);
expect(text).toBe("ok");
}
export async function runGreetingPromptForBareNewOrReset(params: {
home: string;
body: "/new" | "/reset";