Files
ersatztv/web/src/api/auth.test.ts
T
2026-07-02 18:36:56 +02:00

43 lines
1.1 KiB
TypeScript

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();
});
});