import assert from "node:assert/strict"; import fs from "node:fs"; import path from "node:path"; import { fileURLToPath } from "node:url"; import { DETAIL_ROUTE_BY_TYPE, getLongTextGuideDetailRoute, } from "../src/pages/ChatModule/LongTextGuideCardPreview/detailRoutes.mjs"; const dirname = path.dirname(fileURLToPath(import.meta.url)); const rootDir = path.resolve(dirname, ".."); const expectedRoutes = { longTextCard: "/pages/ChatModule/LongTextGuideCardPreview/guide", longTextCardScenicSpot: "/pages/ChatModule/LongTextGuideCardPreview/poi", longTextCardRoute: "/pages/ChatModule/LongTextGuideCardPreview/route", longTextCardSnap: "/pages/ChatModule/LongTextGuideCardPreview/photo", longTextCardFullDoc: "/pages/ChatModule/LongTextGuideCardPreview/fullDoc", }; assert.deepEqual(DETAIL_ROUTE_BY_TYPE, expectedRoutes); for (const [type, route] of Object.entries(expectedRoutes)) { assert.equal(getLongTextGuideDetailRoute(type), route); const pageFile = path.join(rootDir, "src", `${route.replace(/^\//, "")}.vue`); assert.ok(fs.existsSync(pageFile), `Missing page file for ${type}: ${pageFile}`); } const pagesJson = JSON.parse( fs.readFileSync(path.join(rootDir, "src/pages.json"), "utf8"), ); const registeredPages = new Set(pagesJson.pages.map((item) => item.path)); for (const route of Object.values(expectedRoutes)) { assert.ok( registeredPages.has(route.replace(/^\//, "")), `Route is not registered in src/pages.json: ${route}`, ); }