mirror of
https://github.com/tubearchivist/tubearchivist-frontend.git
synced 2024-11-22 11:50:14 +00:00
38 lines
973 B
TypeScript
38 lines
973 B
TypeScript
// Use this to delete a user by their email
|
|
// Simply call this with:
|
|
// npx ts-node --require tsconfig-paths/register ./cypress/support/delete-user.ts username@example.com
|
|
// and that user will get deleted
|
|
|
|
import { PrismaClientKnownRequestError } from "@prisma/client/runtime";
|
|
import { installGlobals } from "@remix-run/node";
|
|
|
|
import { prisma } from "~/db.server";
|
|
|
|
installGlobals();
|
|
|
|
async function deleteUser(email: string) {
|
|
if (!email) {
|
|
throw new Error("email required for login");
|
|
}
|
|
if (!email.endsWith("@example.com")) {
|
|
throw new Error("All test emails must end in @example.com");
|
|
}
|
|
|
|
try {
|
|
await prisma.user.delete({ where: { email } });
|
|
} catch (error) {
|
|
if (
|
|
error instanceof PrismaClientKnownRequestError &&
|
|
error.code === "P2025"
|
|
) {
|
|
console.log("User not found, so no need to delete");
|
|
} else {
|
|
throw error;
|
|
}
|
|
} finally {
|
|
await prisma.$disconnect();
|
|
}
|
|
}
|
|
|
|
deleteUser(process.argv[2]);
|