mirror of
https://github.com/documenso/documenso.git
synced 2025-11-22 12:41:36 +10:00
114 lines
4.9 KiB
TypeScript
114 lines
4.9 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { getTeamSettings } from '@documenso/lib/server-only/team/get-team-settings';
|
|
import { prisma } from '@documenso/prisma';
|
|
import { DocumentVisibility } from '@documenso/prisma/client';
|
|
import { seedTeamDocumentWithMeta } from '@documenso/prisma/seed/documents';
|
|
import { seedUser } from '@documenso/prisma/seed/users';
|
|
|
|
import { apiSignin } from '../fixtures/authentication';
|
|
|
|
test('[ORGANISATIONS]: manage preferences', async ({ page }) => {
|
|
const { user, organisation, team } = await seedUser({
|
|
isPersonalOrganisation: false,
|
|
});
|
|
|
|
await apiSignin({
|
|
page,
|
|
email: user.email,
|
|
redirectPath: `/o/${organisation.url}/settings/preferences`,
|
|
});
|
|
|
|
// Update document preferences.
|
|
await page.getByRole('combobox').filter({ hasText: 'Everyone can access and view' }).click();
|
|
await page.getByRole('option', { name: 'Only managers and above can' }).click();
|
|
await page.getByRole('combobox').filter({ hasText: 'English' }).click();
|
|
await page.getByRole('option', { name: 'German' }).click();
|
|
await page.getByTestId('signature-types-combobox').click();
|
|
await page.getByRole('option', { name: 'Draw' }).click();
|
|
await page.getByRole('option', { name: 'Upload' }).click();
|
|
await page.getByRole('combobox').nth(3).click();
|
|
await page.getByRole('option', { name: 'No' }).click();
|
|
await page.getByRole('combobox').filter({ hasText: 'Yes' }).click();
|
|
await page.getByRole('option', { name: 'No' }).click();
|
|
await page.getByRole('button', { name: 'Update' }).first().click();
|
|
await expect(page.getByText('Your document preferences have been updated').first()).toBeVisible();
|
|
|
|
// Update branding.
|
|
await page.getByTestId('enable-branding').click();
|
|
await page.getByRole('option', { name: 'Yes' }).click();
|
|
await page.getByRole('textbox', { name: 'Brand Website' }).click();
|
|
await page.getByRole('textbox', { name: 'Brand Website' }).fill('https://documenso.com');
|
|
await page.getByRole('textbox', { name: 'Brand Details' }).click();
|
|
await page.getByRole('textbox', { name: 'Brand Details' }).fill('BrandDetails');
|
|
await page.getByRole('button', { name: 'Update' }).nth(1).click();
|
|
await expect(page.getByText('Your branding preferences have been updated').first()).toBeVisible();
|
|
|
|
const teamSettings = await getTeamSettings({
|
|
teamId: team.id,
|
|
});
|
|
|
|
// Check that the team settings have inherited these values.
|
|
expect(teamSettings.documentVisibility).toEqual(DocumentVisibility.MANAGER_AND_ABOVE);
|
|
expect(teamSettings.documentLanguage).toEqual('de');
|
|
expect(teamSettings.includeSenderDetails).toEqual(false);
|
|
expect(teamSettings.includeSigningCertificate).toEqual(false);
|
|
expect(teamSettings.typedSignatureEnabled).toEqual(true);
|
|
expect(teamSettings.uploadSignatureEnabled).toEqual(false);
|
|
expect(teamSettings.drawSignatureEnabled).toEqual(false);
|
|
expect(teamSettings.brandingEnabled).toEqual(true);
|
|
expect(teamSettings.brandingUrl).toEqual('https://documenso.com');
|
|
expect(teamSettings.brandingCompanyDetails).toEqual('BrandDetails');
|
|
|
|
// Edit the team settings
|
|
await page.goto(`/t/${team.url}/settings/preferences`);
|
|
|
|
await page
|
|
.getByRole('group')
|
|
.locator('div')
|
|
.filter({
|
|
hasText: 'Default Document Visibility',
|
|
})
|
|
.getByRole('combobox')
|
|
.click();
|
|
await page.getByRole('option', { name: 'Everyone can access and view' }).click();
|
|
await page
|
|
.getByRole('group')
|
|
.locator('div')
|
|
.filter({ hasText: 'Default Document Language' })
|
|
.getByRole('combobox')
|
|
.click();
|
|
await page.getByRole('option', { name: 'Polish' }).click();
|
|
await page.getByRole('button', { name: 'Update' }).first().click();
|
|
await expect(page.getByText('Your document preferences have been updated').first()).toBeVisible();
|
|
|
|
const updatedTeamSettings = await getTeamSettings({
|
|
teamId: team.id,
|
|
});
|
|
|
|
// Check that the team settings have inherited/overriden the correct values.
|
|
expect(updatedTeamSettings.documentVisibility).toEqual(DocumentVisibility.EVERYONE);
|
|
expect(updatedTeamSettings.documentLanguage).toEqual('pl');
|
|
expect(updatedTeamSettings.includeSenderDetails).toEqual(false);
|
|
expect(updatedTeamSettings.includeSigningCertificate).toEqual(false);
|
|
expect(updatedTeamSettings.typedSignatureEnabled).toEqual(true);
|
|
expect(updatedTeamSettings.uploadSignatureEnabled).toEqual(false);
|
|
expect(updatedTeamSettings.drawSignatureEnabled).toEqual(false);
|
|
|
|
const document = await seedTeamDocumentWithMeta(team);
|
|
|
|
const documentMeta = await prisma.documentMeta.findFirstOrThrow({
|
|
where: {
|
|
documentId: document.id,
|
|
},
|
|
});
|
|
|
|
// Confirm the settings have been applied to a newly created document.
|
|
expect(document.visibility).toEqual(DocumentVisibility.EVERYONE);
|
|
|
|
expect(documentMeta.typedSignatureEnabled).toEqual(true);
|
|
expect(documentMeta.uploadSignatureEnabled).toEqual(false);
|
|
expect(documentMeta.drawSignatureEnabled).toEqual(false);
|
|
expect(documentMeta.language).toEqual('pl');
|
|
});
|