Files
monitoring-app/tests/helpers.ts
amal c66ce4a39b upd: auth
Deskripsi:
-update login
- update struktur database

No Issues
2026-04-15 11:17:04 +08:00

39 lines
1.1 KiB
TypeScript

import { prisma } from '../src/lib/db'
import { createApp } from '../src/app'
export { prisma }
export function createTestApp() {
const app = createApp()
return app
}
/** Create a test user with hashed password, returns the user record */
export async function seedTestUser(email = 'test@example.com', password = 'test123', name = 'Test User', role: 'ADMIN' | 'DEVELOPER' = 'DEVELOPER') {
const hashed = await Bun.password.hash(password, { algorithm: 'bcrypt' })
return prisma.user.upsert({
where: { email },
update: { name, password: hashed, role },
create: { email, name, password: hashed, role },
})
}
/** Create a session for a user, returns the token */
export async function createTestSession(userId: string, expiresAt?: Date) {
const token = crypto.randomUUID()
await prisma.session.create({
data: {
token,
userId,
expiresAt: expiresAt ?? new Date(Date.now() + 24 * 60 * 60 * 1000),
},
})
return token
}
/** Clean up test data */
export async function cleanupTestData() {
await prisma.session.deleteMany()
await prisma.user.deleteMany()
}