Spaces:
Paused
Paused
File size: 1,434 Bytes
5a81b95 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | const DatabaseTestHelper = require('../helpers/dbHelper.cjs');
describe('User Model', () => {
let dbHelper;
beforeAll(async () => {
dbHelper = new DatabaseTestHelper();
await dbHelper.connect();
});
afterAll(async () => {
await dbHelper.disconnect();
});
beforeEach(async () => {
await dbHelper.clearDatabase();
});
test('should create a user with valid data', async () => {
const user = await dbHelper.createTestUser({
username: 'john_doe',
email: 'john@example.com',
});
expect(user.id).toBeDefined();
expect(user.username).toBe('john_doe');
expect(user.email).toBe('john@example.com');
expect(user.isActive).toBe(true);
});
test('should enforce unique username constraint', async () => {
await dbHelper.createTestUser({ username: 'duplicate' });
await expect(
dbHelper.createTestUser({
username: 'duplicate',
email: 'different@example.com',
})
).rejects.toThrow();
});
test('should enforce unique email constraint', async () => {
await dbHelper.createTestUser({ email: 'same@example.com' });
await expect(
dbHelper.createTestUser({
username: 'different',
email: 'same@example.com',
})
).rejects.toThrow();
});
test('should validate email format', async () => {
await expect(dbHelper.createTestUser({ email: 'invalid-email' })).rejects.toThrow();
});
});
|