import { describe, it, expect, vi, beforeEach } from 'vitest'; import { areaClient, areaClientManager } from '../../src/api/areaClient'; // Mock API client vi.mock('../../src/api/areaClient', () => { const mockAreaClient = { $get: vi.fn(() => Promise.resolve({ status: 200, body: null })), $post: vi.fn(() => Promise.resolve({ status: 201, body: null })), ':id': { $put: vi.fn(() => Promise.resolve({ status: 200, body: null })), $delete: vi.fn(() => Promise.resolve({ status: 204, body: null })), }, }; const mockAreaClientManager = { get: vi.fn(() => mockAreaClient), init: vi.fn(() => mockAreaClient), reset: vi.fn(), }; return { areaClientManager: mockAreaClientManager, areaClient: mockAreaClient, }; }); describe('AreaClient', () => { beforeEach(() => { vi.clearAllMocks(); }); it('should export areaClientManager with methods', () => { expect(areaClientManager).toBeDefined(); expect(typeof areaClientManager.get).toBe('function'); expect(typeof areaClientManager.init).toBe('function'); expect(typeof areaClientManager.reset).toBe('function'); }); it('should export areaClient instance', () => { expect(areaClient).toBeDefined(); expect(typeof areaClient.$get).toBe('function'); expect(typeof areaClient.$post).toBe('function'); expect(areaClient[':id']).toBeDefined(); expect(typeof areaClient[':id'].$put).toBe('function'); expect(typeof areaClient[':id'].$delete).toBe('function'); }); it('should initialize client via manager', () => { const client = areaClientManager.init(); expect(client).toBeDefined(); expect(areaClientManager.init).toHaveBeenCalled(); }); it('should get client via manager', () => { const client = areaClientManager.get(); expect(client).toBeDefined(); expect(areaClientManager.get).toHaveBeenCalled(); }); it('should reset client via manager', () => { areaClientManager.reset(); expect(areaClientManager.reset).toHaveBeenCalled(); }); });