import { beforeEach, expect, test, vi } from 'vitest'; const { requestJsonMock } = vi.hoisted(() => ({ requestJsonMock: vi.fn(), })); vi.mock('../apiClient', () => ({ requestJson: requestJsonMock, })); import { getPuzzleGalleryDetail, listPuzzleGallery } from './puzzleGalleryClient'; beforeEach(() => { requestJsonMock.mockReset(); requestJsonMock.mockResolvedValue({ items: [] }); }); test('listPuzzleGallery reads public gallery without auth refresh coupling', async () => { await listPuzzleGallery(); expect(requestJsonMock).toHaveBeenCalledWith( '/api/runtime/puzzle/gallery', expect.objectContaining({ method: 'GET' }), '读取拼图广场失败', expect.objectContaining({ retry: expect.objectContaining({ maxRetries: 1 }), skipAuth: true, skipRefresh: true, }), ); }); test('getPuzzleGalleryDetail reads public detail without auth refresh coupling', async () => { requestJsonMock.mockResolvedValueOnce({ item: { profileId: 'puzzle-profile-1', }, }); await getPuzzleGalleryDetail('puzzle-profile-1'); expect(requestJsonMock).toHaveBeenCalledWith( '/api/runtime/puzzle/gallery/puzzle-profile-1', expect.objectContaining({ method: 'GET' }), '读取拼图广场详情失败', expect.objectContaining({ retry: expect.objectContaining({ maxRetries: 1 }), skipAuth: true, skipRefresh: true, }), ); });