Spaces:
Running
Running
| import { describe, it, expect, vi, beforeEach } from 'vitest'; | |
| import { authAPI, fetcher } from './api'; | |
| import api from './client'; | |
| vi.mock('./client', () => { | |
| return { | |
| default: { | |
| get: vi.fn(), | |
| post: vi.fn(), | |
| patch: vi.fn(), | |
| delete: vi.fn(), | |
| } | |
| }; | |
| }); | |
| describe('API Wrappers', () => { | |
| beforeEach(() => { | |
| vi.clearAllMocks(); | |
| }); | |
| describe('fetcher', () => { | |
| it('should call api.get and return data', async () => { | |
| const mockData = { message: 'success' }; | |
| api.get.mockResolvedValueOnce({ data: mockData }); | |
| const result = await fetcher('/test-url'); | |
| expect(api.get).toHaveBeenCalledWith('/test-url'); | |
| expect(result).toEqual(mockData); | |
| }); | |
| }); | |
| describe('authAPI', () => { | |
| it('register should call POST /auth/register', async () => { | |
| api.post.mockResolvedValueOnce({ data: 'registered' }); | |
| const userData = { email: 'test@example.com', password: 'password123' }; | |
| await authAPI.register(userData); | |
| expect(api.post).toHaveBeenCalledWith('/auth/register', userData); | |
| }); | |
| it('login should call POST /auth/login', async () => { | |
| api.post.mockResolvedValueOnce({ data: 'logged_in' }); | |
| const credentials = { email: 'test@example.com', password: 'password123' }; | |
| await authAPI.login(credentials); | |
| expect(api.post).toHaveBeenCalledWith('/auth/login', credentials); | |
| }); | |
| it('resetPassword should call POST /auth/reset-password', async () => { | |
| api.post.mockResolvedValueOnce({ data: 'reset_sent' }); | |
| const resetData = { email: 'test@example.com' }; | |
| await authAPI.resetPassword(resetData); | |
| expect(api.post).toHaveBeenCalledWith('/auth/reset-password', resetData); | |
| }); | |
| it('logout should call POST /auth/logout', async () => { | |
| api.post.mockResolvedValueOnce({ data: 'logged_out' }); | |
| await authAPI.logout(); | |
| expect(api.post).toHaveBeenCalledWith('/auth/logout'); | |
| }); | |
| it('me should call GET /auth/me', async () => { | |
| api.get.mockResolvedValueOnce({ data: { id: 1, name: 'Test User' } }); | |
| await authAPI.me(); | |
| expect(api.get).toHaveBeenCalledWith('/auth/me'); | |
| }); | |
| }); | |
| }); | |