Add targeted Vitest coverage

This commit is contained in:
beatz174-bit
2025-12-02 18:04:43 +10:00
parent e3a6c40e14
commit 5bdf20a829
6 changed files with 303 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
import { renderHook, waitFor } from '@testing-library/react';
import { describe, expect, test, vi, beforeEach } from 'vitest';
const setupHook = async () => {
const module = await import('../src/hooks/useServiceWorker');
return module.useServiceWorker;
};
describe('useServiceWorker', () => {
beforeEach(() => {
vi.resetModules();
vi.clearAllMocks();
});
test('registers service worker successfully', async () => {
const register = vi.fn().mockResolvedValue({});
Object.defineProperty(navigator, 'serviceWorker', {
value: { register },
configurable: true,
});
const useServiceWorker = await setupHook();
const { result } = renderHook(() => useServiceWorker());
await waitFor(() => expect(result.current).toBe(true));
expect(register).toHaveBeenCalledWith('/service-worker.js');
});
test('handles registration failure', async () => {
const register = vi.fn().mockRejectedValue(new Error('fail'));
Object.defineProperty(navigator, 'serviceWorker', {
value: { register },
configurable: true,
});
const useServiceWorker = await setupHook();
const { result } = renderHook(() => useServiceWorker());
await waitFor(() => expect(result.current).toBe(false));
});
});