Files
WonderQ-Project/WonderQ-MiniAPP/tests/data.test.ts
duanshuwen 548f91c37f refactor: 清理废弃业务模块并更新全栈配置
- 移除后端产品、目的地、活动专题等废弃模块的数据库表与业务代码,删除冗余API接口
- 删除小程序端详情页、线路组件等冗余代码,移除搜索工具与测试用例,调整导航逻辑
- 清理管理端废弃的类型定义、编辑器与测试代码
- 更新项目文档,修正模块维护说明与接口文档内容
2026-08-17 22:43:49 +08:00

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("提交失败,请稍后再试。");
});
});