EternalAI/e2e/fixtures/database.js

47 lines
1.2 KiB
JavaScript

// 数据库清理 helper
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function cleanDatabase() {
await prisma.order.deleteMany();
await prisma.role.deleteMany();
await prisma.apiKey.deleteMany();
await prisma.systemConfig.deleteMany();
await prisma.user.deleteMany();
// 不删除 Admin 表,保留测试管理员账号
}
async function seedExistingUser() {
const bcrypt = require('bcryptjs');
const testData = require('./test-data');
await prisma.user.create({
data: {
account: testData.users.existing.account,
password: bcrypt.hashSync(testData.users.existing.password, 10),
isCreator: true,
creatorName: testData.users.existing.account,
libraryName: 'E2E测试库',
},
});
}
async function seedAdmin() {
const bcrypt = require('bcryptjs');
const admin = await prisma.admin.findUnique({ where: { account: 'admin' } });
if (!admin) {
await prisma.admin.create({
data: {
account: 'admin',
password: bcrypt.hashSync('admin123', 10),
},
});
}
}
async function disconnect() {
await prisma.$disconnect();
}
module.exports = { cleanDatabase, seedExistingUser, seedAdmin, disconnect, prisma };