From 0a0ae4e054108c2f8e2cca36d34dc4093f4f1ee2 Mon Sep 17 00:00:00 2001 From: Mina Choi Date: Mon, 28 Sep 2026 16:10:37 +0900 Subject: [PATCH] =?UTF-8?q?[fix]=20solution/site:=20=EC=B2=AB=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EB=AC=B8=EA=B5=AC=EA=B0=80=20=EB=94=B0=EB=A1=9C=20?= =?UTF-8?q?=EC=9E=88=EC=9C=BC=EB=A9=B4=20=ED=95=9C=20=EC=A4=84=20=EC=9A=94?= =?UTF-8?q?=EC=95=BD=EC=9D=B4=20=ED=99=94=EB=A9=B4=EC=97=90=20=EC=97=86?= =?UTF-8?q?=EC=96=B4=20=EB=B0=9C=ED=96=89=EC=9D=B4=20=EB=A7=89=ED=9E=88?= =?UTF-8?q?=EB=8D=98=20=EA=B2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 첫 화면은 tagline → heroSubline → summary 중 하나만 쓰고, 이용안내는 intro fact 를 먼저 쓴다. 둘 다 있으면 JSON-LD description(summary)이 화면에 없어 구조화 데이터 대조에서 굽기가 실패했다. - AboutSection: 첫 화면이 다른 문구를 쓸 때만 제목 아래에 summary 한 줄 - app.test: tagline·intro fact·summary 가 다 있는 payload 로 simple·paper 모두 화면에 summary 가 있는지 재현 테스트 실패 확인 후 수정, site vitest 106 passed, 머뭄 payload 심플 굽기 통과 Co-Authored-By: Claude Opus 5.5 (1M context) --- solution/site/src/app.test.tsx | 9 +++++++++ solution/site/src/sections/AboutSection.tsx | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/solution/site/src/app.test.tsx b/solution/site/src/app.test.tsx index 125bcf6..8a789fe 100644 --- a/solution/site/src/app.test.tsx +++ b/solution/site/src/app.test.tsx @@ -29,3 +29,12 @@ it('등록되지 않은 templateId면 렌더를 멈춘다', () => { expect(() => renderToStaticMarkup()).toThrow('등록되지 않은 템플릿'); expect(() => renderToStaticMarkup()).toThrow('등록되지 않은 템플릿'); }); + +it('첫 화면 문구가 따로 있어도 한 줄 요약이 화면에 나온다', () => { + for (const templateId of ['simple', 'paper']) { + const payload = withTemplate(templateId); + payload.narrative = {...payload.narrative, tagline: '첫 화면 문구', summary: '검색에 쓰는 한 줄 요약'}; + payload.facts = [...payload.facts, {...payload.facts[0], key: 'intro', label: '숙소 소개', value: '숙소 소개 원문입니다.', type: 'text'}]; + expect(renderToStaticMarkup()).toContain('검색에 쓰는 한 줄 요약'); + } +}); diff --git a/solution/site/src/sections/AboutSection.tsx b/solution/site/src/sections/AboutSection.tsx index 6be8a1a..ee6febf 100644 --- a/solution/site/src/sections/AboutSection.tsx +++ b/solution/site/src/sections/AboutSection.tsx @@ -46,6 +46,10 @@ export function AboutSection() { {title} + {/* 첫 화면이 다른 문구를 쓰면 한 줄 요약이 여기 말고는 화면에 없다. */} + {narrative.summary && (narrative.tagline || narrative.heroSubline) && ( +

{narrative.summary}

+ )}
{about.map((paragraph, index) => (

{paragraph}