mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-02 20:30:10 +00:00
Merge branch 'main' into ebook-piecewise
This commit is contained in:
@@ -14,6 +14,20 @@ const authenticatedFetcherMock = vi.hoisted(() => vi.fn());
|
|||||||
const fetchJSONMock = vi.hoisted(() => vi.fn());
|
const fetchJSONMock = vi.hoisted(() => vi.fn());
|
||||||
const mutateMock = vi.hoisted(() => vi.fn());
|
const mutateMock = vi.hoisted(() => vi.fn());
|
||||||
|
|
||||||
|
// Mock next/navigation for RecentRequestsTable component
|
||||||
|
const mockRouter = vi.hoisted(() => ({
|
||||||
|
push: vi.fn(),
|
||||||
|
replace: vi.fn(),
|
||||||
|
back: vi.fn(),
|
||||||
|
}));
|
||||||
|
const mockSearchParams = vi.hoisted(() => new URLSearchParams());
|
||||||
|
|
||||||
|
vi.mock('next/navigation', () => ({
|
||||||
|
useRouter: () => mockRouter,
|
||||||
|
usePathname: () => '/admin',
|
||||||
|
useSearchParams: () => mockSearchParams,
|
||||||
|
}));
|
||||||
|
|
||||||
const toastMock = vi.hoisted(() => ({
|
const toastMock = vi.hoisted(() => ({
|
||||||
success: vi.fn(),
|
success: vi.fn(),
|
||||||
error: vi.fn(),
|
error: vi.fn(),
|
||||||
@@ -52,6 +66,8 @@ describe('AdminDashboard', () => {
|
|||||||
mutateMock.mockReset();
|
mutateMock.mockReset();
|
||||||
toastMock.success.mockReset();
|
toastMock.success.mockReset();
|
||||||
toastMock.error.mockReset();
|
toastMock.error.mockReset();
|
||||||
|
mockRouter.push.mockReset();
|
||||||
|
mockRouter.replace.mockReset();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders metrics, downloads, and recent requests', async () => {
|
it('renders metrics, downloads, and recent requests', async () => {
|
||||||
@@ -81,7 +97,8 @@ describe('AdminDashboard', () => {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
swrState.set('/api/admin/requests/recent', {
|
// RecentRequestsTable fetches from /api/admin/requests with query params
|
||||||
|
swrState.set('/api/admin/requests?page=1&pageSize=25&search=&status=all&userId=&sortBy=createdAt&sortOrder=desc', {
|
||||||
data: {
|
data: {
|
||||||
requests: [
|
requests: [
|
||||||
{
|
{
|
||||||
@@ -89,14 +106,20 @@ describe('AdminDashboard', () => {
|
|||||||
title: 'Recent Book',
|
title: 'Recent Book',
|
||||||
author: 'Author Two',
|
author: 'Author Two',
|
||||||
status: 'pending',
|
status: 'pending',
|
||||||
|
userId: 'user-1',
|
||||||
user: 'Sam',
|
user: 'Sam',
|
||||||
createdAt: new Date('2024-01-02T00:00:00Z'),
|
createdAt: new Date('2024-01-02T00:00:00Z'),
|
||||||
completedAt: null,
|
completedAt: null,
|
||||||
errorMessage: null,
|
errorMessage: null,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
total: 1,
|
||||||
|
page: 1,
|
||||||
|
pageSize: 25,
|
||||||
|
totalPages: 1,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
swrState.set('/api/admin/users', { data: { users: [] } });
|
||||||
swrState.set('/api/admin/requests/pending-approval', { data: { requests: [] } });
|
swrState.set('/api/admin/requests/pending-approval', { data: { requests: [] } });
|
||||||
swrState.set('/api/admin/settings', { data: { ebook: { enabled: false } } });
|
swrState.set('/api/admin/settings', { data: { ebook: { enabled: false } } });
|
||||||
|
|
||||||
@@ -120,7 +143,11 @@ describe('AdminDashboard', () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
swrState.set('/api/admin/downloads/active', { data: { downloads: [] } });
|
swrState.set('/api/admin/downloads/active', { data: { downloads: [] } });
|
||||||
swrState.set('/api/admin/requests/recent', { data: { requests: [] } });
|
// RecentRequestsTable fetches from /api/admin/requests with query params
|
||||||
|
swrState.set('/api/admin/requests?page=1&pageSize=25&search=&status=all&userId=&sortBy=createdAt&sortOrder=desc', {
|
||||||
|
data: { requests: [], total: 0, page: 1, pageSize: 25, totalPages: 0 },
|
||||||
|
});
|
||||||
|
swrState.set('/api/admin/users', { data: { users: [] } });
|
||||||
swrState.set('/api/admin/settings', { data: { ebook: { enabled: false } } });
|
swrState.set('/api/admin/settings', { data: { ebook: { enabled: false } } });
|
||||||
swrState.set('/api/admin/requests/pending-approval', {
|
swrState.set('/api/admin/requests/pending-approval', {
|
||||||
data: {
|
data: {
|
||||||
|
|||||||
Reference in New Issue
Block a user