Adds the ability to specify an optional signing order for documents. When specified a document will be considered sequential with recipients only being allowed to sign in the order that they were specified in.
94 lines
3.3 KiB
TypeScript
94 lines
3.3 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { seedBlankDocument } from '@documenso/prisma/seed/documents';
|
|
import { seedUserSubscription } from '@documenso/prisma/seed/subscriptions';
|
|
import { seedUser } 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.getByLabel('Email').nth(1).fill('recipient2@documenso.com');
|
|
await page.getByLabel('Name').nth(1).fill('Recipient 2');
|
|
|
|
// Display advanced settings.
|
|
await page.getByLabel('Show advanced settings').check();
|
|
|
|
// 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.
|
|
});
|
|
});
|
|
|
|
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.getByLabel('Email').nth(1).fill('recipient2@documenso.com');
|
|
await page.getByLabel('Name').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();
|
|
});
|