Last active
March 8, 2024 21:49
-
-
Save ephraimduncan/11955d327e588e63c24630757a2a6c72 to your computer and use it in GitHub Desktop.
documenso signing document e2e
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
test('should be able to create, send and sign a document', 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: 'User 1 Signature' }).click(); | |
await page.locator('canvas').click({ | |
position: { | |
x: 100, | |
y: 100, | |
}, | |
}); | |
await page.getByRole('button', { name: 'Email Email' }).click(); | |
await page.locator('canvas').click({ | |
position: { | |
x: 100, | |
y: 200, | |
}, | |
}); | |
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: '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}`); | |
// TODO: check document status is viewed | |
await page.getByRole('button', { name: 'Next Field' }).click(); | |
await expect(page.getByText('Click to insert field')).toBeVisible(); | |
await page.getByTestId('signature-field').click(); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment