tubearchivist-frontend/cypress/support/delete-user.ts

38 lines
973 B
TypeScript
Raw Normal View History

2022-10-18 19:28:37 +00:00
// 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]);