import { clearIntentionalLogout, markIntentionalLogout, } from "@/lib/logoutIntent"; import { useAuthStore } from "./authStore"; describe("authStore intentional logout boundary", () => { beforeEach(() => { clearIntentionalLogout(); useAuthStore.setState({ accessToken: "access-token", sessionExpired: false, sessionExpiryReason: null, }); }); afterEach(() => { clearIntentionalLogout(); }); it("ignores late expiry signals after an intentional logout", () => { markIntentionalLogout(); useAuthStore.getState().markSessionExpired("unauthorized"); expect(useAuthStore.getState()).toMatchObject({ accessToken: null, sessionExpired: false, sessionExpiryReason: null, }); }); it("keeps real refresh failures visible after an intentional logout", () => { markIntentionalLogout(); useAuthStore.getState().markSessionExpired("refresh_failed"); expect(useAuthStore.getState()).toMatchObject({ accessToken: null, sessionExpired: true, sessionExpiryReason: "refresh_failed", }); }); });