clear-session.test.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { describe, it, expect, beforeEach, vi } from "vitest";
  2. import { clearSession } from "../src/utils/clear-session";
  3. import store from "../src/store";
  4. import { initialState as browserInitialState } from "../src/state/browserSlice";
  5. describe("clearSession", () => {
  6. beforeEach(() => {
  7. // Mock localStorage
  8. const localStorageMock = {
  9. getItem: vi.fn(),
  10. setItem: vi.fn(),
  11. removeItem: vi.fn(),
  12. clear: vi.fn(),
  13. };
  14. vi.stubGlobal("localStorage", localStorageMock);
  15. // Set initial browser state to non-default values
  16. store.dispatch({
  17. type: "browser/setUrl",
  18. payload: "https://example.com",
  19. });
  20. store.dispatch({
  21. type: "browser/setScreenshotSrc",
  22. payload: "base64screenshot",
  23. });
  24. });
  25. it("should clear localStorage and reset browser state", () => {
  26. clearSession();
  27. // Verify localStorage items were removed
  28. expect(localStorage.removeItem).toHaveBeenCalledWith("token");
  29. expect(localStorage.removeItem).toHaveBeenCalledWith("repo");
  30. // Verify browser state was reset
  31. const state = store.getState();
  32. expect(state.browser.url).toBe(browserInitialState.url);
  33. expect(state.browser.screenshotSrc).toBe(browserInitialState.screenshotSrc);
  34. });
  35. });