Skip to content

Database Testing

Testing database operations in VeloxTS.

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();
});
});
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();
});
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);
});

Use a separate test database:

.env.test
DATABASE_URL="file:./test.db"