Spaces:
Paused
Paused
File size: 1,157 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 | const { Sequelize } = require('sequelize');
class DatabaseTestHelper {
constructor() {
this.sequelize = new Sequelize({
dialect: 'postgres',
host: 'localhost',
port: 5432,
database: 'widgettdc_test',
username: 'postgres',
password: 'password',
logging: false,
});
}
async connect() {
await this.sequelize.authenticate();
}
async disconnect() {
await this.sequelize.close();
}
async clearDatabase() {
await this.sequelize.query('TRUNCATE TABLE users, widgets CASCADE');
}
async createTestUser(overrides = {}) {
const User = require('../../database/models/User')(this.sequelize);
return await User.create({
username: 'testuser',
email: 'test@example.com',
passwordHash: 'hashed_password',
...overrides,
});
}
async createTestWidget(userId, overrides = {}) {
const Widget = require('../../database/models/Widget')(this.sequelize);
return await Widget.create({
name: 'Test Widget',
version: '1.0.0',
price: 99.99,
ownerId: userId,
...overrides,
});
}
}
module.exports = DatabaseTestHelper;
|