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 }).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 }).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); });