Mode d’emploi
- Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
- Consultez le document original pour les outils, identifiants et environnements requis.
- Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/j4flmao/agent_skills_nodejs_nestjs --skill testing-nestjs-applicationsAvant de commencer
- L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
- Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.
Testing NestJS Applications
When to use
- Writing tests for use cases, controllers, or full HTTP flows
- Setting up test strategy for a NestJS feature
- Replacing mocks with hand-rolled fakes
Core rules
- Unit tests: domain entities with pure assertions (no NestJS testing module)
- Use-cases tested with hand-rolled fakes (not jest.mock)
- Integration tests:
Test.createTestingModulewith real or fake providers - E2E tests: Supertest against bootstrapped app
- No
jest.mockfor internal modules; only for third-party if needed
Reference shape (TypeScript)
Unit Test (Domain Entity)
import { User } from './user.entity';
describe('User', () => {
it('creates with valid email', () => {
const email = Email.create('test@example.com');
const user = User.create('1', email);
expect(user.id).toBe('1');
});
});Integration Test (Use-Case with Fake)
import { Test } from '@nestjs/testing';
import { CreateUserUseCase } from './create-user.use-case';
import { FakeUserRepository } from './fakes/fake-user.repository';
describe('CreateUserUseCase', () => {
let useCase: CreateUserUseCase;
beforeEach(async () => {
const module = await Test.createTestingModule({
providers: [
CreateUserUseCase,
{ provide: 'UserRepository', useClass: FakeUserRepository },
],
}).compile();
useCase = module.get(CreateUserUseCase);
});
it('creates user', async () => {
const result = await useCase.execute({ id: '1', email: 'test@example.com' });
expect(result.success).toBe(true);
});
});Examples — Do
const module = await Test.createTestingModule({
controllers: [UserController],
providers: [CreateUserUseCase, { provide: 'UserRepository', useClass: FakeUserRepository }],
}).compile();Examples — Don't
// ❌ jest.mock for internal modules
jest.mock('../../application/user.repository');Checklist
- [ ] Domain entities have unit tests
- [ ] Use-cases tested with hand-rolled fakes
- [ ] Integration tests with
Test.createTestingModule - [ ] E2E tests with Supertest
See reference/test-patterns.md for full patterns.



