widgettdc-api / tests /helpers /dbHelper.cjs
Kraft102's picture
fix: sql.js Docker/Alpine compatibility layer for PatternMemory and FailureMemory
5a81b95
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;