import { describe, expect, it } from "vitest"; import { normalizeConciergeAdvisor, normalizeConciergeAdvisors } from "@/pages/concierge/components/conciergeTypes"; describe("normalizeConciergeAdvisors", () => { it("normalizes a single valid advisor and rejects incomplete data", () => { expect( normalizeConciergeAdvisor({ avatar: " https://example.test/amanda.jpg ", name: " Amanda ", role: " ADVISOR ", details: [{ icon: " calendar ", label: " 服务经验:8年 " }], qrImage: " https://example.test/amanda-qr.png ", }), ).toEqual({ avatar: "https://example.test/amanda.jpg", name: "Amanda", role: "ADVISOR", details: [{ icon: "calendar", label: "服务经验:8年" }], qrImage: "https://example.test/amanda-qr.png", }); expect(normalizeConciergeAdvisor({ name: "缺少头像" })).toBeNull(); }); it("normalizes public advisor data and filters incomplete records", () => { expect( normalizeConciergeAdvisors({ advisors: [ { id: "advisor-amanda", avatar: " https://example.test/amanda.jpg ", name: " Amanda ", role: "SENIOR TRAVEL ADVISOR", details: [ { icon: " calendar ", label: " 服务经验:8年 " }, { icon: "navigate", label: "" }, ], qrImage: "https://example.test/amanda-qr.png", }, { id: "missing-qr", avatar: "https://example.test/avatar.jpg", name: "无效", role: "ADVISOR", details: [] }, ], }), ).toEqual([ { avatar: "https://example.test/amanda.jpg", name: "Amanda", role: "SENIOR TRAVEL ADVISOR", details: [{ icon: "calendar", label: "服务经验:8年" }], qrImage: "https://example.test/amanda-qr.png", }, ]); }); it("returns an empty list for an invalid response", () => { expect(normalizeConciergeAdvisors(null)).toEqual([]); expect(normalizeConciergeAdvisors({ advisors: null })).toEqual([]); }); });