diff --git a/src/components/editor/ExportBar.tsx b/src/components/editor/ExportBar.tsx index 7149ac7..ab7aa8d 100644 --- a/src/components/editor/ExportBar.tsx +++ b/src/components/editor/ExportBar.tsx @@ -107,6 +107,7 @@ export function ExportBar({ const metaTags = generateMetaTags({ title: params.title ? String(params.title) : undefined, description: params.description ? String(params.description) : undefined, + siteName: params.siteName ? String(params.siteName) : undefined, imageUrl: apiUrl, }); diff --git a/tests/editor/export-bar.test.ts b/tests/editor/export-bar.test.ts new file mode 100644 index 0000000..fd83f40 --- /dev/null +++ b/tests/editor/export-bar.test.ts @@ -0,0 +1,27 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { renderToString } from 'react-dom/server'; +import React from 'react'; + +const generateMetaTags = vi.fn((_params: Record) => ''); +vi.mock('@/lib/meta-tag-generator', () => ({ generateMetaTags })); + +const { ExportBar } = await import('@/components/editor/ExportBar'); + +function metaTagParams(params: Record) { + renderToString( + React.createElement(ExportBar, { apiUrl: '/api/og?x=1', downloadUrl: '/api/og?x=1', params, templateId: 'saas-maintenance' }), + ); + return generateMetaTags.mock.calls.at(-1)![0]; +} + +describe('ExportBar meta tags', () => { + beforeEach(() => generateMetaTags.mockClear()); + + it('passes the Site Name so the copied tags include og:site_name', () => { + expect(metaTagParams({ title: 'Database upgrade', siteName: 'Acme Cloud' })).toMatchObject({ siteName: 'Acme Cloud' }); + }); + + it('leaves siteName out when the Site Name is empty', () => { + expect(metaTagParams({ title: 'Database upgrade', siteName: '' }).siteName).toBeUndefined(); + }); +});