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">
|
||||
<Dialog>
|
||||
<DialogTrigger asChild>
|
||||
<Button variant="destructive">Delete Account</Button>
|
||||
<Button variant="destructive" data-testid="delete-account-button">
|
||||
Delete Account
|
||||
</Button>
|
||||
</DialogTrigger>
|
||||
<DialogContent>
|
||||
<DialogHeader className="space-y-4">
|
||||
@ -110,6 +112,7 @@ export const DeleteAccountDialog = ({ className, user }: DeleteAccountDialogProp
|
||||
onClick={onDeleteAccount}
|
||||
loading={isDeletingAccount}
|
||||
variant="destructive"
|
||||
data-testid="delete-account-confirmation-button"
|
||||
disabled={hasTwoFactorAuthentication}
|
||||
>
|
||||
{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:migrate-dev": "prisma migrate dev",
|
||||
"prisma:migrate-deploy": "prisma migrate deploy",
|
||||
"prisma:seed": "prisma db seed"
|
||||
"prisma:seed": "prisma db seed",
|
||||
"prisma:studio": "prisma studio"
|
||||
},
|
||||
"prisma": {
|
||||
"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) => {
|
||||
await prisma.user.delete({
|
||||
where: {
|
||||
|
||||
Reference in New Issue
Block a user