mirror of
https://github.com/documenso/documenso.git
synced 2025-11-12 07:43:16 +10:00
119 lines
4.6 KiB
TypeScript
119 lines
4.6 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { seedBlankDocument } from '@documenso/prisma/seed/documents';
|
|
import { seedUserSubscription } from '@documenso/prisma/seed/subscriptions';
|
|
import { seedUser, unseedUser } from '@documenso/prisma/seed/users';
|
|
|
|
import { apiSignin } from '../fixtures/authentication';
|
|
|
|
test.describe.configure({ mode: 'parallel' });
|
|
|
|
test.describe('[EE_ONLY]', () => {
|
|
const enterprisePriceId = process.env.NEXT_PUBLIC_STRIPE_ENTERPRISE_PLAN_MONTHLY_PRICE_ID || '';
|
|
|
|
test.beforeEach(() => {
|
|
test.skip(
|
|
process.env.NEXT_PUBLIC_FEATURE_BILLING_ENABLED !== 'true' || !enterprisePriceId,
|
|
'Billing required for this test',
|
|
);
|
|
});
|
|
|
|
test('[DOCUMENT_FLOW] add EE settings', async ({ page }) => {
|
|
const user = await seedUser();
|
|
|
|
await seedUserSubscription({
|
|
userId: user.id,
|
|
priceId: enterprisePriceId,
|
|
});
|
|
|
|
const document = await seedBlankDocument(user);
|
|
|
|
await apiSignin({
|
|
page,
|
|
email: user.email,
|
|
redirectPath: `/documents/${document.id}/edit`,
|
|
});
|
|
|
|
// Save the settings by going to the next step.
|
|
await page.getByRole('button', { name: 'Continue' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Add Signers' })).toBeVisible();
|
|
|
|
// Add 2 signers.
|
|
await page.getByPlaceholder('Email').fill('recipient1@documenso.com');
|
|
await page.getByPlaceholder('Name').fill('Recipient 1');
|
|
await page.getByRole('button', { name: 'Add Signer' }).click();
|
|
await page
|
|
.getByRole('textbox', { name: 'Email', exact: true })
|
|
.fill('recipient2@documenso.com');
|
|
await page.getByRole('textbox', { name: 'Name', exact: true }).nth(1).fill('Recipient 2');
|
|
|
|
// Display advanced settings.
|
|
await page.getByLabel('Show advanced settings').click();
|
|
|
|
// Navigate to the next step and back.
|
|
await page.getByRole('button', { name: 'Continue' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Add Fields' })).toBeVisible();
|
|
await page.getByRole('button', { name: 'Go Back' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Add Signers' })).toBeVisible();
|
|
|
|
// Todo: Fix stepper component back issue before finishing test.
|
|
|
|
await unseedUser(user.id);
|
|
});
|
|
});
|
|
|
|
// Note: Not complete yet due to issue with back button.
|
|
test('[DOCUMENT_FLOW]: add signers', async ({ page }) => {
|
|
const user = await seedUser();
|
|
const document = await seedBlankDocument(user);
|
|
|
|
await apiSignin({
|
|
page,
|
|
email: user.email,
|
|
redirectPath: `/documents/${document.id}/edit`,
|
|
});
|
|
|
|
// Save the settings by going to the next step.
|
|
await page.getByRole('button', { name: 'Continue' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Add Signers' })).toBeVisible();
|
|
|
|
// Add 2 signers.
|
|
await page.getByPlaceholder('Email').fill('recipient1@documenso.com');
|
|
await page.getByPlaceholder('Name').fill('Recipient 1');
|
|
await page.getByRole('button', { name: 'Add Signer' }).click();
|
|
await page.getByRole('textbox', { name: 'Email', exact: true }).fill('recipient2@documenso.com');
|
|
await page.getByRole('textbox', { name: 'Name', exact: true }).nth(1).fill('Recipient 2');
|
|
|
|
// Advanced settings should not be visible for non EE users.
|
|
await expect(page.getByLabel('Show advanced settings')).toBeHidden();
|
|
|
|
// Navigate to the next step and back.
|
|
await page.getByRole('button', { name: 'Continue' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Add Fields' })).toBeVisible();
|
|
await page.getByRole('button', { name: 'Go Back' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Add Signers' })).toBeVisible();
|
|
|
|
// Todo: Fix stepper component back issue before finishing test.
|
|
|
|
// // Expect that the advanced settings is unchecked, since no advanced settings were applied.
|
|
// await expect(page.getByLabel('Show advanced settings')).toBeChecked({ checked: false });
|
|
|
|
// // Add advanced settings for a single recipient.
|
|
// await page.getByLabel('Show advanced settings').click();
|
|
// await page.getByRole('combobox').first().click();
|
|
// await page.getByLabel('Require account').click();
|
|
|
|
// // Navigate to the next step and back.
|
|
// await page.getByRole('button', { name: 'Continue' }).click();
|
|
// await expect(page.getByRole('heading', { name: 'Add Fields' })).toBeVisible();
|
|
// await page.getByRole('button', { name: 'Go Back' }).click();
|
|
// await expect(page.getByRole('heading', { name: 'Add Signers' })).toBeVisible();
|
|
|
|
// Expect that the advanced settings is visible, and the checkbox is hidden. Since advanced
|
|
// settings were applied.
|
|
|
|
// Todo: Fix stepper component back issue before finishing test.
|
|
|
|
await unseedUser(user.id);
|
|
});
|