42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
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}`,
|
|
);
|
|
}
|