import { beforeEach, describe, expect, it, vi } from "vitest" ;
const closeTrackedBrowserTabsForSessions = vi.hoisted(() => vi.fn(async () => 0 ));
vi.mock("./plugin-sdk/browser-maintenance.js" , () => ({
closeTrackedBrowserTabsForSessions,
}));
describe("cleanupBrowserSessionsForLifecycleEnd" , () => {
beforeEach(() => {
vi.clearAllMocks();
});
it("normalizes session keys before closing browser sessions" , async () => {
const { cleanupBrowserSessionsForLifecycleEnd } =
await import ("./browser-lifecycle-cleanup.js" );
const onWarn = vi.fn();
await expect(
cleanupBrowserSessionsForLifecycleEnd({
sessionKeys: ["" , " session-a " , "session-a" , "session-b" ],
onWarn,
}),
).resolves.toBeUndefined();
expect(closeTrackedBrowserTabsForSessions).toHaveBeenCalledWith({
sessionKeys: ["session-a" , "session-b" ],
onWarn,
});
});
it("swallows browser cleanup failures" , async () => {
const { cleanupBrowserSessionsForLifecycleEnd } =
await import ("./browser-lifecycle-cleanup.js" );
const onError = vi.fn();
const error = new Error("cleanup failed" );
closeTrackedBrowserTabsForSessions.mockRejectedValueOnce(error);
await expect(
cleanupBrowserSessionsForLifecycleEnd({
sessionKeys: ["session-a" ],
onError,
}),
).resolves.toBeUndefined();
expect(onError).toHaveBeenCalledWith(error);
});
});
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-06-08)
¤
*© Formatika GbR, Deutschland