Files
gymflow/server/test_user.js

65 lines
2.0 KiB
JavaScript

import { PrismaClient } from '@prisma/client';
import bcrypt from 'bcryptjs';
async function createTestUsers() {
const prisma = new PrismaClient();
// Create a regular user
const user1Email = 'user1@gymflow.ai';
const user1Password = 'user1pass';
const hashedUser1Password = await bcrypt.hash(user1Password, 10);
await prisma.user.upsert({
where: { email: user1Email },
update: { password: hashedUser1Password },
create: {
email: user1Email,
password: hashedUser1Password,
role: 'USER',
profile: { create: { weight: 70 } },
},
});
// Create another regular user
const user2Email = 'user2@gymflow.ai';
const user2Password = 'user2pass';
const hashedUser2Password = await bcrypt.hash(user2Password, 10);
await prisma.user.upsert({
where: { email: user2Email },
update: { password: hashedUser2Password },
create: {
email: user2Email,
password: hashedUser2Password,
role: 'USER',
profile: { create: { weight: 75 } },
},
});
// Create a user that will be blocked
const blockedUserEmail = 'blocked@gymflow.ai';
const blockedUserPassword = 'blockedpass';
const hashedBlockedUserPassword = await bcrypt.hash(blockedUserPassword, 10);
await prisma.user.upsert({
where: { email: blockedUserEmail },
update: { password: hashedBlockedUserPassword, isBlocked: true },
create: {
email: blockedUserEmail,
password: hashedBlockedUserPassword,
role: 'USER',
isBlocked: true,
profile: { create: { weight: 80 } },
},
});
console.log('Test users created or updated successfully.');
await prisma.$disconnect();
}
createTestUsers()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
// This script is meant to be run once to seed data, so we don't need to keep it running.
});