@prenta/admin 1.15.0 → 1.17.0

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.
Files changed (90) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/__tests__/components/faq-proposal-preview.render.test.d.ts +2 -0
  3. package/dist/__tests__/components/faq-proposal-preview.render.test.d.ts.map +1 -0
  4. package/dist/__tests__/components/faq-proposal-preview.render.test.js +97 -0
  5. package/dist/__tests__/components/faq-proposal-preview.render.test.js.map +1 -0
  6. package/dist/__tests__/components/seo-issue-fix-panel.render.test.js +37 -11
  7. package/dist/__tests__/components/seo-issue-fix-panel.render.test.js.map +1 -1
  8. package/dist/__tests__/lib/seo-service-errors.test.js +3 -0
  9. package/dist/__tests__/lib/seo-service-errors.test.js.map +1 -1
  10. package/dist/__tests__/lib/seo-service-geo.test.d.ts +2 -0
  11. package/dist/__tests__/lib/seo-service-geo.test.d.ts.map +1 -0
  12. package/dist/__tests__/lib/seo-service-geo.test.js +103 -0
  13. package/dist/__tests__/lib/seo-service-geo.test.js.map +1 -0
  14. package/dist/__tests__/lib/seo-service-proposals.test.js +24 -0
  15. package/dist/__tests__/lib/seo-service-proposals.test.js.map +1 -1
  16. package/dist/__tests__/router/seo-tab-for-path.test.js +4 -0
  17. package/dist/__tests__/router/seo-tab-for-path.test.js.map +1 -1
  18. package/dist/__tests__/views/seo-ai-visibility.render.test.d.ts +2 -0
  19. package/dist/__tests__/views/seo-ai-visibility.render.test.d.ts.map +1 -0
  20. package/dist/__tests__/views/seo-ai-visibility.render.test.js +244 -0
  21. package/dist/__tests__/views/seo-ai-visibility.render.test.js.map +1 -0
  22. package/dist/__tests__/views/seo-geo-settings-card.render.test.d.ts +2 -0
  23. package/dist/__tests__/views/seo-geo-settings-card.render.test.d.ts.map +1 -0
  24. package/dist/__tests__/views/seo-geo-settings-card.render.test.js +227 -0
  25. package/dist/__tests__/views/seo-geo-settings-card.render.test.js.map +1 -0
  26. package/dist/__tests__/views/seo-proposals-tab.render.test.js +277 -0
  27. package/dist/__tests__/views/seo-proposals-tab.render.test.js.map +1 -1
  28. package/dist/__tests__/views/seo-settings.render.test.js +16 -4
  29. package/dist/__tests__/views/seo-settings.render.test.js.map +1 -1
  30. package/dist/__tests__/views/seo-technical-tab.render.test.js +13 -0
  31. package/dist/__tests__/views/seo-technical-tab.render.test.js.map +1 -1
  32. package/dist/components/seo/FaqProposalPreview.d.ts +39 -0
  33. package/dist/components/seo/FaqProposalPreview.d.ts.map +1 -0
  34. package/dist/components/seo/FaqProposalPreview.js +62 -0
  35. package/dist/components/seo/FaqProposalPreview.js.map +1 -0
  36. package/dist/components/seo/SeoIssueFixPanel.d.ts.map +1 -1
  37. package/dist/components/seo/SeoIssueFixPanel.js +7 -2
  38. package/dist/components/seo/SeoIssueFixPanel.js.map +1 -1
  39. package/dist/lib/seo-service.d.ts +155 -2
  40. package/dist/lib/seo-service.d.ts.map +1 -1
  41. package/dist/lib/seo-service.js +42 -2
  42. package/dist/lib/seo-service.js.map +1 -1
  43. package/dist/prenta-admin.css +1 -1
  44. package/dist/views/SEO.d.ts +5 -1
  45. package/dist/views/SEO.d.ts.map +1 -1
  46. package/dist/views/SEO.js +12 -7
  47. package/dist/views/SEO.js.map +1 -1
  48. package/dist/views/seo/AiVisibilityTab.d.ts +4 -0
  49. package/dist/views/seo/AiVisibilityTab.d.ts.map +1 -0
  50. package/dist/views/seo/AiVisibilityTab.js +165 -0
  51. package/dist/views/seo/AiVisibilityTab.js.map +1 -0
  52. package/dist/views/seo/ProposalsTab.d.ts.map +1 -1
  53. package/dist/views/seo/ProposalsTab.js +160 -7
  54. package/dist/views/seo/ProposalsTab.js.map +1 -1
  55. package/dist/views/seo/TechnicalTab.d.ts +3 -1
  56. package/dist/views/seo/TechnicalTab.d.ts.map +1 -1
  57. package/dist/views/seo/TechnicalTab.js +4 -4
  58. package/dist/views/seo/TechnicalTab.js.map +1 -1
  59. package/dist/views/settings/SeoAutopilotCard.d.ts.map +1 -1
  60. package/dist/views/settings/SeoAutopilotCard.js +6 -0
  61. package/dist/views/settings/SeoAutopilotCard.js.map +1 -1
  62. package/dist/views/settings/SeoGeoSettingsCard.d.ts +12 -0
  63. package/dist/views/settings/SeoGeoSettingsCard.d.ts.map +1 -0
  64. package/dist/views/settings/SeoGeoSettingsCard.js +178 -0
  65. package/dist/views/settings/SeoGeoSettingsCard.js.map +1 -0
  66. package/dist/views/settings/SeoSettingsTab.d.ts.map +1 -1
  67. package/dist/views/settings/SeoSettingsTab.js +2 -1
  68. package/dist/views/settings/SeoSettingsTab.js.map +1 -1
  69. package/package.json +3 -3
  70. package/src/__tests__/components/faq-proposal-preview.render.test.tsx +137 -0
  71. package/src/__tests__/components/seo-issue-fix-panel.render.test.tsx +42 -11
  72. package/src/__tests__/lib/seo-service-errors.test.ts +4 -0
  73. package/src/__tests__/lib/seo-service-geo.test.ts +118 -0
  74. package/src/__tests__/lib/seo-service-proposals.test.ts +30 -0
  75. package/src/__tests__/router/seo-tab-for-path.test.ts +5 -0
  76. package/src/__tests__/views/seo-ai-visibility.render.test.tsx +279 -0
  77. package/src/__tests__/views/seo-geo-settings-card.render.test.tsx +253 -0
  78. package/src/__tests__/views/seo-proposals-tab.render.test.tsx +358 -0
  79. package/src/__tests__/views/seo-settings.render.test.tsx +28 -7
  80. package/src/__tests__/views/seo-technical-tab.render.test.tsx +15 -0
  81. package/src/components/seo/FaqProposalPreview.tsx +134 -0
  82. package/src/components/seo/SeoIssueFixPanel.tsx +7 -2
  83. package/src/lib/seo-service.ts +162 -1
  84. package/src/views/SEO.tsx +15 -6
  85. package/src/views/seo/AiVisibilityTab.tsx +616 -0
  86. package/src/views/seo/ProposalsTab.tsx +279 -13
  87. package/src/views/seo/TechnicalTab.tsx +27 -8
  88. package/src/views/settings/SeoAutopilotCard.tsx +6 -0
  89. package/src/views/settings/SeoGeoSettingsCard.tsx +310 -0
  90. package/src/views/settings/SeoSettingsTab.tsx +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SeoSettingsTab.js","sourceRoot":"","sources":["../../../src/views/settings/SeoSettingsTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SeoSettingsTab.js","sourceRoot":"","sources":["../../../src/views/settings/SeoSettingsTab.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prenta/admin",
3
- "version": "1.15.0",
3
+ "version": "1.17.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -99,7 +99,7 @@
99
99
  "typescript": "^5.7.0",
100
100
  "vitest": "^4.1.0",
101
101
  "@prenta/component-blocks": "0.3.1",
102
- "@prenta/core": "5.7.0",
102
+ "@prenta/core": "5.10.0",
103
103
  "@prenta/plugin-ai": "1.0.0",
104
104
  "@prenta/plugin-blocks": "0.2.0",
105
105
  "@prenta/plugin-commerce": "0.2.1",
@@ -107,7 +107,7 @@
107
107
  "@prenta/plugin-media": "0.2.0",
108
108
  "@prenta/plugin-navigation": "0.3.0",
109
109
  "@prenta/plugin-seo": "0.1.2",
110
- "@prenta/sections-react": "0.17.36"
110
+ "@prenta/sections-react": "0.17.40"
111
111
  },
112
112
  "scripts": {
113
113
  "build": "tsc --project tsconfig.json && npx @tailwindcss/cli -i src/styles/build-input.css -o dist/prenta-admin.css --minify",
@@ -0,0 +1,137 @@
1
+ // @vitest-environment happy-dom
2
+ import { describe, expect, it, vi } from 'vitest'
3
+ import { fireEvent, render, screen } from '@testing-library/react'
4
+ import {
5
+ FAQ_MIN_SELECTED,
6
+ FaqProposalPreview,
7
+ faqDraftBlocker,
8
+ faqSignalLine,
9
+ type FaqProposalPreviewProps,
10
+ } from '../../components/seo/FaqProposalPreview.js'
11
+
12
+ const items = [
13
+ {
14
+ question: 'How long does it take?',
15
+ answer: 'Three to five days.',
16
+ sourceQuote: 'take three to five days',
17
+ },
18
+ { question: 'Can I finance?', answer: 'Yes, zero down.', sourceQuote: 'zero down' },
19
+ { question: 'Warranty?', answer: '25 years.', sourceQuote: '25-year' },
20
+ ]
21
+ const signals = {
22
+ geo: { referralVisits: 14, retrievalHits: 0, engines: ['chatgpt'] },
23
+ queries: [{ query: 'how long does it take', impressions: 120, clicks: 3 }],
24
+ }
25
+
26
+ function setup(selected = [true, true, true], over: Partial<FaqProposalPreviewProps> = {}) {
27
+ const onToggle = vi.fn()
28
+ const onHeadingChange = vi.fn()
29
+ render(
30
+ <FaqProposalPreview
31
+ heading="Questions"
32
+ items={items}
33
+ signals={signals}
34
+ selected={selected}
35
+ onToggle={onToggle}
36
+ headingValue="Questions"
37
+ onHeadingChange={onHeadingChange}
38
+ {...over}
39
+ />,
40
+ )
41
+ return { onToggle, onHeadingChange }
42
+ }
43
+
44
+ describe('FaqProposalPreview', () => {
45
+ it('renders every Q&A with its source quote and a labelled checkbox', () => {
46
+ setup()
47
+ expect(screen.getAllByRole('checkbox')).toHaveLength(3)
48
+ expect(screen.getByRole('checkbox', { name: /How long does it take\?/ })).toHaveProperty(
49
+ 'checked',
50
+ true,
51
+ )
52
+ expect(screen.getByText('Three to five days.')).toBeTruthy()
53
+ expect(screen.getByText(/take three to five days/)).toBeTruthy()
54
+ })
55
+
56
+ it('shows the signal line', () => {
57
+ setup()
58
+ expect(screen.getByText(/Cited by chatgpt 14×/)).toBeTruthy()
59
+ expect(screen.getByText(/"how long does it take"/)).toBeTruthy()
60
+ })
61
+
62
+ it('calls onToggle with the index and onHeadingChange with the value', () => {
63
+ const { onToggle, onHeadingChange } = setup()
64
+ fireEvent.click(screen.getByRole('checkbox', { name: /Warranty\?/ }))
65
+ expect(onToggle).toHaveBeenCalledWith(2)
66
+ fireEvent.change(screen.getByLabelText('Section heading'), {
67
+ target: { value: 'Top questions' },
68
+ })
69
+ expect(onHeadingChange).toHaveBeenCalledWith('Top questions')
70
+ })
71
+
72
+ it('warns when fewer than two items are selected', () => {
73
+ setup([true, false, false])
74
+ expect(screen.getByRole('status').textContent).toBe(
75
+ `Select at least ${FAQ_MIN_SELECTED} questions to approve (1 selected).`,
76
+ )
77
+ })
78
+
79
+ it('reports how many questions will be added when the draft is approvable', () => {
80
+ setup([true, true, false])
81
+ expect(screen.getByRole('status').textContent).toBe('2 of 3 questions will be added.')
82
+ })
83
+
84
+ it('treats a blank heading as "use the drafted heading", not a blocker', () => {
85
+ setup([true, true, true], { headingValue: ' ' })
86
+ expect(screen.getByRole('status').textContent).toBe('3 of 3 questions will be added.')
87
+ expect(screen.getByLabelText('Section heading')).toHaveProperty('placeholder', 'Questions')
88
+ })
89
+
90
+ it('renders no source line for an item without a quote', () => {
91
+ setup([true, true], {
92
+ items: [
93
+ { question: 'Q1?', answer: 'A1.', sourceQuote: '' },
94
+ { question: 'Q2?', answer: 'A2.' },
95
+ ],
96
+ })
97
+ expect(screen.queryByText(/^Source:/)).toBeNull()
98
+ expect(screen.queryByText(/“”/)).toBeNull()
99
+ })
100
+
101
+ it('omits the signal line when there are no signals', () => {
102
+ setup([true, true, true], { signals: null })
103
+ expect(screen.queryByText(/Cited by|Fetched by|asked/)).toBeNull()
104
+ })
105
+
106
+ it('disables the heading field and every checkbox when disabled', () => {
107
+ setup([true, true, true], { disabled: true })
108
+ expect(screen.getByLabelText('Section heading')).toHaveProperty('disabled', true)
109
+ for (const box of screen.getAllByRole('checkbox')) expect(box).toHaveProperty('disabled', true)
110
+ })
111
+ })
112
+
113
+ describe('faqSignalLine', () => {
114
+ it('prefers referral citations, then retrieval fetches, then the top query', () => {
115
+ expect(faqSignalLine(signals)).toBe(
116
+ 'Cited by chatgpt 14× in 28 days · asked "how long does it take" 120× on Google',
117
+ )
118
+ expect(
119
+ faqSignalLine({ geo: { referralVisits: 0, retrievalHits: 40, engines: [] }, queries: [] }),
120
+ ).toBe('Fetched by AI engines 40× in 28 days')
121
+ expect(
122
+ faqSignalLine({ geo: null, queries: [{ query: 'why', impressions: 9, clicks: 0 }] }),
123
+ ).toBe('asked "why" 9× on Google')
124
+ expect(faqSignalLine({ geo: null, queries: [] })).toBeNull()
125
+ expect(faqSignalLine(null)).toBeNull()
126
+ })
127
+ })
128
+
129
+ describe('faqDraftBlocker', () => {
130
+ it('blocks only on too few selected items', () => {
131
+ expect(faqDraftBlocker([true, false, false])).toBe(
132
+ `Select at least ${FAQ_MIN_SELECTED} questions to approve (1 selected).`,
133
+ )
134
+ expect(faqDraftBlocker([false, false, false])).toMatch(/\(0 selected\)/)
135
+ expect(faqDraftBlocker([true, true, false])).toBeNull()
136
+ })
137
+ })
@@ -27,21 +27,45 @@ const orphanIssue: SeoIssue = {
27
27
  resolvedAt: null,
28
28
  }
29
29
 
30
+ const faqSchemaIssue: SeoIssue = {
31
+ ...orphanIssue,
32
+ id: 'iss-faq-schema',
33
+ entityTitle: 'Pricing',
34
+ url: '/pricing',
35
+ category: 'schema',
36
+ type: 'faq-schema-missing',
37
+ title: 'FAQ section without FAQPage schema',
38
+ fixActionType: 'edit-schema',
39
+ }
40
+
41
+ const fetchSuggestionMock = vi.fn(async (issueId: string) => ({
42
+ suggestion:
43
+ issueId === faqSchemaIssue.id
44
+ ? {
45
+ autoFixable: true,
46
+ source: 'deterministic',
47
+ // Metadata/schema fixes carry no strategy — only redirects do.
48
+ fingerprint: 'fp-faq',
49
+ patch: { structuredData: {} },
50
+ changes: [],
51
+ justification: 'Adds a FAQPage node.',
52
+ }
53
+ : {
54
+ autoFixable: true,
55
+ source: 'deterministic',
56
+ fixStrategy: 'insert-link',
57
+ fingerprint: 'fp-insert',
58
+ patch: {},
59
+ changes: [],
60
+ justification: 'Add an inbound link from a related page.',
61
+ },
62
+ }))
63
+
30
64
  vi.mock('../../lib/seo-service.js', async (importOriginal) => {
31
65
  const actual = await importOriginal<typeof import('../../lib/seo-service.js')>()
32
66
  return {
33
67
  ...actual,
34
- fetchSeoIssueFixSuggestion: vi.fn(async () => ({
35
- suggestion: {
36
- autoFixable: true,
37
- source: 'deterministic',
38
- fixStrategy: 'insert-link',
39
- fingerprint: 'fp-insert',
40
- patch: {},
41
- changes: [],
42
- justification: 'Add an inbound link from a related page.',
43
- },
44
- })),
68
+ fetchSeoIssueFixSuggestion: (issueId: string) => fetchSuggestionMock(issueId),
45
69
  applySeoIssueFix: vi.fn(async () => ({})),
46
70
  fetchSeoContentBrief: vi.fn(async () => ({})),
47
71
  fetchSeoContentResearch: vi.fn(async () => ({})),
@@ -62,4 +86,11 @@ describe('SeoIssueFixPanel insert-link copy', () => {
62
86
  expect(await screen.findByRole('button', { name: 'Approve link' })).toBeTruthy()
63
87
  expect(screen.queryByRole('button', { name: 'Approve redirect' })).toBeNull()
64
88
  })
89
+
90
+ it('labels a strategy-less schema fix (faq-schema-missing) Approve fix, not Approve redirect', async () => {
91
+ render(<SeoIssueFixPanel issue={faqSchemaIssue} expanded />)
92
+
93
+ expect(await screen.findByRole('button', { name: 'Approve fix' })).toBeTruthy()
94
+ expect(screen.queryByRole('button', { name: 'Approve redirect' })).toBeNull()
95
+ })
65
96
  })
@@ -220,6 +220,10 @@ describe('inline SEO fix issue types', () => {
220
220
  it('treats orphan-page as an inline Approve issue', () => {
221
221
  expect(isInlineSeoFixIssue('orphan-page')).toBe(true)
222
222
  })
223
+
224
+ it('treats faq-schema-missing as an inline Approve issue (mirrors core DETERMINISTIC_FIX_TYPES)', () => {
225
+ expect(isInlineSeoFixIssue('faq-schema-missing')).toBe(true)
226
+ })
223
227
  })
224
228
 
225
229
  describe('SEO audit mutation contract', () => {
@@ -0,0 +1,118 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest'
2
+ import type { SeoGeoReport } from '../../lib/seo-service.js'
3
+
4
+ /**
5
+ * Wire-level tests for the AI visibility (GEO measurement) service wrapper.
6
+ * The render test replaces `seo-service` wholesale, so the URL and the
7
+ * envelope handling are pinned here against a mocked `cmsApi`.
8
+ */
9
+ const cmsApi = vi.fn()
10
+ vi.mock('../../lib/api.js', () => ({ cmsApi: (...args: unknown[]) => cmsApi(...args) }))
11
+
12
+ const svc = await import('../../lib/seo-service.js')
13
+
14
+ const REPORT: SeoGeoReport = {
15
+ enabled: true,
16
+ window: { from: '2026-09-04', to: '2026-09-10', days: 7 },
17
+ firstSeenAt: null,
18
+ crawl: { total: { hits: 0, prevHits: null }, series: [], bots: [], topPaths: [], otherHits: 0 },
19
+ referrals: { total: { visits: 0, prevVisits: null }, engines: [], topPaths: [], otherVisits: 0 },
20
+ }
21
+
22
+ beforeEach(() => {
23
+ // Block body on purpose: `mockReset()` returns the mock, and vitest would
24
+ // run a returned function as after-test cleanup.
25
+ cmsApi.mockReset()
26
+ })
27
+
28
+ describe('fetchSeoGeo', () => {
29
+ it('GETs /seo/geo?days=N and unwraps the body', async () => {
30
+ cmsApi.mockResolvedValueOnce({ status: 200, data: REPORT })
31
+ await expect(svc.fetchSeoGeo(7)).resolves.toEqual(REPORT)
32
+ expect(cmsApi).toHaveBeenLastCalledWith('/seo/geo?days=7')
33
+
34
+ cmsApi.mockResolvedValueOnce({
35
+ status: 200,
36
+ data: { ...REPORT, window: { ...REPORT.window, days: 28 } },
37
+ })
38
+ const r = await svc.fetchSeoGeo(28)
39
+ expect(cmsApi).toHaveBeenLastCalledWith('/seo/geo?days=28')
40
+ expect(r.window.days).toBe(28)
41
+ })
42
+
43
+ it('throws on error envelopes', async () => {
44
+ cmsApi.mockResolvedValueOnce({ error: 'nope', status: 500 })
45
+ await expect(svc.fetchSeoGeo(28)).rejects.toThrow('nope')
46
+ })
47
+
48
+ it('rejects a malformed body instead of handing it to the UI', async () => {
49
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { enabled: 'yes' } })
50
+ await expect(svc.fetchSeoGeo(90)).rejects.toThrow('Unexpected AI visibility response')
51
+ cmsApi.mockResolvedValueOnce({ status: 200 })
52
+ await expect(svc.fetchSeoGeo(90)).rejects.toThrow('Unexpected AI visibility response')
53
+ })
54
+
55
+ it('rejects a body from an older server that lacks crawl.total', async () => {
56
+ const crawlWithoutTotal: Partial<SeoGeoReport['crawl']> = { ...REPORT.crawl }
57
+ delete crawlWithoutTotal.total
58
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { ...REPORT, crawl: crawlWithoutTotal } })
59
+ await expect(svc.fetchSeoGeo(28)).rejects.toThrow('Unexpected AI visibility response')
60
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { ...REPORT, crawl: undefined } })
61
+ await expect(svc.fetchSeoGeo(28)).rejects.toThrow('Unexpected AI visibility response')
62
+ })
63
+ })
64
+
65
+ // Mirrors `GET|PUT /seo/geo-settings` in `cms-core/src/api/routes/seo-geo.ts`:
66
+ // GET answers `{ data: { enabled, retentionDays } }`; PUT takes a sparse
67
+ // `{ enabled?, retentionDays? }` and answers `{ data: { ok: true } }` or a
68
+ // 400 `{ error }` envelope.
69
+ describe('fetchGeoSettings', () => {
70
+ it('GETs /seo/geo-settings and unwraps the body', async () => {
71
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { enabled: false, retentionDays: 30 } })
72
+ await expect(svc.fetchGeoSettings()).resolves.toEqual({ enabled: false, retentionDays: 30 })
73
+ expect(cmsApi).toHaveBeenCalledTimes(1)
74
+ expect(cmsApi).toHaveBeenLastCalledWith('/seo/geo-settings')
75
+ })
76
+
77
+ it('returns null on an error envelope (404 / GEO tables not migrated)', async () => {
78
+ cmsApi.mockResolvedValueOnce({ error: 'Not found', status: 404 })
79
+ await expect(svc.fetchGeoSettings()).resolves.toBeNull()
80
+ cmsApi.mockResolvedValueOnce({ error: 'Request failed (500)', status: 500 })
81
+ await expect(svc.fetchGeoSettings()).resolves.toBeNull()
82
+ })
83
+
84
+ it('returns null on a malformed body instead of handing it to the card', async () => {
85
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { enabled: 'yes', retentionDays: 90 } })
86
+ await expect(svc.fetchGeoSettings()).resolves.toBeNull()
87
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { enabled: true, retentionDays: '90' } })
88
+ await expect(svc.fetchGeoSettings()).resolves.toBeNull()
89
+ cmsApi.mockResolvedValueOnce({ status: 200 })
90
+ await expect(svc.fetchGeoSettings()).resolves.toBeNull()
91
+ })
92
+ })
93
+
94
+ describe('updateGeoSettings', () => {
95
+ it('PUTs the sparse patch as JSON and reports ok', async () => {
96
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { ok: true } })
97
+ await expect(svc.updateGeoSettings({ enabled: false })).resolves.toEqual({ ok: true })
98
+ expect(cmsApi).toHaveBeenLastCalledWith('/seo/geo-settings', {
99
+ method: 'PUT',
100
+ body: JSON.stringify({ enabled: false }),
101
+ })
102
+
103
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { ok: true } })
104
+ await svc.updateGeoSettings({ retentionDays: 30 })
105
+ expect(cmsApi).toHaveBeenLastCalledWith('/seo/geo-settings', {
106
+ method: 'PUT',
107
+ body: JSON.stringify({ retentionDays: 30 }),
108
+ })
109
+ })
110
+
111
+ it('surfaces the validation error verbatim', async () => {
112
+ cmsApi.mockResolvedValueOnce({ error: 'retentionDays must be an integer', status: 400 })
113
+ await expect(svc.updateGeoSettings({ retentionDays: 1.5 })).resolves.toEqual({
114
+ ok: false,
115
+ error: 'retentionDays must be an integer',
116
+ })
117
+ })
118
+ })
@@ -100,6 +100,36 @@ describe('proposal service helpers', () => {
100
100
  })
101
101
  })
102
102
 
103
+ it('applySeoIssueFix sends includeItems and headingOverride only when given', async () => {
104
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { issue: { id: 'i1' } } })
105
+ await expect(
106
+ svc.applySeoIssueFix('i1', 'fp', { includeItems: [0, 2], headingOverride: 'H' }),
107
+ ).resolves.toEqual({ issue: { id: 'i1' } })
108
+ expect(cmsApi).toHaveBeenLastCalledWith('/seo/issues/i1/apply-fix', {
109
+ method: 'POST',
110
+ body: JSON.stringify({ fingerprint: 'fp', includeItems: [0, 2], headingOverride: 'H' }),
111
+ })
112
+
113
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { issue: { id: 'i1' } } })
114
+ await svc.applySeoIssueFix('i1', 'fp')
115
+ expect(cmsApi).toHaveBeenLastCalledWith('/seo/issues/i1/apply-fix', {
116
+ method: 'POST',
117
+ body: JSON.stringify({ fingerprint: 'fp' }),
118
+ })
119
+
120
+ cmsApi.mockResolvedValueOnce({ status: 200, data: { issue: { id: 'i1' } } })
121
+ await svc.applySeoIssueFix('i1', 'fp', {})
122
+ expect(cmsApi).toHaveBeenLastCalledWith('/seo/issues/i1/apply-fix', {
123
+ method: 'POST',
124
+ body: JSON.stringify({ fingerprint: 'fp' }),
125
+ })
126
+
127
+ cmsApi.mockResolvedValueOnce({ status: 409, error: 'Fix suggestion is stale.' })
128
+ await expect(svc.applySeoIssueFix('i1', 'fp', { includeItems: [0, 1] })).resolves.toEqual({
129
+ error: 'Fix suggestion is stale.',
130
+ })
131
+ })
132
+
103
133
  it('dismissSeoIssueFix POSTs to the encoded issue path', async () => {
104
134
  cmsApi.mockResolvedValueOnce({ status: 200, data: { dismissed: true } })
105
135
  await expect(svc.dismissSeoIssueFix('a/b')).resolves.toEqual({})
@@ -21,6 +21,11 @@ describe('seoTabForPath', () => {
21
21
  expect(seoTabForPath('/seo/proposals')).toBe('proposals')
22
22
  })
23
23
 
24
+ it('routes the AI visibility deep link (Technical → "View trends") to its tab', () => {
25
+ expect(SEO_DEEP_PATHS).toContain('/seo/ai-visibility')
26
+ expect(seoTabForPath('/seo/ai-visibility')).toBe('ai-visibility')
27
+ })
28
+
24
29
  it('returns null for non-SEO paths so they fall through', () => {
25
30
  expect(seoTabForPath('/dashboard')).toBeNull()
26
31
  expect(seoTabForPath('/media')).toBeNull()