fitaiProto/apps/admin/scripts/verify-db.ts
2026-03-10 04:14:03 +01:00

80 lines
2.2 KiB
TypeScript

import { getDatabase } from "../src/lib/database/index";
async function verifyDatabase() {
console.log("Starting database verification...");
const db = await getDatabase();
await db.connect();
try {
// 1. Create User
console.log("Creating test user...");
const userId = `test-user-${Date.now()}`;
const user = await db.createUser({
id: userId,
email: `test-${Date.now()}@example.com`,
firstName: "Test",
lastName: "User",
password: "password123",
role: "client",
phone: "1234567890",
});
console.log("User created:", user.id);
// 2. Create Client
console.log("Creating test client...");
const client = await db.createClient({
userId: user.id,
membershipType: "basic",
membershipStatus: "active",
joinDate: new Date(),
});
console.log("Client created:", client.id);
// 3. Create Fitness Profile
console.log("Creating fitness profile...");
const profile = await db.createFitnessProfile({
id: "test-profile-id",
userId: user.id,
height: 180,
weight: 75,
age: 30,
gender: "male",
activityLevel: "moderately_active",
fitnessGoals: ["weight_loss"],
medicalConditions: "None",
});
console.log("Fitness profile created for:", profile.userId);
// 4. Attendance Check-in
console.log("Checking in...");
const checkIn = await db.checkIn(user.id, "gym", "Test check-in");
console.log("Checked in:", checkIn.id);
// 5. Verify Active Check-in
const activeCheckIn = await db.getActiveCheckIn(user.id);
if (!activeCheckIn || activeCheckIn.id !== checkIn.id) {
throw new Error("Active check-in verification failed");
}
console.log("Active check-in verified");
// 6. Attendance Check-out
console.log("Checking out...");
const checkOut = await db.checkOut(checkIn.id);
console.log("Checked out:", checkOut?.checkOutTime);
// 7. Cleanup
console.log("Cleaning up...");
await db.deleteUser(user.id);
console.log("Cleanup complete");
console.log("✅ Verification successful!");
} catch (error) {
console.error("❌ Verification failed:", error);
process.exit(1);
} finally {
await db.disconnect();
}
}
verifyDatabase();