46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
|
|
import client from '../client';
|
|
import { getDomains, createDomain, deleteDomain, type Domain } from '../domains';
|
|
|
|
vi.mock('../client', () => ({
|
|
default: {
|
|
get: vi.fn(),
|
|
post: vi.fn(),
|
|
delete: vi.fn(),
|
|
},
|
|
}));
|
|
|
|
describe('domains API', () => {
|
|
beforeEach(() => {
|
|
vi.clearAllMocks();
|
|
});
|
|
|
|
const mockDomain: Domain = {
|
|
id: 1,
|
|
uuid: '123',
|
|
name: 'example.com',
|
|
created_at: '2023-01-01',
|
|
};
|
|
|
|
it('getDomains calls client.get', async () => {
|
|
vi.mocked(client.get).mockResolvedValue({ data: [mockDomain] });
|
|
const result = await getDomains();
|
|
expect(client.get).toHaveBeenCalledWith('/domains');
|
|
expect(result).toEqual([mockDomain]);
|
|
});
|
|
|
|
it('createDomain calls client.post', async () => {
|
|
vi.mocked(client.post).mockResolvedValue({ data: mockDomain });
|
|
const result = await createDomain('example.com');
|
|
expect(client.post).toHaveBeenCalledWith('/domains', { name: 'example.com' });
|
|
expect(result).toEqual(mockDomain);
|
|
});
|
|
|
|
it('deleteDomain calls client.delete', async () => {
|
|
vi.mocked(client.delete).mockResolvedValue({ data: {} });
|
|
await deleteDomain('123');
|
|
expect(client.delete).toHaveBeenCalledWith('/domains/123');
|
|
});
|
|
});
|