import { afterEach, describe, expect, it } from "vitest"; import { importFreshModule } from "../../../test/helpers/import-fresh.js"; import type { MsgContext } from "../templating.js"; import { resetInboundDedupe } from "./inbound-dedupe.js"; const sharedInboundContext: MsgContext = { Provider: "discord", Surface: "discord", From: "discord:user-1", To: "channel:c1", OriginatingChannel: "discord", OriginatingTo: "channel:c1", SessionKey: "agent:main:discord:channel:c1", MessageSid: "msg-1", }; describe("inbound dedupe", () => { afterEach(() => { resetInboundDedupe(); }); it("shares dedupe state across distinct module instances", async () => { const inboundA = await importFreshModule( import.meta.url, "./inbound-dedupe.js?scope=shared-a", ); const inboundB = await importFreshModule( import.meta.url, "./inbound-dedupe.js?scope=shared-b", ); inboundA.resetInboundDedupe(); inboundB.resetInboundDedupe(); try { expect(inboundA.shouldSkipDuplicateInbound(sharedInboundContext)).toBe(false); expect(inboundB.shouldSkipDuplicateInbound(sharedInboundContext)).toBe(true); } finally { inboundA.resetInboundDedupe(); inboundB.resetInboundDedupe(); } }); });