import { describe, expect, it } from "vitest"; import { homeTeamBuildingMocks, normalizeHomeTeamBuildingDetail, normalizeHomeTeamBuildings, } from "@/pages/home/components/homeTeamBuildingData"; import { homeWildArchiveMocks, normalizeHomeWildArchiveDetail, normalizeHomeWildArchives, } from "@/pages/home/components/homeWildArchivesData"; import { normalizeHomeWanfaRecommendations } from "@/pages/home/components/homeWanfaRecommendationData"; describe("home content normalizers", () => { it("normalizes team building and wild archive lists", () => { expect(normalizeHomeTeamBuildings(null)).toEqual(homeTeamBuildingMocks); expect(normalizeHomeWildArchives(undefined)).toEqual(homeWildArchiveMocks); expect( normalizeHomeTeamBuildings([ { id: "team-api", tag: "团队协作", title: "API 团建", description: "API 描述", image: "https://example.test/team.jpg", demandKeyword: "API 团建", sortOrder: 0, }, ])[0], ).toMatchObject({ id: "team-api" }); }); it("normalizes a wild archive detail with a cover fallback", () => { const detail = normalizeHomeWildArchiveDetail({ id: "archive-api", title: " 石龙洞——客片案例 ", image: "https://example.test/cover.jpg", images: ["https://example.test/one.jpg", " https://example.test/two.jpg "], demandKeyword: "地心探险", }); expect(detail).toMatchObject({ id: "archive-api", title: "石龙洞——客片案例", image: "https://example.test/cover.jpg", images: ["https://example.test/one.jpg", "https://example.test/two.jpg"], }); }); it("normalizes a team building detail with paragraph content", () => { const detail = normalizeHomeTeamBuildingDetail({ id: "team-api", tag: "户外挑战", title: " API 团建 ", description: "卡片描述", image: "https://example.test/team.jpg", demandKeyword: "API 团建", detailSubtitle: " 越过山丘,向来处去 ", detailParagraphs: [" 第一段 ", "", " 第二段 "], }); expect(detail).toMatchObject({ id: "team-api", title: "API 团建", detailSubtitle: "越过山丘,向来处去", detailParagraphs: ["第一段", "第二段"], }); }); it("normalizes homepage wanfa recommendations with their linked category routes", () => { expect( normalizeHomeWanfaRecommendations([ { id: "recommendation-1", categoryId: "family-route", label: " 亲子路线 ", routes: [ { id: "family-water", title: " 亲子玩水 ", subtitle: "贵州·轻松节奏与自然课堂", image: "https://example.test/family-water.jpg", routeCount: 2, demandKeyword: "亲子玩水", }, ], }, ]), ).toEqual([ { id: "recommendation-1", categoryId: "family-route", label: "亲子路线", routes: [ { id: "family-water", title: "亲子玩水", subtitle: "贵州·轻松节奏与自然课堂", image: "https://example.test/family-water.jpg", routeCount: 2, demandKeyword: "亲子玩水", }, ], }, ]); expect(normalizeHomeWanfaRecommendations(null)).toEqual([]); }); });