test-database-feature

Installation
SKILL.md

Test Database Feature

Prerequisites

1. Start Local Database

docker-compose -f assets/local/docker-compose.yml up -d

Database: localhost:3306, DB: rapid_db, User: rapid_user, Password: rapid_password

2. Setup Prisma

cd backend
npm run prisma:generate
npm run prisma:migrate

Repository Integration Test Pattern

Repository tests MUST connect to actual database (not mocks).

import { describe, it, expect, beforeEach, afterAll } from 'vitest';
import { PrismaClient } from '@prisma/client';
import { makeYourRepository } from '../domain/repository';

const prisma = new PrismaClient();

describe('YourRepository Integration Tests', () => {
  beforeEach(async () => {
    await prisma.yourModel.deleteMany();
  });

  afterAll(async () => {
    await prisma.$disconnect();
  });

  it('should create and retrieve entity', async () => {
    const repo = makeYourRepository(prisma);
    const entity = { id: 'test-1', name: 'Test Entity' };

    await repo.storeEntity({ entity });
    const retrieved = await repo.findEntityById('test-1');

    expect(retrieved).not.toBeNull();
    expect(retrieved?.name).toBe('Test Entity');
  });
});

Test Organization

backend/src/api/features/{feature}/__tests__/
├── repository-integration.test.ts  # Database integration tests
├── usecase.test.ts                 # Use case unit tests (mocked repo)
└── handlers.test.ts                # Handler unit tests (mocked usecase)

Running Tests

cd backend
npm test                          # All tests
npm run test -- {test-name}       # Specific test suite
npm run test:watch                # Watch mode
npm run test:coverage             # With coverage

Quick Commands

Task Command
Start DB docker-compose -f assets/local/docker-compose.yml up -d
Stop DB docker-compose -f assets/local/docker-compose.yml down
Reset DB Add -v to down, then up + migrate
Run migrations cd backend && npm run prisma:migrate
Prisma Studio cd backend && npm run prisma:studio (http://localhost:5555)

Success Criteria

  • Docker container running
  • Migrations applied
  • All repository integration tests pass
  • Ready to run /build-and-format for final verification
Weekly Installs
1
GitHub Stars
60
First Seen
Apr 1, 2026