63 lines
2.1 KiB
JavaScript
63 lines
2.1 KiB
JavaScript
import { db } from '../../config/database.js';
|
|
import { users } from '../schema.js';
|
|
import { eq } from 'drizzle-orm';
|
|
import { hashPassword } from '../../utils/password.js';
|
|
import { logger } from '../../utils/logger.js';
|
|
import dotenv from 'dotenv';
|
|
|
|
dotenv.config();
|
|
|
|
/**
|
|
* Seed script pre vytvorenie test usera
|
|
*/
|
|
async function seedTestUser() {
|
|
try {
|
|
logger.info('Starting test user seed...');
|
|
|
|
// Skontroluj či testuser už existuje
|
|
const [existingUser] = await db
|
|
.select()
|
|
.from(users)
|
|
.where(eq(users.username, 'testuser'))
|
|
.limit(1);
|
|
|
|
if (existingUser) {
|
|
logger.warn('Test user already exists. Deleting old one...');
|
|
await db.delete(users).where(eq(users.username, 'testuser'));
|
|
}
|
|
|
|
const tempPassword = 'testuser123!';
|
|
const hashedTempPassword = await hashPassword(tempPassword);
|
|
|
|
// Vytvor test usera
|
|
const [newUser] = await db
|
|
.insert(users)
|
|
.values({
|
|
username: 'testuser',
|
|
tempPassword: hashedTempPassword,
|
|
role: 'member',
|
|
changedPassword: false,
|
|
firstName: 'Test',
|
|
lastName: 'User',
|
|
})
|
|
.returning();
|
|
|
|
logger.success('Test user created successfully!');
|
|
logger.info('═══════════════════════════════════════════════════════');
|
|
logger.info(' TEST USER CREDENTIALS');
|
|
logger.info('═══════════════════════════════════════════════════════');
|
|
logger.info(` Username: testuser`);
|
|
logger.info(` Temporary Password: ${tempPassword}`);
|
|
logger.info(` User ID: ${newUser.id}`);
|
|
logger.info(` Role: ${newUser.role}`);
|
|
logger.info('═══════════════════════════════════════════════════════');
|
|
|
|
process.exit(0);
|
|
} catch (error) {
|
|
logger.error('Failed to seed test user', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
seedTestUser();
|