Database Testing
Testing database operations in VeloxTS.
Test Setup
Section titled “Test Setup”import { setupTestContext } from '@veloxts/core';import { db } from '@/database';
describe('User procedures', () => { beforeEach(async () => { // Clean database before each test await db.user.deleteMany(); });
afterAll(async () => { await db.$disconnect(); });});Testing Procedures
Section titled “Testing Procedures”import { setupTestContext } from '@veloxts/core';import { userProcedures } from '@/procedures/users';
test('createUser creates a user', async () => { const ctx = await setupTestContext();
const result = await userProcedures.procedures.createUser.handler({ input: { name: 'Alice', email: 'alice@example.com' }, ctx, });
expect(result.name).toBe('Alice'); expect(result.id).toBeDefined();});Using Factories
Section titled “Using Factories”import { userFactory } from '@/database/factories';
test('listUsers returns all users', async () => { await userFactory.createMany(5);
const result = await userProcedures.procedures.listUsers.handler({ input: {}, ctx: await setupTestContext(), });
expect(result).toHaveLength(5);});Test Database
Section titled “Test Database”Use a separate test database:
DATABASE_URL="file:./test.db"Next Steps
Section titled “Next Steps”- Seeding - Test data
- Advanced Testing - More patterns