test: dedupe discord queue preflight setup

This commit is contained in:
Peter Steinberger 2026-03-13 22:34:42 +00:00
parent a7c293b8ef
commit 6a44ca9f76
1 changed files with 21 additions and 22 deletions

View File

@ -45,20 +45,30 @@ function createPreflightContext(channelId = "ch-1") {
return createDiscordPreflightContext(channelId);
}
function createHandlerWithDefaultPreflight(overrides?: {
setStatus?: SetStatusFn;
workerRunTimeoutMs?: number;
}) {
preflightDiscordMessageMock.mockImplementation(async (params: { data: { channel_id: string } }) =>
createPreflightContext(params.data.channel_id),
);
return createDiscordMessageHandler(createDiscordHandlerParams(overrides));
}
async function createLifecycleStopScenario(params: {
createHandler: (status: SetStatusFn) => {
handler: (data: never, opts: never) => Promise<void>;
stop: () => void;
};
}) {
preflightDiscordMessageMock.mockImplementation(
async (preflightParams: { data: { channel_id: string } }) =>
createPreflightContext(preflightParams.data.channel_id),
);
const runInFlight = createDeferred();
processDiscordMessageMock.mockImplementation(async () => {
await runInFlight.promise;
});
preflightDiscordMessageMock.mockImplementation(
async (contextParams: { data: { channel_id: string } }) =>
createPreflightContext(contextParams.data.channel_id),
);
const setStatus = vi.fn<SetStatusFn>();
const { handler, stop } = params.createHandler(setStatus);
@ -111,13 +121,8 @@ describe("createDiscordMessageHandler queue behavior", () => {
.mockImplementationOnce(async () => {
await secondRun.promise;
});
preflightDiscordMessageMock.mockImplementation(
async (params: { data: { channel_id: string } }) =>
createPreflightContext(params.data.channel_id),
);
const setStatus = vi.fn();
const handler = createDiscordMessageHandler(createDiscordHandlerParams({ setStatus }));
const handler = createHandlerWithDefaultPreflight({ setStatus });
await expect(handler(createMessageData("m-1") as never, {} as never)).resolves.toBeUndefined();
@ -175,12 +180,11 @@ describe("createDiscordMessageHandler queue behavior", () => {
});
})
.mockImplementationOnce(async () => undefined);
preflightDiscordMessageMock.mockImplementation(
async (params: { data: { channel_id: string } }) =>
createPreflightContext(params.data.channel_id),
);
const params = createDiscordHandlerParams({ workerRunTimeoutMs: 50 });
preflightDiscordMessageMock.mockImplementation(
async (preflightParams: { data: { channel_id: string } }) =>
createPreflightContext(preflightParams.data.channel_id),
);
const handler = createDiscordMessageHandler(params);
await expect(
@ -226,13 +230,8 @@ describe("createDiscordMessageHandler queue behavior", () => {
});
},
);
preflightDiscordMessageMock.mockImplementation(
async (params: { data: { channel_id: string } }) =>
createPreflightContext(params.data.channel_id),
);
const params = createDiscordHandlerParams({ workerRunTimeoutMs: 0 });
const handler = createDiscordMessageHandler(params);
const handler = createHandlerWithDefaultPreflight({ workerRunTimeoutMs: 0 });
await expect(
handler(createMessageData("m-1") as never, {} as never),
@ -442,7 +441,7 @@ describe("createDiscordMessageHandler queue behavior", () => {
);
const setStatus = vi.fn();
const handler = createDiscordMessageHandler(createDiscordHandlerParams({ setStatus }));
const handler = createHandlerWithDefaultPreflight({ setStatus });
await expect(handler(createMessageData("m-1") as never, {} as never)).resolves.toBeUndefined();
await expect(handler(createMessageData("m-2") as never, {} as never)).resolves.toBeUndefined();