Agent skill
test:controller-layer
Gera testes para Infrastructure Layer (Controllers, Handlers, React Components). Prioriza integracao. FakeBuilder obrigatorio. RTL com seletores por role.
Install this agent skill to your Project
npx add-skill https://github.com/edneyreis999/zord-project/tree/main/service_financial-claude/skills/test-controller-layer
SKILL.md
Test Controller Layer
Testes para camada Infrastructure.
Regras
- INTEGRACAO prioritaria
- FakeBuilder OBRIGATORIO
- React: RTL com
getByRole(accessibility-first), NAO usargetByTestId - NestJS: supertest com TestingModule
NestJS Controller
describe('[Controller] (e2e)', () => {
it('POST /endpoint should return 201', () => {
const dto = Entity.fake().anEntity().build();
return request(app.getHttpServer())
.post('/endpoint')
.send(dto)
.expect(201);
});
});
React Component
describe('<Component />', () => {
it('renders [elemento] with [estado]', () => {
render(<Component {...props} />);
expect(screen.getByRole('button', { name: /submit/i })).toBeEnabled();
});
});
NestJS - Cenarios Obrigatorios
- Status codes corretos (200, 201, 400, 404, 500)
- Validacao de DTOs (class-validator rejeita input invalido)
- Guards aplicados (401/403 quando nao autenticado)
- Exception filters (erro formatado corretamente)
React - Cenarios Obrigatorios
- Renderizacao inicial (elementos visiveis)
- Interacao do usuario (click, input, submit)
- Estados de loading/error/success
- Acessibilidade (roles, labels, aria)
RTL Seletores por Prioridade
getByRole(PREFERIDO - semantico)getByLabelText(forms)getByText(fallback)getByTestId(PROIBIDO - quebra com refactor)
Estrutura de Arquivos
Testes DEVEM estar em __tests__/:
src/infra/__tests__/categories.controller.e2e.spec.ts
test.each para Controller + Fixture
describe('should create entity', () => {
const arrange = CreateEntityFixture.arrangeForCreate();
test.each(arrange)('when body is $send_data', async ({ send_data, expected }) => {
const presenter = await controller.create(send_data);
const entity = await repository.findById(new Uuid(presenter.id));
expect(entity!.toJSON()).toMatchObject(expected);
});
});
test.each para E2E com Validacao
describe('should return 422 for invalid request', () => {
const invalidRequest = CreateEntityFixture.arrangeInvalidRequest();
const arrange = Object.keys(invalidRequest).map((key) => ({
label: key,
value: invalidRequest[key],
}));
test.each(arrange)('when body is $label', ({ value }) => {
return request(app.getHttpServer())
.post('/entities')
.send(value.send_data)
.expect(422)
.expect(value.expected);
});
});
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?