From 130a8e029b7d8a217ae2f0bf44bd9de2a78dbeec Mon Sep 17 00:00:00 2001 From: jinhojang6 Date: Thu, 20 Aug 2026 00:03:58 +0900 Subject: [PATCH] fix(web): align RFP sitemap with live source --- apps/web/app/sitemap.ts | 4 ++-- apps/web/scripts/static-export-smoke.ts | 10 +--------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/apps/web/app/sitemap.ts b/apps/web/app/sitemap.ts index 149535dd20..23c28d6a60 100644 --- a/apps/web/app/sitemap.ts +++ b/apps/web/app/sitemap.ts @@ -3,7 +3,6 @@ import type { MetadataRoute } from 'next' import { flattenFieldGuideItems, getAllIdeas, - getAllRfps, getCircles, getFieldGuideManifest, } from '@repo/content/loaders' @@ -11,6 +10,7 @@ import { import siteConfig from '@/constants/site-config' import { ROUTES } from '@/constants/routes' import { ROUTE_AVAILABILITY } from '@/constants/route-availability' +import { fetchGithubRfps } from '@/lib/rfps-github' export const dynamic = 'force-static' @@ -68,7 +68,7 @@ const buildSitemapEntry = ( export default async function sitemap(): Promise { const lastModified = new Date().toISOString().split('T')[0]! const [rfps, ideas, circles, fieldGuide] = await Promise.all([ - getAllRfps({ locale: 'en', status: 'published' }), + fetchGithubRfps(), getAllIdeas({ locale: 'en', status: 'published' }), getCircles({ locale: 'en', status: 'published' }), getFieldGuideManifest('en'), diff --git a/apps/web/scripts/static-export-smoke.ts b/apps/web/scripts/static-export-smoke.ts index e2bbf93b68..21fba140d9 100644 --- a/apps/web/scripts/static-export-smoke.ts +++ b/apps/web/scripts/static-export-smoke.ts @@ -167,15 +167,7 @@ const main = async (): Promise => { const failures: string[] = [] const checkedHtmlFiles = new Set() const expectedRoutes = await collectExpectedRoutes() - // RFP detail pages are sourced from the live GitHub listing, while the sitemap - // is generated from the curated content package, so the two sets legitimately - // differ. Validate the sitemap against everything except RFP detail routes to - // avoid coupling the smoke test to that sourcing difference. - const rfpDetailPrefix = `${ROUTES.rfps}/` - const sitemapRoutes = expectedRoutes.filter( - (route) => !route.startsWith(rfpDetailPrefix) - ) - failures.push(...assertSeoFiles(sitemapRoutes)) + failures.push(...assertSeoFiles(expectedRoutes)) for (const route of expectedRoutes) { const htmlFile = findHtmlFile(route)