@actuate-media/cms-admin 0.76.1 → 0.76.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @actuate-media/cms-admin
2
2
 
3
+ ## 0.76.2
4
+
5
+ ### Patch Changes
6
+
7
+ - cc18833: SEO audit remediation — 47 verified fixes across the SEO system.
8
+
9
+ Highlights: redirect middleware no longer excludes legacy `.html/.php/.aspx`
10
+ URLs (migrations); robots.txt now `Allow`s the default OG image (`/api/cms/og.png`)
11
+ so social shares render; RSS always emits the mandatory channel `<description>`;
12
+ structured-data auto-detection no longer emits invalid `Review/Event/JobPosting`
13
+ (required fields enforced or the node is suppressed) and no longer mis-types
14
+ collections by substring (`newsletters`→NewsArticle etc.); the sitemap endpoint
15
+ no longer selects full document JSON for up to 45k rows; IndexNow submits on
16
+ every publish instead of being swallowed by the sitemap debounce; the exported
17
+ `renderJsonLdScript()` now escapes `<`; the editor no longer shows two
18
+ conflicting scores and the Content-tab analysis now understands section-built
19
+ pages; plus pagination `rel`/canonical, `og:locale` normalization + alternates,
20
+ canonical absolutization, VideoObject/Product/WebSite-SearchAction builders,
21
+ redirect loop/case handling, plugin-seo sitemap caps + real `lastmod`, and
22
+ plugin link-health routed through `safeFetch`. Adds several new exports on
23
+ `@actuate-media/cms-core` (e.g. `buildVideoObjectSchema`, `buildProductSchema`).
24
+
3
25
  ## 0.76.1
4
26
 
5
27
  ### Patch Changes
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=seo-editor-pane.render.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo-editor-pane.render.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/components/seo-editor-pane.render.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,100 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // @vitest-environment happy-dom
3
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
4
+ import { fireEvent, render, screen, waitFor, within } from '@testing-library/react';
5
+ /**
6
+ * Focused SeoEditorPane behaviours:
7
+ * - The header labels the two numbers unambiguously ("SEO score" vs "Content
8
+ * analysis N/100") instead of the ambiguous "· Live analysis N".
9
+ * - Generating an OG title/description writes into the OG field itself and
10
+ * never overwrites the (search) meta title/description — a previously
11
+ * destructive, undo-less action.
12
+ */
13
+ const RECORD = {
14
+ id: 'seo1',
15
+ entityType: 'page',
16
+ entityId: 'p1',
17
+ title: 'Home',
18
+ url: 'https://example.com/',
19
+ canonicalUrl: null,
20
+ metaTitle: 'Home — Example',
21
+ metaTitlePage: 'Home',
22
+ siteName: 'Example',
23
+ titleTemplate: '%page% — %site%',
24
+ metaDescription: 'Welcome to Example.',
25
+ focusKeyword: null,
26
+ keyTakeaway: null,
27
+ ogTitle: null,
28
+ ogDescription: null,
29
+ ogImageId: null,
30
+ ogImage: null,
31
+ twitterTitle: null,
32
+ twitterDescription: null,
33
+ twitterImageId: null,
34
+ noindex: false,
35
+ nofollow: false,
36
+ structuredDataType: 'WebPage',
37
+ structuredData: null,
38
+ llmsInclude: 'AUTO',
39
+ llmsDescription: null,
40
+ llmsSection: null,
41
+ llmsOptional: false,
42
+ seoScore: 82,
43
+ seoGrade: 'good',
44
+ updatedAt: '2026-06-01T00:00:00Z',
45
+ };
46
+ const fetchSeoContentRecord = vi.fn(async () => RECORD);
47
+ const generateSeoField = vi.fn(async (_field, _ctx) => ({
48
+ text: 'Generated OG Title',
49
+ }));
50
+ vi.mock('@actuate-media/cms-core/client', async (importOriginal) => {
51
+ const actual = await importOriginal();
52
+ return { ...actual };
53
+ });
54
+ vi.mock('../../lib/seo-service.js', () => ({
55
+ fetchSeoContentRecord: () => fetchSeoContentRecord(),
56
+ fetchDocumentSeoAnalysis: vi.fn(async () => ({ score: 72, checks: [] })),
57
+ updateSeoFields: vi.fn(async () => ({})),
58
+ generateSeoField: (field, ctx) => generateSeoField(field, ctx),
59
+ fetchLinkSuggestions: vi.fn(async () => ({ data: { suggestions: [] } })),
60
+ SEO_SCHEMA_TYPES: ['Article', 'WebPage'],
61
+ }));
62
+ vi.mock('../../lib/brand-voice-client.js', () => ({
63
+ fixBrandVoiceContent: vi.fn(async () => ({ ok: false })),
64
+ brandAlignmentTone: () => 'text-success',
65
+ brandAlignmentLabel: () => 'On brand',
66
+ }));
67
+ vi.mock('sonner', () => ({ toast: { success: vi.fn(), error: vi.fn(), loading: vi.fn() } }));
68
+ const { SeoEditorPane } = await import('../../components/seo/SeoEditorPane.js');
69
+ beforeEach(() => {
70
+ fetchSeoContentRecord.mockClear();
71
+ generateSeoField.mockClear();
72
+ });
73
+ describe('SeoEditorPane header', () => {
74
+ it('labels the analysis number as "Content analysis N/100", not "Live analysis"', async () => {
75
+ render(_jsx(SeoEditorPane, { entityType: "page", entityId: "p1", onClose: () => { } }));
76
+ // Score header renders once the record loads.
77
+ expect(await screen.findByText(/SEO score:/)).toBeTruthy();
78
+ await waitFor(() => expect(screen.getByText(/Content analysis 72\/100/)).toBeTruthy());
79
+ expect(screen.queryByText(/Live analysis/)).toBeNull();
80
+ });
81
+ });
82
+ describe('SeoEditorPane OG generation', () => {
83
+ it('writes an AI OG title into the OG field and leaves the meta title intact', async () => {
84
+ render(_jsx(SeoEditorPane, { entityType: "page", entityId: "p1", onClose: () => { } }));
85
+ // Wait for the record → the SEO (meta) title field shows the page portion.
86
+ expect(await screen.findByDisplayValue('Home')).toBeTruthy();
87
+ // Expand the collapsed "Social appearance" accordion to reveal OG fields.
88
+ fireEvent.click(screen.getByRole('button', { name: /Social appearance/ }));
89
+ // Click the AI Generate button that belongs to the "OG title" field.
90
+ const ogLabel = await screen.findByText('OG title');
91
+ const ogFieldHeader = ogLabel.closest('div');
92
+ fireEvent.click(within(ogFieldHeader).getByRole('button', { name: /AI Generate/ }));
93
+ await waitFor(() => expect(generateSeoField).toHaveBeenCalledWith('ogTitle', expect.anything()));
94
+ // The suggestion lands in the OG field...
95
+ await waitFor(() => expect(screen.getByDisplayValue('Generated OG Title')).toBeTruthy());
96
+ // ...and the search meta title is untouched (was NOT overwritten/cleared).
97
+ expect(screen.getByDisplayValue('Home')).toBeTruthy();
98
+ });
99
+ });
100
+ //# sourceMappingURL=seo-editor-pane.render.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo-editor-pane.render.test.js","sourceRoot":"","sources":["../../../src/__tests__/components/seo-editor-pane.render.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SeoEditorPane.d.ts","sourceRoot":"","sources":["../../../src/components/seo/SeoEditorPane.tsx"],"names":[],"mappings":"AAmIA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CAChF;AAED,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAgB,EAChB,IAAS,EACT,SAAS,EACT,aAAa,GACd,EAAE,kBAAkB,2CAqpBpB"}
1
+ {"version":3,"file":"SeoEditorPane.d.ts","sourceRoot":"","sources":["../../../src/components/seo/SeoEditorPane.tsx"],"names":[],"mappings":"AAmIA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CAChF;AAED,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAgB,EAChB,IAAS,EACT,SAAS,EACT,aAAa,GACd,EAAE,kBAAkB,2CA+pBpB"}
@@ -159,19 +159,18 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
159
159
  return;
160
160
  }
161
161
  if (result.text) {
162
- const targetField = field === 'ogTitle' ? 'metaTitle' : field === 'ogDescription' ? 'metaDescription' : field;
163
- const patch = { [targetField]: result.text };
164
- if (field === 'ogTitle')
165
- patch.ogTitle = '';
166
- if (field === 'ogDescription')
167
- patch.ogDescription = '';
162
+ // Write the suggestion into the field the editor actually asked to
163
+ // generate. Previously an OG title/description generate was remapped
164
+ // onto metaTitle/metaDescription (and the OG field cleared), silently
165
+ // destroying a hand-written search title with no undo. Social fields
166
+ // still inherit meta at render time when left blank, so filling the OG
167
+ // field explicitly is non-destructive and matches the button's intent.
168
+ const patch = { [field]: result.text };
168
169
  update(patch);
169
170
  if (result.brandAlignment) {
170
- setAiAlignments((prev) => ({ ...prev, [targetField]: result.brandAlignment }));
171
+ setAiAlignments((prev) => ({ ...prev, [field]: result.brandAlignment }));
171
172
  }
172
- toast.success(field === 'ogTitle' || field === 'ogDescription'
173
- ? 'AI suggestion applied to meta tags — social fields inherit unless overridden.'
174
- : 'AI suggestion applied — review before saving.');
173
+ toast.success('AI suggestion applied review before saving.');
175
174
  }
176
175
  else {
177
176
  toast.error('No suggestion was returned.');
@@ -251,14 +250,18 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
251
250
  title: record?.title ?? draftMeta?.seoTitle ?? '',
252
251
  slug: slug || record?.url?.split('/').filter(Boolean).pop() || '',
253
252
  content: contentHtml,
254
- metaTitle: form.metaTitle,
253
+ // Measure the FULL rendered title (site template applied), matching what
254
+ // the page score (`calculatePageSeoScore`) and the server /seo/analysis
255
+ // endpoint measure — otherwise the meta-title-length check gives the
256
+ // editor advice that contradicts the list score for the same field.
257
+ metaTitle: renderedTitle,
255
258
  metaDescription: form.metaDescription,
256
259
  focusKeyphrase: form.focusKeyword,
257
260
  canonical: form.canonicalUrl,
258
261
  ogTitle: form.ogTitle,
259
262
  ogDescription: form.ogDescription,
260
263
  ogImage: record?.ogImage ?? undefined,
261
- }), [record, draftMeta, slug, contentHtml, form]);
264
+ }), [record, draftMeta, slug, contentHtml, form, renderedTitle]);
262
265
  const liveAnalysis = useMemo(() => {
263
266
  if (contentHtml.trim())
264
267
  return analyzeContent(analysisInput);
@@ -283,7 +286,7 @@ export function SeoEditorPane({ entityType, entityId, onClose, onSaved, contentH
283
286
  : form.ogDescription || form.metaDescription || desc;
284
287
  return (_jsxs(_Fragment, { children: [_jsxs(InspectorPaneHeader, { onClose: onClose, closeLabel: "Close SEO editor", children: [_jsx("div", { className: "truncate text-[13.5px] font-semibold text-[var(--txt)]", children: record?.title ?? draftMeta?.seoTitle ?? 'SEO' }), displayUrl && (_jsx("div", { className: "mt-0.5 truncate text-[11.5px] text-[var(--muted)]", children: displayUrl }))] }), _jsx(InspectorPaneBody, { children: loading ? (_jsx("div", { className: "px-5 py-4", children: _jsx(SeoLoading, {}) })) : error ? (_jsx("div", { className: "px-5 py-4", children: _jsx(SeoErrorState, { message: error }) })) : (_jsxs(_Fragment, { children: [isDraft && (_jsx("div", { className: "border-b border-[var(--bdr)] px-5 py-3", children: _jsx("p", { className: "text-[11.5px] text-[var(--sub)]", children: "Save a draft to unlock AI assists trained on your site knowledge and tone. You can still set focus keyword, search appearance, and review live analysis below." }) })), !isDraft && record && (_jsx("div", { className: "border-b border-[var(--bdr)] px-5 py-3", children: (() => {
285
288
  const meta = gradeMeta(record.seoGrade);
286
- return (_jsx("div", { className: `flex items-center gap-2 rounded-[7px] px-3 py-2 text-[12px] ${meta.bg} ${meta.text}`, children: _jsxs("span", { children: ["SEO score: ", _jsx("span", { className: "font-medium", children: record.seoScore }), " (", meta.label, ")", analysis && ` · Live analysis ${analysis.score}`] }) }));
289
+ return (_jsx("div", { className: `flex items-center gap-2 rounded-[7px] px-3 py-2 text-[12px] ${meta.bg} ${meta.text}`, children: _jsxs("span", { children: ["SEO score: ", _jsx("span", { className: "font-medium", children: record.seoScore }), " (", meta.label, ")", analysis && (_jsxs(_Fragment, { children: [' · ', _jsxs("span", { title: "Content quality from the analysis checklist below (readability, keyphrase, links). Separate from the meta-weighted SEO score used to rank this list.", children: ["Content analysis ", analysis.score, "/100"] })] }))] }) }));
287
290
  })() })), _jsxs(SeoAccordion, { children: [_jsxs(SeoAccordionItem, { value: "focus-keyword", title: "Focus keyword", badge: form.focusKeyword ? (_jsx(SeoAccordionBadge, { tone: "neutral", children: form.focusKeyword })) : (_jsx(SeoAccordionBadge, { tone: "warn", children: "Not set" })), children: [_jsx(PaneField, { label: "Focus keyphrase", hint: aiButton('focusKeyword', 'Suggest focus keyphrase'), help: "The main phrase you want this content found for in search and AI answers.", children: _jsx("input", { className: inputCls, value: form.focusKeyword ?? '', onChange: (e) => update({ focusKeyword: e.target.value }), placeholder: "e.g. modern headless cms" }) }), _jsx(PaneField, { label: "Key takeaway", hint: _jsxs("span", { className: "flex items-center gap-2", children: [_jsx(CharCount, { value: form.keyTakeaway ?? '', max: KEY_TAKEAWAY_MAX }), aiButton('keyTakeaway')] }), help: "One or two sentences AI answer engines can quote \u2014 what is this page about?", children: _jsx("textarea", { className: `${inputCls} min-h-16 resize-y`, value: form.keyTakeaway ?? '', onChange: (e) => update({ keyTakeaway: e.target.value }), placeholder: "Summarize the page's core value proposition" }) })] }), _jsxs(SeoAccordionItem, { value: "search-appearance", title: "Search appearance", children: [_jsx("p", { className: "text-[11.5px] text-[var(--sub)]", children: "Determine how this content should look in search results." }), _jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("span", { className: "text-[11.5px] font-medium text-[var(--sub)]", children: "Google preview" }), _jsxs("div", { className: "flex rounded-[7px] border border-[var(--bdr)] p-0.5", children: [_jsxs("button", { type: "button", "aria-pressed": previewDevice === 'mobile', onClick: () => setPreviewDevice('mobile'), className: `inline-flex items-center gap-1 rounded-[5px] px-2 py-1 text-[11px] ${previewDevice === 'mobile' ? 'bg-[var(--acc-l)] text-[var(--acc)]' : 'text-[var(--muted)]'}`, children: [_jsx(Smartphone, { size: 14, "aria-hidden": true }), "Mobile"] }), _jsxs("button", { type: "button", "aria-pressed": previewDevice === 'desktop', onClick: () => setPreviewDevice('desktop'), className: `inline-flex items-center gap-1 rounded-[5px] px-2 py-1 text-[11px] ${previewDevice === 'desktop' ? 'bg-[var(--acc-l)] text-[var(--acc)]' : 'text-[var(--muted)]'}`, children: [_jsx(Monitor, { size: 14, "aria-hidden": true }), "Desktop"] })] })] }), _jsxs("div", { className: `rounded-[7px] border border-[var(--bdr)] bg-[var(--card)] p-3 ${previewDevice === 'mobile' ? 'max-w-[320px]' : ''}`, children: [_jsx("p", { className: "truncate text-[11px] text-[var(--suc)]", children: displayUrl }), _jsx("p", { className: "text-[15px] leading-snug text-[var(--acc)]", children: renderedTitle }), _jsx("p", { className: "line-clamp-2 text-[12px] text-[var(--sub)]", children: desc })] }), _jsx(PaneField, { label: "SEO title", hint: _jsxs("span", { className: "flex items-center gap-2", children: [_jsx(CharCount, { value: form.metaTitle ?? '', max: META_TITLE_MAX }), aiButton('metaTitle')] }), children: _jsx("input", { className: inputCls, value: form.metaTitle ?? '', onChange: (e) => update({ metaTitle: e.target.value }), placeholder: "Page-specific title (%page% in your site template)" }) }), alignmentRow('metaTitle'), _jsx(PaneField, { label: "Slug", help: "URL slug for this content \u2014 edit in page/post settings.", children: _jsx("input", { className: `${inputCls} opacity-80`, value: slug, readOnly: true, disabled: true }) }), _jsx(PaneField, { label: "Meta description", hint: _jsxs("span", { className: "flex items-center gap-2", children: [_jsx(CharCount, { value: form.metaDescription ?? '', max: META_DESC_MAX }), aiButton('metaDescription')] }), children: _jsx("textarea", { className: `${inputCls} min-h-20 resize-y`, value: form.metaDescription ?? '', onChange: (e) => update({ metaDescription: e.target.value }), placeholder: "Short summary shown under the title in search results" }) }), alignmentRow('metaDescription')] }), _jsxs(SeoAccordionItem, { value: "social-appearance", title: "Social appearance", children: [_jsx("p", { className: "text-[11.5px] text-[var(--sub)]", children: "Customize title, description, and image used when sharing on social platforms." }), _jsx("div", { className: "flex rounded-[7px] border border-[var(--bdr)] p-0.5", children: ['facebook', 'twitter'].map((platform) => (_jsx("button", { type: "button", "aria-pressed": socialPlatform === platform, onClick: () => setSocialPlatform(platform), className: `flex-1 rounded-[5px] px-2 py-1.5 text-[11.5px] font-medium capitalize ${socialPlatform === platform ? 'bg-[var(--acc-l)] text-[var(--acc)]' : 'text-[var(--sub)]'}`, children: platform === 'twitter' ? 'X / Twitter' : 'Facebook' }, platform))) }), _jsxs("div", { className: "overflow-hidden rounded-[7px] border border-[var(--bdr)]", children: [record?.ogImage ? (
288
291
  // eslint-disable-next-line @next/next/no-img-element
289
292
  _jsx("img", { src: record.ogImage, alt: "", className: "aspect-[1200/630] w-full bg-[var(--bg)] object-cover" })) : (_jsx("div", { className: "flex aspect-[1200/630] w-full items-center justify-center bg-[var(--bg)] text-[12px] text-[var(--muted)]", children: "No social image \u2014 add a featured or OG image" })), _jsxs("div", { className: "p-2.5", children: [_jsx("p", { className: "truncate text-[10.5px] text-[var(--muted)] uppercase", children: displayUrl.replace(/^https?:\/\//, '').split('/')[0] || 'yoursite.com' }), _jsx("p", { className: "truncate text-[12.5px] font-medium text-[var(--txt)]", children: socialTitle }), _jsx("p", { className: "line-clamp-2 text-[12px] text-[var(--sub)]", children: socialDesc })] })] }), socialPlatform === 'facebook' ? (_jsxs(_Fragment, { children: [_jsx(PaneField, { label: "OG title", hint: aiButton('ogTitle'), children: _jsx("input", { className: inputCls, value: form.ogTitle ?? '', onChange: (e) => update({ ogTitle: e.target.value }), placeholder: form.metaTitle || 'Inherits meta title when empty' }) }), _jsx(PaneField, { label: "OG description", hint: aiButton('ogDescription'), children: _jsx("textarea", { className: `${inputCls} min-h-16 resize-y`, value: form.ogDescription ?? '', onChange: (e) => update({ ogDescription: e.target.value }), placeholder: form.metaDescription || 'Inherits meta description when empty' }) })] })) : (_jsxs(_Fragment, { children: [_jsx(PaneField, { label: "Twitter title", children: _jsx("input", { className: inputCls, value: form.twitterTitle ?? '', onChange: (e) => update({ twitterTitle: e.target.value }), placeholder: form.ogTitle || form.metaTitle || 'Inherits OG/meta title' }) }), _jsx(PaneField, { label: "Twitter description", children: _jsx("textarea", { className: `${inputCls} min-h-16 resize-y`, value: form.twitterDescription ?? '', onChange: (e) => update({ twitterDescription: e.target.value }), placeholder: form.ogDescription ||
@@ -1 +1 @@
1
- {"version":3,"file":"SeoEditorPane.js","sourceRoot":"","sources":["../../../src/components/seo/SeoEditorPane.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SeoEditorPane.js","sourceRoot":"","sources":["../../../src/components/seo/SeoEditorPane.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actuate-media/cms-admin",
3
- "version": "0.76.1",
3
+ "version": "0.76.2",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -96,7 +96,7 @@
96
96
  "tailwindcss": "^4.0.0",
97
97
  "typescript": "^5.7.0",
98
98
  "vitest": "^4.1.0",
99
- "@actuate-media/cms-core": "0.91.0",
99
+ "@actuate-media/cms-core": "0.92.0",
100
100
  "@actuate-media/component-blocks": "0.2.2"
101
101
  },
102
102
  "scripts": {
@@ -0,0 +1,112 @@
1
+ // @vitest-environment happy-dom
2
+ import { beforeEach, describe, expect, it, vi } from 'vitest'
3
+ import { fireEvent, render, screen, waitFor, within } from '@testing-library/react'
4
+
5
+ /**
6
+ * Focused SeoEditorPane behaviours:
7
+ * - The header labels the two numbers unambiguously ("SEO score" vs "Content
8
+ * analysis N/100") instead of the ambiguous "· Live analysis N".
9
+ * - Generating an OG title/description writes into the OG field itself and
10
+ * never overwrites the (search) meta title/description — a previously
11
+ * destructive, undo-less action.
12
+ */
13
+
14
+ const RECORD = {
15
+ id: 'seo1',
16
+ entityType: 'page' as const,
17
+ entityId: 'p1',
18
+ title: 'Home',
19
+ url: 'https://example.com/',
20
+ canonicalUrl: null,
21
+ metaTitle: 'Home — Example',
22
+ metaTitlePage: 'Home',
23
+ siteName: 'Example',
24
+ titleTemplate: '%page% — %site%',
25
+ metaDescription: 'Welcome to Example.',
26
+ focusKeyword: null,
27
+ keyTakeaway: null,
28
+ ogTitle: null,
29
+ ogDescription: null,
30
+ ogImageId: null,
31
+ ogImage: null,
32
+ twitterTitle: null,
33
+ twitterDescription: null,
34
+ twitterImageId: null,
35
+ noindex: false,
36
+ nofollow: false,
37
+ structuredDataType: 'WebPage',
38
+ structuredData: null,
39
+ llmsInclude: 'AUTO' as const,
40
+ llmsDescription: null,
41
+ llmsSection: null,
42
+ llmsOptional: false,
43
+ seoScore: 82,
44
+ seoGrade: 'good' as const,
45
+ updatedAt: '2026-06-01T00:00:00Z',
46
+ }
47
+
48
+ const fetchSeoContentRecord = vi.fn(async () => RECORD)
49
+ const generateSeoField = vi.fn(async (_field: string, _ctx: unknown) => ({
50
+ text: 'Generated OG Title',
51
+ }))
52
+
53
+ vi.mock('@actuate-media/cms-core/client', async (importOriginal) => {
54
+ const actual = await importOriginal<typeof import('@actuate-media/cms-core/client')>()
55
+ return { ...actual }
56
+ })
57
+
58
+ vi.mock('../../lib/seo-service.js', () => ({
59
+ fetchSeoContentRecord: () => fetchSeoContentRecord(),
60
+ fetchDocumentSeoAnalysis: vi.fn(async () => ({ score: 72, checks: [] })),
61
+ updateSeoFields: vi.fn(async () => ({})),
62
+ generateSeoField: (field: string, ctx: unknown) => generateSeoField(field, ctx),
63
+ fetchLinkSuggestions: vi.fn(async () => ({ data: { suggestions: [] } })),
64
+ SEO_SCHEMA_TYPES: ['Article', 'WebPage'],
65
+ }))
66
+
67
+ vi.mock('../../lib/brand-voice-client.js', () => ({
68
+ fixBrandVoiceContent: vi.fn(async () => ({ ok: false })),
69
+ brandAlignmentTone: () => 'text-success',
70
+ brandAlignmentLabel: () => 'On brand',
71
+ }))
72
+
73
+ vi.mock('sonner', () => ({ toast: { success: vi.fn(), error: vi.fn(), loading: vi.fn() } }))
74
+
75
+ const { SeoEditorPane } = await import('../../components/seo/SeoEditorPane.js')
76
+
77
+ beforeEach(() => {
78
+ fetchSeoContentRecord.mockClear()
79
+ generateSeoField.mockClear()
80
+ })
81
+
82
+ describe('SeoEditorPane header', () => {
83
+ it('labels the analysis number as "Content analysis N/100", not "Live analysis"', async () => {
84
+ render(<SeoEditorPane entityType="page" entityId="p1" onClose={() => {}} />)
85
+ // Score header renders once the record loads.
86
+ expect(await screen.findByText(/SEO score:/)).toBeTruthy()
87
+ await waitFor(() => expect(screen.getByText(/Content analysis 72\/100/)).toBeTruthy())
88
+ expect(screen.queryByText(/Live analysis/)).toBeNull()
89
+ })
90
+ })
91
+
92
+ describe('SeoEditorPane OG generation', () => {
93
+ it('writes an AI OG title into the OG field and leaves the meta title intact', async () => {
94
+ render(<SeoEditorPane entityType="page" entityId="p1" onClose={() => {}} />)
95
+ // Wait for the record → the SEO (meta) title field shows the page portion.
96
+ expect(await screen.findByDisplayValue('Home')).toBeTruthy()
97
+
98
+ // Expand the collapsed "Social appearance" accordion to reveal OG fields.
99
+ fireEvent.click(screen.getByRole('button', { name: /Social appearance/ }))
100
+
101
+ // Click the AI Generate button that belongs to the "OG title" field.
102
+ const ogLabel = await screen.findByText('OG title')
103
+ const ogFieldHeader = ogLabel.closest('div') as HTMLElement
104
+ fireEvent.click(within(ogFieldHeader).getByRole('button', { name: /AI Generate/ }))
105
+
106
+ await waitFor(() => expect(generateSeoField).toHaveBeenCalledWith('ogTitle', expect.anything()))
107
+ // The suggestion lands in the OG field...
108
+ await waitFor(() => expect(screen.getByDisplayValue('Generated OG Title')).toBeTruthy())
109
+ // ...and the search meta title is untouched (was NOT overwritten/cleared).
110
+ expect(screen.getByDisplayValue('Home')).toBeTruthy()
111
+ })
112
+ })
@@ -269,20 +269,18 @@ export function SeoEditorPane({
269
269
  return
270
270
  }
271
271
  if (result.text) {
272
- const targetField =
273
- field === 'ogTitle' ? 'metaTitle' : field === 'ogDescription' ? 'metaDescription' : field
274
- const patch: Partial<SeoFieldPayload> = { [targetField]: result.text }
275
- if (field === 'ogTitle') patch.ogTitle = ''
276
- if (field === 'ogDescription') patch.ogDescription = ''
272
+ // Write the suggestion into the field the editor actually asked to
273
+ // generate. Previously an OG title/description generate was remapped
274
+ // onto metaTitle/metaDescription (and the OG field cleared), silently
275
+ // destroying a hand-written search title with no undo. Social fields
276
+ // still inherit meta at render time when left blank, so filling the OG
277
+ // field explicitly is non-destructive and matches the button's intent.
278
+ const patch: Partial<SeoFieldPayload> = { [field]: result.text }
277
279
  update(patch)
278
280
  if (result.brandAlignment) {
279
- setAiAlignments((prev) => ({ ...prev, [targetField]: result.brandAlignment }))
281
+ setAiAlignments((prev) => ({ ...prev, [field]: result.brandAlignment }))
280
282
  }
281
- toast.success(
282
- field === 'ogTitle' || field === 'ogDescription'
283
- ? 'AI suggestion applied to meta tags — social fields inherit unless overridden.'
284
- : 'AI suggestion applied — review before saving.',
285
- )
283
+ toast.success('AI suggestion applied — review before saving.')
286
284
  } else {
287
285
  toast.error('No suggestion was returned.')
288
286
  }
@@ -381,7 +379,11 @@ export function SeoEditorPane({
381
379
  title: record?.title ?? draftMeta?.seoTitle ?? '',
382
380
  slug: slug || record?.url?.split('/').filter(Boolean).pop() || '',
383
381
  content: contentHtml,
384
- metaTitle: form.metaTitle,
382
+ // Measure the FULL rendered title (site template applied), matching what
383
+ // the page score (`calculatePageSeoScore`) and the server /seo/analysis
384
+ // endpoint measure — otherwise the meta-title-length check gives the
385
+ // editor advice that contradicts the list score for the same field.
386
+ metaTitle: renderedTitle,
385
387
  metaDescription: form.metaDescription,
386
388
  focusKeyphrase: form.focusKeyword,
387
389
  canonical: form.canonicalUrl,
@@ -389,7 +391,7 @@ export function SeoEditorPane({
389
391
  ogDescription: form.ogDescription,
390
392
  ogImage: record?.ogImage ?? undefined,
391
393
  }),
392
- [record, draftMeta, slug, contentHtml, form],
394
+ [record, draftMeta, slug, contentHtml, form, renderedTitle],
393
395
  )
394
396
 
395
397
  const liveAnalysis = useMemo(() => {
@@ -474,7 +476,15 @@ export function SeoEditorPane({
474
476
  >
475
477
  <span>
476
478
  SEO score: <span className="font-medium">{record.seoScore}</span> (
477
- {meta.label}){analysis && ` · Live analysis ${analysis.score}`}
479
+ {meta.label})
480
+ {analysis && (
481
+ <>
482
+ {' · '}
483
+ <span title="Content quality from the analysis checklist below (readability, keyphrase, links). Separate from the meta-weighted SEO score used to rank this list.">
484
+ Content analysis {analysis.score}/100
485
+ </span>
486
+ </>
487
+ )}
478
488
  </span>
479
489
  </div>
480
490
  )