♻️(frontend) doc title as title for pdf export
Our pdf export was named impress-document.pdf, now it is named after the document title. We sanitize the title by removing special characters, replacing spaces with underscores and putting it in lowercase.
This commit is contained in:
@@ -14,11 +14,12 @@ test.describe('Pad Tools', () => {
|
|||||||
page,
|
page,
|
||||||
browserName,
|
browserName,
|
||||||
}) => {
|
}) => {
|
||||||
|
const [randomPad] = await createPad(page, 'pad-editor', browserName, 1);
|
||||||
|
|
||||||
const downloadPromise = page.waitForEvent('download', (download) => {
|
const downloadPromise = page.waitForEvent('download', (download) => {
|
||||||
return download.suggestedFilename().includes('impress-document.pdf');
|
return download.suggestedFilename().includes(`${randomPad}.pdf`);
|
||||||
});
|
});
|
||||||
|
|
||||||
const [randomPad] = await createPad(page, 'pad-editor', browserName, 1);
|
|
||||||
await expect(page.locator('h2').getByText(randomPad)).toBeVisible();
|
await expect(page.locator('h2').getByText(randomPad)).toBeVisible();
|
||||||
|
|
||||||
await page.locator('.ProseMirror.bn-editor').click();
|
await page.locator('.ProseMirror.bn-editor').click();
|
||||||
@@ -38,13 +39,11 @@ test.describe('Pad Tools', () => {
|
|||||||
.click();
|
.click();
|
||||||
|
|
||||||
const download = await downloadPromise;
|
const download = await downloadPromise;
|
||||||
expect(download.suggestedFilename()).toBe('impress-document.pdf');
|
expect(download.suggestedFilename()).toBe(`${randomPad}.pdf`);
|
||||||
|
|
||||||
const pdfBuffer = await cs.toBuffer(await download.createReadStream());
|
const pdfBuffer = await cs.toBuffer(await download.createReadStream());
|
||||||
const pdfText = (await pdf(pdfBuffer)).text;
|
const pdfText = (await pdf(pdfBuffer)).text;
|
||||||
|
|
||||||
expect(pdfText).toContain('Monsieur le Premier Ministre'); // This is the template text
|
|
||||||
expect(pdfText).toContain('La directrice'); // This is the template text
|
|
||||||
expect(pdfText).toContain('Hello World'); // This is the pad text
|
expect(pdfText).toContain('Hello World'); // This is the pad text
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,14 @@ export const ModalPDF = ({ onClose, templateOptions, pad }: ModalPDFProps) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadFile(pdf, 'impress-document.pdf');
|
// normalize title
|
||||||
|
const title = pad.title
|
||||||
|
.toLowerCase()
|
||||||
|
.normalize('NFD')
|
||||||
|
.replace(/[\u0300-\u036f]/g, '')
|
||||||
|
.replace(/\s/g, '-');
|
||||||
|
|
||||||
|
downloadFile(pdf, `${title}.pdf`);
|
||||||
|
|
||||||
toast(t('Your pdf was downloaded succesfully'), VariantType.SUCCESS);
|
toast(t('Your pdf was downloaded succesfully'), VariantType.SUCCESS);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user