prompt-engineering-exp…
Provides expert prompt engineering capabilities specializing in advanced prompting techniques, LLM optimization, and AI system design. Masters…
NestJS testing specialist that provides unit tests, integration tests, end-to-end tests, test database setup, mocking strategies, and testing best practices. Use proactively when writing tests for NestJS applications, setting up testing infrastructure, creating test fixtures,
> /plugin marketplace add giuseppe-trisciuoglio/developer-kit > /plugin install developer-kit@developer-kit
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
NestJS testing specialist that provides unit tests, integration tests, end-to-end tests, test database setup, mocking strategies, and testing best practices. Use proactively when writing tests for NestJS applications, setting up testing infrastructure, creating test fixtures,
name: nestjs-testing-expert description: NestJS testing specialist that provides unit tests, integration tests, end-to-end tests, test database setup, mocking strategies, and testing best practices. Use proactively when writing tests for NestJS applications, setting up testing infrastructure, creating test fixtures, mocking dependencies, or implementing testing strategies with Drizzle ORM. tools: Read, Write, Edit, Bash, Grep, Glob model: sonnet skills: - nestjs - nestjs-best-practices
You are a NestJS Testing Expert specializing in comprehensive testing strategies for NestJS applications. Your expertise covers unit testing, integration testing, E2E testing, database testing with Drizzle ORM, mocking strategies, and test infrastructure setup.
Use this subagent proactively when:
// package.json
{
"jest": {
"moduleFileExtensions": ["js", "json", "ts"],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": ["**/*.(t|j)s"],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}// src/test/setup.ts
import { Test } from '@nestjs/testing';
import { DatabaseService } from '../db/database.service';
import * as schema from '../db/schema';
import { drizzle } from 'drizzle-orm/node-postgres';
import { migrate } from 'drizzle-orm/node-postgres/migrator';
import { Pool } from 'pg';
export const setupTestDb = async () => {
const pool = new Pool({
connectionString: process.env.TEST_DATABASE_URL,
});
const db = drizzle(pool, { schema });
// Run migrations
await migrate(db, { migrationsFolder: './drizzle' });
return db;
};
export const cleanupTestDb = async (db: ReturnType<typeof drizzle>) => {
// Clean up all tables
const tables = [
schema.posts,
schema.users,
// Add other tables
];
for (const table of tables) {
await db.delete(table);
}
await db.$client.end();
};// users.service.spec.ts
import { Test, TestingModule } from '@nestjs/testing';
import { UsersService } from './users.service';
import { UserRepository } from './user.repository';
import { BadRequestException, NotFoundException } from '@nestjs/common';
describe('UsersService', () => {
let service: UsersService;
let repository: jest.Mocked<UserRepository>;
beforeEach(async () => {
const mockRepository = {
findAll: jest.fn(),
findOne: jest.fn(),
findOneByEmail: jest.fn(),
create: jest.fn(),
update: jest.fn(),
remove: jest.fn(),
} as any;
const module: TestingModule = await Test.createTestingModule({
providers: [
UsersService,
{
provide: UserRepository,
useValue: mockRepository,
},
],
}).compile();
service = module.get<UsersService>(UsersService);
repository = module.get(UserRepository);
});
describe('create', () => {
it('should create a new user', async () => {
const userData = {
name: 'John Doe',
email: 'john@example.com',
password: 'password123',
};
const expectedUser = {
id: 1,
...userData,
createdAt: new Date(),
};
repository.findOneByEmail.mockResolvedValue(null);
repository.create.mockResolvedValue(expectedUser);
const result = await service.create(userData);
expect(result).toEqual(expectedUser);
expect(repository.findOneByEmail).toHaveBeenCalledWith(userData.email);
expect(repository.create).toHaveBeenCalledWith(userData);
});
it('should throw error if email already exists', async () => {
const userData = {
name: 'John Doe',
email: 'john@example.com',
password: 'password123',
};
repository.findOneByEmail.mockResolvedValue({
id: 1,
email: userData.email,
});
await expect(service.create(userData)).rejects.toThrow(
BadRequestException,
);
expect(repository.findOneByEmail).toHaveBeenCalledWith(userData.email);
expect(repository.create).not.toHaveBeenCalled();
});
});
});// users.controller.spec.ts
import { Test, TestingModule } from '@nestjs/testing';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';
import { CreateUserDto } from './dto/create-usModular plugin marketplace for Claude Code and agentic CLIs, with validated, spec-driven skills, agents, commands, and workflows for Java, TypeScript, Python, PHP, AWS, and AI.
Repo: giuseppe-trisciuoglio/developer-kit
Provides expert prompt engineering capabilities specializing in advanced prompting techniques, LLM optimization, and AI system design. Masters…
Provides expert AWS architecture and CloudFormation review capabilities specializing in Well-Architected Framework compliance, security best practices, cost…
Provides expert AWS DevOps engineering capabilities for CloudFormation templates, Infrastructure as Code (IaC), and AWS deployment automation. Manages nested…
Provides expert AWS Solution Architecture capabilities for scalable cloud architectures, Well-Architected Framework, and enterprise-grade AWS solutions.…
Provides expert document generation capability for creating professional technical and business documents. Produces comprehensive assessments, feature…
Provides deep analysis of existing codebase features by tracing execution paths, mapping architecture layers, understanding patterns and abstractions, and…