- 移除后端产品、目的地、活动专题等废弃模块的数据库表与业务代码,删除冗余API接口 - 删除小程序端详情页、线路组件等冗余代码,移除搜索工具与测试用例,调整导航逻辑 - 清理管理端废弃的类型定义、编辑器与测试代码 - 更新项目文档,修正模块维护说明与接口文档内容
53 lines
1.6 KiB
TypeScript
53 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { fallbackData, getSubmitErrorMessage, normalizeSiteConfig } from "@/lib/data";
|
|
import type { PublicSiteConfig } from "@/lib/types";
|
|
|
|
describe("WonderQ shared data helpers", () => {
|
|
it("uses local defaults when the site configuration is empty", () => {
|
|
expect(normalizeSiteConfig({}, fallbackData)).toEqual(fallbackData);
|
|
});
|
|
|
|
it("normalizes active site modules and ignores incomplete records", () => {
|
|
const config: PublicSiteConfig = {
|
|
destinationHero: [
|
|
{
|
|
id: "hero-1",
|
|
title: "后台主视觉标题",
|
|
kicker: "后台小标题",
|
|
image: "https://cdn.example.test/hero.jpg",
|
|
isActive: true,
|
|
sortOrder: 0,
|
|
},
|
|
],
|
|
demandForm: [
|
|
{
|
|
id: "form-1",
|
|
destinationLabel: "想去哪里",
|
|
submitLabel: "提交给管家",
|
|
chips: [" 贵州 ", "", "黄果树"],
|
|
isActive: true,
|
|
},
|
|
],
|
|
};
|
|
|
|
const data = normalizeSiteConfig(config, fallbackData);
|
|
|
|
expect(data.destinationHero).toMatchObject({
|
|
id: "hero-1",
|
|
title: "后台主视觉标题",
|
|
image: "https://cdn.example.test/hero.jpg",
|
|
});
|
|
expect(data.demandForm).toMatchObject({
|
|
id: "form-1",
|
|
destinationLabel: "想去哪里",
|
|
submitLabel: "提交给管家",
|
|
chips: ["贵州", "黄果树"],
|
|
});
|
|
});
|
|
|
|
it("returns a stable submit error message", () => {
|
|
expect(getSubmitErrorMessage(new Error("网络异常"))).toBe("网络异常");
|
|
expect(getSubmitErrorMessage("unknown")).toBe("提交失败,请稍后再试。");
|
|
});
|
|
});
|