fix: 공개 문서가 실제로 그리는 주제 링크도 탐색 필터로 돌린다
주제 링크를 고쳤는데 화면은 그대로 `/topics/:slug` 로 갔다. 공개 문서의 머리말을 그리는 것은 `PublicDocumentHeader` 의 breadcrumb 이 아니라 렌더 모델의 `topic.publicPath` 이고, 같은 파일 안에서 두 자리가 같은 경로를 만들고 있었다. 한 자리만 고쳤으니 배포하고 눌러 보기 전까지는 고친 것처럼 보였다. 테스트도 이 링크를 묻지 않고 있었다. 머리말 검사가 `Case/JPA/Backend Skeleton` 이라는 글자만 확인해서, 그 글자가 어디로 가는지는 아무도 보지 않았다. 되돌려 보면 공개 문서 여섯 개가 모두 빨개진다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0189NzCryfeqDzS81EWidnBx
This commit is contained in:
co-authored by
Claude Opus 5
parent
2632850322
commit
2420fcee9f
@@ -63,7 +63,9 @@ export function publicRenderModelBase(
|
||||
topic: {
|
||||
id: `topic-${record.topicSlug}`,
|
||||
label: record.topic,
|
||||
publicPath: `/topics/${record.topicSlug}`,
|
||||
// 공개 문서의 머리말이 실제로 그리는 주제 링크는 이 값이다 — 위의 breadcrumb 과 같은
|
||||
// 이유로 탐색 필터를 가리킨다. 둘 중 하나만 고치면 화면에서는 그대로 404 로 간다.
|
||||
publicPath: `/explore?topic=${encodeURIComponent(record.topicSlug)}`,
|
||||
},
|
||||
project: {
|
||||
id: `project-${record.projectSlug}`,
|
||||
|
||||
@@ -42,6 +42,13 @@ const routeComponents = {
|
||||
|
||||
type DocumentRouteId = keyof typeof routeComponents;
|
||||
|
||||
/** 머리말이 거는 주제 링크를 확인하기 위한 픽스처의 이름 → slug 대응. */
|
||||
const topicSlugs: Readonly<Record<string, string>> = {
|
||||
JPA: "jpa",
|
||||
Authentication: "authentication",
|
||||
Redis: "redis",
|
||||
};
|
||||
|
||||
class NoopIntersectionObserver implements IntersectionObserver {
|
||||
readonly root = null;
|
||||
readonly rootMargin = "0px";
|
||||
@@ -211,8 +218,16 @@ describe("TechLog canonical Public documents", () => {
|
||||
*/
|
||||
const [firstEvidence] = within(main).getAllByText(evidence, { exact: false });
|
||||
expect(firstEvidence).toBeVisible();
|
||||
expect(within(main).getByRole("navigation", { name: "문서 경로" })).toHaveTextContent(
|
||||
`${kind}/${topic}/${project}`,
|
||||
const breadcrumb = within(main).getByRole("navigation", { name: "문서 경로" });
|
||||
expect(breadcrumb).toHaveTextContent(`${kind}/${topic}/${project}`);
|
||||
/*
|
||||
글자만 보고 있었더니 주제 링크가 어디로 가는지는 아무도 묻지 않았다. 그 링크는
|
||||
`/topics/:slug` 를 가리켰고, 그 화면은 세 개의 주제를 하드코딩해 두고 있어 실제 주제는
|
||||
무엇이든 404 였다 — 게시한 모든 문서가 죽은 링크를 하나씩 달고 있었다.
|
||||
*/
|
||||
expect(within(breadcrumb).getByRole("link", { name: topic })).toHaveAttribute(
|
||||
"href",
|
||||
`/explore?topic=${topicSlugs[topic]}`,
|
||||
);
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user