test: harden channel suite isolation

This commit is contained in:
Peter Steinberger
2026-03-23 12:57:02 +00:00
parent 949d6be1d1
commit b393effba6
44 changed files with 431 additions and 213 deletions

View File

@@ -10,7 +10,7 @@ import {
stopSlackMonitor,
} from "./monitor.test-helpers.js";
const { monitorSlackProvider } = await import("./monitor.js");
let monitorSlackProvider: typeof import("./monitor.js").monitorSlackProvider;
const slackTestState = getSlackTestState();
@@ -69,6 +69,12 @@ async function runMissingThreadScenario(params: {
beforeEach(() => {
resetInboundDedupe();
});
beforeEach(async () => {
vi.resetModules();
({ monitorSlackProvider } = await import("./monitor.js"));
resetInboundDedupe();
resetSlackTestState({
messages: { responsePrefix: "PFX" },
channels: {

View File

@@ -50,7 +50,7 @@ vi.mock("./message-handler/dispatch.js", () => ({
dispatchPreparedSlackMessageMock(prepared),
}));
import { createSlackMessageHandler } from "./message-handler.js";
let createSlackMessageHandler: typeof import("./message-handler.js").createSlackMessageHandler;
function createMarkMessageSeen() {
const seen = new Set<string>();
@@ -117,7 +117,9 @@ async function createInFlightMessageScenario(ts: string) {
}
describe("createSlackMessageHandler app_mention race handling", () => {
beforeEach(() => {
beforeEach(async () => {
vi.resetModules();
({ createSlackMessageHandler } = await import("./message-handler.js"));
prepareSlackMessageMock.mockReset();
dispatchPreparedSlackMessageMock.mockReset();
});

View File

@@ -5,7 +5,7 @@ vi.mock("../send.js", () => ({
sendMessageSlack: (...args: unknown[]) => sendMock(...args),
}));
import { deliverReplies } from "./replies.js";
let deliverReplies: typeof import("./replies.js").deliverReplies;
function baseParams(overrides?: Record<string, unknown>) {
return {
@@ -20,7 +20,9 @@ function baseParams(overrides?: Record<string, unknown>) {
}
describe("deliverReplies identity passthrough", () => {
beforeEach(() => {
beforeEach(async () => {
vi.resetModules();
({ deliverReplies } = await import("./replies.js"));
sendMock.mockReset();
});
it("passes identity to sendMessageSlack for text replies", async () => {

View File

@@ -194,7 +194,9 @@ async function loadRegisterSlackMonitorSlashCommands(): Promise<RegisterFn> {
const { dispatchMock } = getSlackSlashMocks();
beforeEach(() => {
beforeEach(async () => {
vi.resetModules();
registerSlackMonitorSlashCommandsPromise = undefined;
resetSlackSlashMocks();
});