better-chatbot / tests /helpers /clear-users.ts
Bot
Initial commit for HF Spaces
05c5ed5
Raw
History Blame Contribute Delete
1.82 kB
import { pgDb } from "../../src/lib/db/pg/db.pg";
import {
UserTable,
SessionTable,
AccountTable,
VerificationTable,
ChatThreadTable,
ChatMessageTable,
AgentTable,
WorkflowTable,
McpServerTable,
ArchiveTable,
ArchiveItemTable,
} from "../../src/lib/db/pg/schema.pg";
/**
* Clear all users from the database for first-user testing
* WARNING: Only use in test environment!
*/
export async function clearAllUsers() {
if (process.env.NODE_ENV === "production") {
throw new Error("Cannot clear users in production!");
}
console.log("🧹 Clearing all users for first-user testing...");
// Clear in order of dependencies (most dependent first)
// 1. Clear archive items first (depends on archives)
await pgDb.delete(ArchiveItemTable);
// 2. Clear archives (depends on users)
await pgDb.delete(ArchiveTable);
// 3. Clear chat messages (depends on threads)
await pgDb.delete(ChatMessageTable);
// 4. Clear chat threads (depends on users)
await pgDb.delete(ChatThreadTable);
// 5. Clear workflows (depends on users)
await pgDb.delete(WorkflowTable);
// 6. Clear agents (depends on users)
await pgDb.delete(AgentTable);
// 7. Clear MCP servers (depends on users)
await pgDb.delete(McpServerTable);
// 8. Clear sessions (depends on users)
await pgDb.delete(SessionTable);
// 9. Clear accounts (depends on users)
await pgDb.delete(AccountTable);
// 10. Clear verifications (depends on users)
await pgDb.delete(VerificationTable);
// 11. Finally clear users
await pgDb.delete(UserTable);
console.log("✅ All users and related data cleared");
}
/**
* Check if any users exist in the database
*/
export async function getUserCount(): Promise<number> {
const users = await pgDb.select().from(UserTable);
return users.length;
}