このコミットが含まれているのは:
2026-06-22 08:16:29 +09:00
コミット eeefb09d0c
13個のファイルの変更59行の追加15行の削除
+15
ファイルの表示
@@ -18,6 +18,21 @@ describe ('TagLink', () => {
expect (screen.getByText ('4')).toBeInTheDocument ()
})
it ('does not append deprecated state to the rendered tag name', () => {
renderWithProviders (
<TagLink
tag={buildTag ({
name: '旧タグ',
deprecatedAt: '2026-06-01T00:00:00.000Z',
})}
withWiki={false}
withCount={false}/>,
)
expect (screen.getByRole ('link', { name: '旧タグ' })).toBeInTheDocument ()
expect (screen.queryByText ('(廃止)')).not.toBeInTheDocument ()
})
it ('links wiki markers to the correct detail route', () => {
renderWithProviders (
<TagLink tag={buildTag ({ hasWiki: true, name: 'a/b' })}/>,
+1 -1
ファイルの表示
@@ -128,4 +128,4 @@ const TagLink: FC<Props> = ({ tag,
</>)
}
export default TagLink
export default TagLink
-1
ファイルの表示
@@ -66,7 +66,6 @@ export const fetchTagByName = async (name: string): Promise<Tag | null> => {
}
}
export const fetchTagChanges = async (
{ id, page, limit }: {
id?: string
+6 -2
ファイルの表示
@@ -39,6 +39,7 @@ const WikiDetailPage: FC = () => {
queryFn: () => fetchWikiPageByTitle (title, { version }) })
const effectiveTitle = wikiPage?.title ?? title
const deprecated = wikiPage?.deprecatedAt != null
const { data: tag } = useQuery ({
enabled: Boolean (effectiveTitle),
@@ -88,7 +89,7 @@ const WikiDetailPage: FC = () => {
return (
<MainArea>
<Helmet>
<title>{`${ title } Wiki | ${ SITE_TITLE }`}</title>
<title>{`${ effectiveTitle }${ deprecated ? '(廃止)' : '' } Wiki | ${ SITE_TITLE }`}</title>
{!(wikiPage?.body) && <meta name="robots" content="noindex"/>}
</Helmet>
@@ -110,10 +111,13 @@ const WikiDetailPage: FC = () => {
<article className="prose dark:prose-invert mx-auto p-4">
<h1 className="prose-a:no-underline">
<TagLink tag={tag ?? defaultTag}
<TagLink tag={tag ?? { ...defaultTag,
name: effectiveTitle,
deprecatedAt: wikiPage?.deprecatedAt ?? null }}
withWiki={false}
withCount={false}
{...(version && { to: `/wiki/${ encodeURIComponent (title) }` })}/>
{deprecated && <span></span>}
</h1>
{loading ? <div>Loading...</div> : <WikiBody title={title} body={wikiPage?.body}/>}
+5 -2
ファイルの表示
@@ -23,6 +23,9 @@ const WikiDiffPage: FC = () => {
const query = new URLSearchParams (location.search)
const from = query.get ('from')
const to = query.get ('to')
const displayTitle = diff
? `${ diff.title }${ diff.deprecatedAt != null ? '(廃止)' : '' }`
: ''
useEffect (() => {
void (async () => {
@@ -33,9 +36,9 @@ const WikiDiffPage: FC = () => {
return (
<MainArea>
<Helmet>
<title>{`Wiki 差分: ${ diff?.title } | ${ SITE_TITLE }`}</title>
<title>{`Wiki 差分: ${ displayTitle } | ${ SITE_TITLE }`}</title>
</Helmet>
<PageTitle>{diff?.title}</PageTitle>
<PageTitle>{displayTitle}</PageTitle>
<div className="prose mx-auto p-4">
{diff
? (
+1
ファイルの表示
@@ -59,6 +59,7 @@ const WikiHistoryPage: FC = () => {
to={`/wiki/${ encodeURIComponent (change.wikiPage.title) }?version=${ change.revisionId }`}>
{change.wikiPage.title}
</PrefetchLink>
{change.wikiPage.deprecatedAt != null && <span></span>}
</td>
<td className="p-2">
{change.pred == null ? '新規' : '更新'}
+13
ファイルの表示
@@ -42,4 +42,17 @@ describe ('WikiSearchPage', () => {
})
expect (await screen.findByRole ('link', { name: '検索結果' })).toBeInTheDocument ()
})
it ('marks deprecated wiki tags in the result title', async () => {
api.apiGet.mockResolvedValueOnce ([
buildWikiPage ({
title: '旧タグ',
deprecatedAt: '2026-06-01T00:00:00.000Z',
}),
])
renderWithProviders (<WikiSearchPage/>)
expect (await screen.findByRole ('link', { name: '旧タグ(廃止)' })).toBeInTheDocument ()
})
})
+1
ファイルの表示
@@ -86,6 +86,7 @@ const WikiSearchPage: FC = () => {
<PrefetchLink to={`/wiki/${ encodeURIComponent (page.title) }`}>
{page.title}
</PrefetchLink>
{page.deprecatedAt != null && <span></span>}
</td>
<td className="p-2">
{dateString (page.updatedAt)}
+1
ファイルの表示
@@ -58,6 +58,7 @@ export const buildUser = (overrides: Partial<User> = {}): User => ({
export const buildWikiPage = (overrides: Partial<WikiPage> = {}): WikiPage => ({
id: 1,
title: 'テストWiki',
deprecatedAt: null,
createdUserId: 1,
updatedUserId: 1,
createdAt: '2026-01-02T03:04:05.000Z',
+3 -1
ファイルの表示
@@ -299,6 +299,7 @@ export type ViewFlagBehavior = typeof ViewFlagBehavior[keyof typeof ViewFlagBeha
export type WikiPage = {
id: number
title: string
deprecatedAt: string | null
createdUserId: number
updatedUserId: number
createdAt: string
@@ -312,7 +313,7 @@ export type WikiPageChange = {
revisionId: number
pred: number | null
succ: null
wikiPage: Pick<WikiPage, 'id' | 'title'>
wikiPage: Pick<WikiPage, 'id' | 'title' | 'deprecatedAt'>
user: Pick<User, 'id' | 'name'>
kind: 'content' | 'redirect'
message: string | null
@@ -321,6 +322,7 @@ export type WikiPageChange = {
export type WikiPageDiff = {
wikiPageId: number
title: string
deprecatedAt: string | null
olderRevisionId: number | null
newerRevisionId: number
diff: WikiPageDiffDiff[] }