mirror of
https://github.com/documenso/documenso.git
synced 2025-11-14 08:42:12 +10:00
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.
101 lines
3.9 KiB
TypeScript
101 lines
3.9 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { seedUserSubscription } from '@documenso/prisma/seed/subscriptions';
|
|
import { seedBlankTemplate } from '@documenso/prisma/seed/templates';
|
|
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('[TEMPLATE_FLOW] add EE settings', async ({ page }) => {
|
|
const user = await seedUser();
|
|
|
|
await seedUserSubscription({
|
|
userId: user.id,
|
|
priceId: enterprisePriceId,
|
|
});
|
|
|
|
const template = await seedBlankTemplate(user);
|
|
|
|
await apiSignin({
|
|
page,
|
|
email: user.email,
|
|
redirectPath: `/templates/${template.id}`,
|
|
});
|
|
|
|
// Save the settings by going to the next step.
|
|
await page.getByRole('button', { name: 'Continue' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Add Placeholder' })).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 Placeholder Recipient' }).click();
|
|
await page.getByPlaceholder('Email').nth(1).fill('recipient2@documenso.com');
|
|
await page.getByPlaceholder('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 Placeholder' })).toBeVisible();
|
|
|
|
// 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').check();
|
|
await page.getByRole('combobox').first().click();
|
|
await page.getByLabel('Require passkey').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 Placeholder' })).toBeVisible();
|
|
|
|
// Expect that the advanced settings is visible, and the checkbox is hidden. Since advanced
|
|
// settings were applied.
|
|
await expect(page.getByLabel('Show advanced settings')).toBeHidden();
|
|
});
|
|
});
|
|
|
|
test('[TEMPLATE_FLOW]: add placeholder', async ({ page }) => {
|
|
const user = await seedUser();
|
|
const template = await seedBlankTemplate(user);
|
|
|
|
await apiSignin({
|
|
page,
|
|
email: user.email,
|
|
redirectPath: `/templates/${template.id}`,
|
|
});
|
|
|
|
// Save the settings by going to the next step.
|
|
await page.getByRole('button', { name: 'Continue' }).click();
|
|
await expect(page.getByRole('heading', { name: 'Add Placeholder' })).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 Placeholder Recipient' }).click();
|
|
await page.getByPlaceholder('Email').nth(1).fill('recipient2@documenso.com');
|
|
await page.getByPlaceholder('Name').nth(1).fill('Recipient 2');
|
|
|
|
// Advanced settings should not be visible for non EE users.
|
|
await expect(page.getByLabel('Show advanced settings')).toBeHidden();
|
|
});
|