mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-03 12:50:09 +00:00
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:
@@ -17,6 +17,15 @@ vi.mock('@/lib/hooks/useRequests', () => ({
|
|||||||
useRequests: useRequestsMock,
|
useRequests: useRequestsMock,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
vi.mock('@/contexts/PreferencesContext', () => ({
|
||||||
|
usePreferences: () => ({
|
||||||
|
cardSize: 5,
|
||||||
|
setCardSize: vi.fn(),
|
||||||
|
squareCovers: true,
|
||||||
|
setSquareCovers: vi.fn(),
|
||||||
|
}),
|
||||||
|
}));
|
||||||
|
|
||||||
vi.mock('@/components/layout/Header', () => ({
|
vi.mock('@/components/layout/Header', () => ({
|
||||||
Header: () => <div data-testid="header" />,
|
Header: () => <div data-testid="header" />,
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -17,6 +17,15 @@ const searchEbooksMock = vi.hoisted(() => vi.fn());
|
|||||||
const selectEbookMock = vi.hoisted(() => vi.fn());
|
const selectEbookMock = vi.hoisted(() => vi.fn());
|
||||||
const searchEbooksByAsinMock = vi.hoisted(() => vi.fn());
|
const searchEbooksByAsinMock = vi.hoisted(() => vi.fn());
|
||||||
const selectEbookByAsinMock = 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', () => ({
|
vi.mock('@/lib/hooks/useRequests', () => ({
|
||||||
useInteractiveSearch: () => ({
|
useInteractiveSearch: () => ({
|
||||||
|
|||||||
@@ -275,9 +275,12 @@ describe('Audiobookshelf API client', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await expect(deleteABSItem('item-1')).resolves.toBeUndefined();
|
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',
|
method: 'DELETE',
|
||||||
}));
|
headers: {
|
||||||
|
'Authorization': 'Bearer token',
|
||||||
|
},
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('throws when delete fails', async () => {
|
it('throws when delete fails', async () => {
|
||||||
|
|||||||
@@ -6,7 +6,12 @@
|
|||||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||||
import { createPrismaMock } from '../helpers/prisma';
|
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', () => ({
|
vi.mock('@/lib/db', () => ({
|
||||||
prisma: prismaMock,
|
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 { enrichAudiobooksWithMatches } = await import('@/lib/utils/audiobook-matcher');
|
||||||
const results = await enrichAudiobooksWithMatches(
|
const results = await enrichAudiobooksWithMatches(
|
||||||
[
|
[
|
||||||
|
|||||||
Reference in New Issue
Block a user