UNPKG

ruch

Version:

Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.

45 lines (37 loc) 1.44 kB
export const getAdapterTestTemplate = (domainName: string): string => { const capitalizedName = domainName.charAt(0).toUpperCase() + domainName.slice(1); return `import { describe, it, expect, vi, beforeEach } from 'vitest'; import { ${capitalizedName}Adapter } from './${capitalizedName}Adapter'; import { ${capitalizedName}Error } from '../services/${capitalizedName}Service'; describe('${capitalizedName}Adapter', () => { let adapter: ${capitalizedName}Adapter; const mockBaseUrl = 'http://api.example.com'; beforeEach(() => { adapter = new ${capitalizedName}Adapter(mockBaseUrl); vi.stubGlobal('fetch', vi.fn()); }); describe('getAll', () => { it('should fetch all entities', async () => { const mockEntities = [{ id: '1' }]; (global.fetch as any).mockResolvedValueOnce({ ok: true, json: () => Promise.resolve(mockEntities), }); const result = await adapter.getAll(); expect(result).toEqual(mockEntities); expect(global.fetch).toHaveBeenCalledWith( \`\${mockBaseUrl}/${domainName}\`, expect.any(Object) ); }); it('should throw error when request fails', async () => { (global.fetch as any).mockResolvedValueOnce({ ok: false, status: 500, }); await expect(adapter.getAll()).rejects.toThrow(${capitalizedName}Error); }); }); // Add more test cases for other methods... });`; };