mirror of
https://github.com/documenso/documenso.git
synced 2025-11-12 15:53:02 +10:00
chore: add e2e test for deleting a user
This commit is contained in:
@ -78,7 +78,9 @@ export const DeleteAccountDialog = ({ className, user }: DeleteAccountDialogProp
|
|||||||
<div className="flex-shrink-0">
|
<div className="flex-shrink-0">
|
||||||
<Dialog>
|
<Dialog>
|
||||||
<DialogTrigger asChild>
|
<DialogTrigger asChild>
|
||||||
<Button variant="destructive">Delete Account</Button>
|
<Button variant="destructive" data-testid="delete-account-button">
|
||||||
|
Delete Account
|
||||||
|
</Button>
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogHeader className="space-y-4">
|
<DialogHeader className="space-y-4">
|
||||||
@ -110,6 +112,7 @@ export const DeleteAccountDialog = ({ className, user }: DeleteAccountDialogProp
|
|||||||
onClick={onDeleteAccount}
|
onClick={onDeleteAccount}
|
||||||
loading={isDeletingAccount}
|
loading={isDeletingAccount}
|
||||||
variant="destructive"
|
variant="destructive"
|
||||||
|
data-testid="delete-account-confirmation-button"
|
||||||
disabled={hasTwoFactorAuthentication}
|
disabled={hasTwoFactorAuthentication}
|
||||||
>
|
>
|
||||||
{isDeletingAccount ? 'Deleting account...' : 'Delete Account'}
|
{isDeletingAccount ? 'Deleting account...' : 'Delete Account'}
|
||||||
|
|||||||
21
packages/app-tests/e2e/test-delete-user.spec.ts
Normal file
21
packages/app-tests/e2e/test-delete-user.spec.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { test } from '@playwright/test';
|
||||||
|
|
||||||
|
import { WEBAPP_BASE_URL } from '@documenso/lib/constants/app';
|
||||||
|
import { seedUser } from '@documenso/prisma/seed/users';
|
||||||
|
|
||||||
|
import { manualLogin } from './fixtures/authentication';
|
||||||
|
|
||||||
|
test('delete user', async ({ page }) => {
|
||||||
|
const user = await seedUser();
|
||||||
|
|
||||||
|
await manualLogin({
|
||||||
|
page,
|
||||||
|
email: user.email,
|
||||||
|
redirectPath: '/settings',
|
||||||
|
});
|
||||||
|
|
||||||
|
await page.getByTestId('delete-account-button').click();
|
||||||
|
await page.getByTestId('delete-account-confirmation-button').click();
|
||||||
|
|
||||||
|
await page.waitForURL(`${WEBAPP_BASE_URL}/signin`);
|
||||||
|
});
|
||||||
@ -12,7 +12,8 @@
|
|||||||
"prisma:generate": "prisma generate",
|
"prisma:generate": "prisma generate",
|
||||||
"prisma:migrate-dev": "prisma migrate dev",
|
"prisma:migrate-dev": "prisma migrate dev",
|
||||||
"prisma:migrate-deploy": "prisma migrate deploy",
|
"prisma:migrate-deploy": "prisma migrate deploy",
|
||||||
"prisma:seed": "prisma db seed"
|
"prisma:seed": "prisma db seed",
|
||||||
|
"prisma:studio": "prisma studio"
|
||||||
},
|
},
|
||||||
"prisma": {
|
"prisma": {
|
||||||
"seed": "ts-node --transpileOnly --project ./tsconfig.seed.json ./seed-database.ts"
|
"seed": "ts-node --transpileOnly --project ./tsconfig.seed.json ./seed-database.ts"
|
||||||
|
|||||||
@ -26,6 +26,27 @@ export const seedUser = async ({
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const seed2faUser = async ({
|
||||||
|
name = `2fa-user-${Date.now()}`,
|
||||||
|
email = `2fa-user-${Date.now()}@test.documenso.com`,
|
||||||
|
password = 'password',
|
||||||
|
verified = true,
|
||||||
|
}: SeedUserOptions = {}) => {
|
||||||
|
return await prisma.user.create({
|
||||||
|
data: {
|
||||||
|
name,
|
||||||
|
email,
|
||||||
|
password: hashSync(password),
|
||||||
|
emailVerified: verified ? new Date() : undefined,
|
||||||
|
url: name,
|
||||||
|
twoFactorEnabled: true,
|
||||||
|
twoFactorSecret:
|
||||||
|
'b2840b216b1f089cb086bdd4260196c645d90b0bd3ff8f66d20d19b99a0da1631bf299e416476917194f1064f58b',
|
||||||
|
twoFactorBackupCodes: 'a-bunch-of-backup-codes',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export const unseedUser = async (userId: number) => {
|
export const unseedUser = async (userId: number) => {
|
||||||
await prisma.user.delete({
|
await prisma.user.delete({
|
||||||
where: {
|
where: {
|
||||||
|
|||||||
Reference in New Issue
Block a user