diff --git a/apps/viewer/pages/[[...publicId]].tsx b/apps/viewer/pages/[[...publicId]].tsx index a079f4e8940..da85d1f9a2e 100644 --- a/apps/viewer/pages/[[...publicId]].tsx +++ b/apps/viewer/pages/[[...publicId]].tsx @@ -47,7 +47,12 @@ export const getServerSideProps: GetServerSideProps = async ( url: `https://${forwardedHost ?? host}${pathname}`, customHeadCode: isDefined(headCode) && headCode !== '' - ? sanitizeHtml(headCode, { allowedTags: ['script', 'meta'] }) + ? sanitizeHtml(headCode, { + allowedTags: ['script', 'meta'], + allowedAttributes: { + meta: ['name', 'content'], + }, + }) : null, }, } diff --git a/apps/viewer/playwright/tests/metadata.spec.ts b/apps/viewer/playwright/tests/metadata.spec.ts index 1ee077e6791..90b3d133c60 100644 --- a/apps/viewer/playwright/tests/metadata.spec.ts +++ b/apps/viewer/playwright/tests/metadata.spec.ts @@ -17,6 +17,7 @@ test('Should correctly parse metadata', async ({ page }) => { title: 'Custom title', favIconUrl: 'https://www.baptistearno.com/favicon.png', imageUrl: 'https://www.baptistearno.com/images/site-preview.png', + customHeadCode: '', } await createTypebots([ { @@ -50,6 +51,11 @@ test('Should correctly parse metadata', async ({ page }) => { (document.querySelector('link[rel="icon"]') as any).getAttribute('href') ) ).toBe(customMetadata.favIconUrl) + expect( + await page.evaluate( + () => (document.querySelector('meta[name="author"]') as any).content + ) + ).toBe('John Doe') await expect( typebotViewer(page).locator( `input[placeholder="${defaultTextInputOptions.labels.placeholder}"]`