import { beforeEach, describe, expect, it, vi } from 'vitest'; import { clearStoredApiKey, getStoredApiKey, setStoredApiKey } from './auth'; describe('API key storage', () => { beforeEach(() => { window.localStorage.clear(); }); it('stores and reads the API key from local storage', () => { setStoredApiKey('write-secret'); expect(getStoredApiKey()).toBe('write-secret'); expect(window.localStorage.getItem('ctv-api-key')).toBe('write-secret'); }); it('trims blank API keys and clears storage', () => { setStoredApiKey(' '); expect(getStoredApiKey()).toBeNull(); expect(window.localStorage.getItem('ctv-api-key')).toBeNull(); }); it('clears a stored API key', () => { setStoredApiKey('write-secret'); clearStoredApiKey(); expect(getStoredApiKey()).toBeNull(); }); it('ignores unavailable local storage when reading the API key', () => { const localStorageGetter = vi .spyOn(window, 'localStorage', 'get') .mockImplementation(() => { throw new Error('localStorage unavailable'); }); expect(getStoredApiKey()).toBeNull(); localStorageGetter.mockRestore(); }); });