mirror of
https://github.com/documenso/documenso.git
synced 2025-11-11 04:52:41 +10:00
chore: test for redirect url
This commit is contained in:
@ -252,3 +252,88 @@ test('should be able to create, send and sign a document', async ({ page }) => {
|
|||||||
const { status: completedStatus } = await getDocumentByToken({ token });
|
const { status: completedStatus } = await getDocumentByToken({ token });
|
||||||
expect(completedStatus).toBe(DocumentStatus.COMPLETED);
|
expect(completedStatus).toBe(DocumentStatus.COMPLETED);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should be able to create, send with redirect url, sign a document and redirect to redirect url', async ({
|
||||||
|
page,
|
||||||
|
}) => {
|
||||||
|
await page.goto('/signin');
|
||||||
|
|
||||||
|
const documentTitle = `example-${Date.now()}.pdf`;
|
||||||
|
|
||||||
|
// Sign in
|
||||||
|
await page.getByLabel('Email').fill(TEST_USER.email);
|
||||||
|
await page.getByLabel('Password', { exact: true }).fill(TEST_USER.password);
|
||||||
|
await page.getByRole('button', { name: 'Sign In' }).click();
|
||||||
|
|
||||||
|
// Upload document
|
||||||
|
const [fileChooser] = await Promise.all([
|
||||||
|
page.waitForEvent('filechooser'),
|
||||||
|
page.locator('input[type=file]').evaluate((e) => {
|
||||||
|
if (e instanceof HTMLInputElement) {
|
||||||
|
e.click();
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
|
||||||
|
await fileChooser.setFiles(path.join(__dirname, '../../../assets/example.pdf'));
|
||||||
|
|
||||||
|
// Wait to be redirected to the edit page
|
||||||
|
await page.waitForURL(/\/documents\/\d+/);
|
||||||
|
|
||||||
|
// Set title
|
||||||
|
await expect(page.getByRole('heading', { name: 'Add Title' })).toBeVisible();
|
||||||
|
|
||||||
|
await page.getByLabel('Title').fill(documentTitle);
|
||||||
|
|
||||||
|
await page.getByRole('button', { name: 'Continue' }).click();
|
||||||
|
|
||||||
|
// Add signers
|
||||||
|
await expect(page.getByRole('heading', { name: 'Add Signers' })).toBeVisible();
|
||||||
|
|
||||||
|
await page.getByLabel('Email*').fill('user1@example.com');
|
||||||
|
await page.getByLabel('Name').fill('User 1');
|
||||||
|
|
||||||
|
await page.getByRole('button', { name: 'Continue' }).click();
|
||||||
|
|
||||||
|
// Add fields
|
||||||
|
await expect(page.getByRole('heading', { name: 'Add Fields' })).toBeVisible();
|
||||||
|
await page.getByRole('button', { name: 'Continue' }).click();
|
||||||
|
|
||||||
|
// Add subject and send
|
||||||
|
await expect(page.getByRole('heading', { name: 'Add Subject' })).toBeVisible();
|
||||||
|
await page.getByRole('button', { name: 'Advanced Options' }).click();
|
||||||
|
await page.getByLabel('Redirect URL').fill('https://documenso.com');
|
||||||
|
|
||||||
|
await page.getByRole('button', { name: 'Send' }).click();
|
||||||
|
|
||||||
|
await page.waitForURL('/documents');
|
||||||
|
|
||||||
|
// Assert document was created
|
||||||
|
await expect(page.getByRole('link', { name: documentTitle })).toBeVisible();
|
||||||
|
await page.getByRole('link', { name: documentTitle }).click();
|
||||||
|
|
||||||
|
const url = await page.url().split('/');
|
||||||
|
const documentId = url[url.length - 1];
|
||||||
|
|
||||||
|
const { token } = await getRecipientByEmail({
|
||||||
|
email: 'user1@example.com',
|
||||||
|
documentId: Number(documentId),
|
||||||
|
});
|
||||||
|
|
||||||
|
await page.goto(`/sign/${token}`);
|
||||||
|
await page.waitForURL(`/sign/${token}`);
|
||||||
|
|
||||||
|
// Check if document has been viewed
|
||||||
|
const { status } = await getDocumentByToken({ token });
|
||||||
|
expect(status).toBe(DocumentStatus.PENDING);
|
||||||
|
|
||||||
|
await page.getByRole('button', { name: 'Complete' }).click();
|
||||||
|
await expect(page.getByRole('dialog').getByText('Sign Document')).toBeVisible();
|
||||||
|
await page.getByRole('button', { name: 'Sign' }).click();
|
||||||
|
|
||||||
|
await page.waitForURL('https://documenso.com');
|
||||||
|
|
||||||
|
// Check if document has been signed
|
||||||
|
const { status: completedStatus } = await getDocumentByToken({ token });
|
||||||
|
expect(completedStatus).toBe(DocumentStatus.COMPLETED);
|
||||||
|
});
|
||||||
|
|||||||
@ -230,7 +230,7 @@ export const AddSubjectFormPartial = ({
|
|||||||
<div className="flex flex-col gap-y-4">
|
<div className="flex flex-col gap-y-4">
|
||||||
<div>
|
<div>
|
||||||
<Label htmlFor="redirectUrl" className="flex items-center">
|
<Label htmlFor="redirectUrl" className="flex items-center">
|
||||||
Redirect URL{' '}
|
Redirect URL
|
||||||
<Tooltip>
|
<Tooltip>
|
||||||
<TooltipTrigger>
|
<TooltipTrigger>
|
||||||
<Info className="mx-2 h-4 w-4" />
|
<Info className="mx-2 h-4 w-4" />
|
||||||
|
|||||||
Reference in New Issue
Block a user