Agent skill
test:integration
Gera testes cross-cutting que atravessam multiplas camadas DDD. FakeBuilder obrigatorio. Banco em memoria ou containers.
Install this agent skill to your Project
npx add-skill https://github.com/edneyreis999/zord-project/tree/main/service_financial-claude/skills/test-integration
SKILL.md
Test Integration
Testes que atravessam multiplas camadas.
Regras
- FakeBuilder OBRIGATORIO
- Banco: SQLite in-memory ou testcontainers
- Validar contratos de dados e transacoes
- Nomenclatura:
*.integration.spec.tsou*.e2e.spec.ts - NAO mockar Repository/DB - testar integracao REAL
Cenarios Tipicos
- Controller -> Service -> Repository -> DB
- Event emitido -> Handler -> Side effect
- Transaction rollback em erro
Padrao
describe('[Feature] Integration', () => {
beforeAll(async () => {
await db.migrate();
});
afterEach(async () => {
await db.truncateAll(); // Limpar entre testes
});
afterAll(async () => {
await db.close();
});
it('should persist [entidade] through all layers', async () => {
const input = Entity.fake().anEntity().build();
const response = await request(app).post('/endpoint').send(input);
const persisted = await repository.findById(response.body.id);
expect(persisted).toBeDefined();
});
});
Cenarios Cross-Layer Obrigatorios
- Happy path completo - request → response → persistido no DB
- Rollback em erro - transacao reverte em falha de validacao
- Eventos propagados - side effects executados apos commit
- Contratos de dados - schema DB = schema API response
Isolamento de Testes
- Cada teste DEVE ser independente (nao depender de ordem)
afterEachtrunca dados (nao deleta schema)- Usar FakeBuilder com
withEntityId(fixedId)para queries isoladas
Estrutura de Arquivos
Testes DEVEM estar em __tests__/:
src/infra/__tests__/entity.repository.integration.spec.ts
test.each para Repository Search
describe('search with filter, sort and paginate', () => {
const entities = [
Entity.fake().aEntity().withName('test').build(),
Entity.fake().aEntity().withName('TEST').build(),
Entity.fake().aEntity().withName('TeSt').build(),
];
const arrange = [
{
search_params: new EntitySearchParams({ page: 1, per_page: 2, sort: 'name', filter: 'TEST' }),
search_result: new EntitySearchResult({ items: [entities[1], entities[2]], total: 3, current_page: 1 }),
},
{
search_params: new EntitySearchParams({ page: 2, per_page: 2, sort: 'name', filter: 'TEST' }),
search_result: new EntitySearchResult({ items: [entities[0]], total: 3, current_page: 2 }),
},
];
beforeEach(() => repository.bulkInsert(entities));
test.each(arrange)('when params is $search_params', async ({ search_params, search_result }) => {
const result = await repository.search(search_params);
expect(result.toJSON(true)).toMatchObject(search_result.toJSON(true));
});
});
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
coderabbit-review
Executa CodeRabbit CLI em modo prompt-only para revisar alterações locais, identificar issues, planejar correções e validar com testes antes do commit
NestJS Architect
Guia arquitetural para desenvolvimento NestJS com DDD, Clean Architecture e padrões avançados. Use quando codificar serviços, módulos, agregados, use cases ou refatorar código NestJS.
Docker + NestJS Dev Environment
Configure e otimize ambientes de desenvolvimento Docker para projetos NestJS com hot-reload, persistência de dados, health checks e debugging eficiente.
NestJS + Jest Testing Excellence
Aplica padrões de excelência em testes com NestJS e Jest seguindo Clean Architecture, DDD e boas práticas de testabilidade. Use quando criar ou refatorar testes unitários, de integração ou E2E em projetos NestJS.
react-electron-code-health
Analisa código React + Electron contra best practices de Clean Architecture, React Hooks, Electron IPC, TypeScript, Apollo Client e Tailwind CSS. Detecta code smells, violações de arquitetura e calcula score quantitativo.
nextjs-architect
SEMPRE use quando trabalhar com Next.js 15/React 19 + shadcn/ui + Tailwind. Arquiteta apps server-first/feature-first com decisões de estado, cache, forms, segurança e performance.
Didn't find tool you were looking for?