Add test mocks and update delete API assertion

Add missing mocks used by updated code paths: mock PreferencesContext in profile page tests and add useReplaceWithTorrent/replaceWithTorrent mock for InteractiveTorrentSearchModal tests. Update Audiobookshelf API test to expect DELETE to include ?hard=1 and Authorization header. Extend the prisma test helper in audiobook-matcher tests with a reportedIssue.findMany mock and ensure it resolves to an empty array for the test.
This commit is contained in:
kikootwo
2026-02-11 17:02:21 -05:00
parent b1561a8311
commit eca24e46a8
4 changed files with 32 additions and 3 deletions
+9
View File
@@ -17,6 +17,15 @@ vi.mock('@/lib/hooks/useRequests', () => ({
useRequests: useRequestsMock,
}));
vi.mock('@/contexts/PreferencesContext', () => ({
usePreferences: () => ({
cardSize: 5,
setCardSize: vi.fn(),
squareCovers: true,
setSquareCovers: vi.fn(),
}),
}));
vi.mock('@/components/layout/Header', () => ({
Header: () => <div data-testid="header" />,
}));
@@ -17,6 +17,15 @@ const searchEbooksMock = vi.hoisted(() => vi.fn());
const selectEbookMock = vi.hoisted(() => vi.fn());
const searchEbooksByAsinMock = vi.hoisted(() => vi.fn());
const selectEbookByAsinMock = vi.hoisted(() => vi.fn());
const replaceWithTorrentMock = vi.hoisted(() => vi.fn());
vi.mock('@/lib/hooks/useReportedIssues', () => ({
useReplaceWithTorrent: () => ({
replaceWithTorrent: replaceWithTorrentMock,
isLoading: false,
error: null,
}),
}));
vi.mock('@/lib/hooks/useRequests', () => ({
useInteractiveSearch: () => ({
+5 -2
View File
@@ -275,9 +275,12 @@ describe('Audiobookshelf API client', () => {
});
await expect(deleteABSItem('item-1')).resolves.toBeUndefined();
expect(fetchMock).toHaveBeenCalledWith('http://abs/api/items/item-1', expect.objectContaining({
expect(fetchMock).toHaveBeenCalledWith('http://abs/api/items/item-1?hard=1', {
method: 'DELETE',
}));
headers: {
'Authorization': 'Bearer token',
},
});
});
it('throws when delete fails', async () => {
+9 -1
View File
@@ -6,7 +6,12 @@
import { beforeEach, describe, expect, it, vi } from 'vitest';
import { createPrismaMock } from '../helpers/prisma';
const prismaMock = createPrismaMock();
const prismaMock = createPrismaMock() as ReturnType<typeof createPrismaMock> & {
reportedIssue: { findMany: ReturnType<typeof vi.fn> };
};
// Add reportedIssue mock (not yet in shared helper) for getOpenIssuesByAsins
(prismaMock as any).reportedIssue = { findMany: vi.fn() };
vi.mock('@/lib/db', () => ({
prisma: prismaMock,
@@ -122,6 +127,9 @@ describe('audiobook-matcher', () => {
},
]);
// Mock reported issues (none for this test)
prismaMock.reportedIssue.findMany.mockResolvedValue([]);
const { enrichAudiobooksWithMatches } = await import('@/lib/utils/audiobook-matcher');
const results = await enrichAudiobooksWithMatches(
[