57 lines
2.1 KiB
TypeScript
57 lines
2.1 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import type { CandidateFactCard } from "../../lib/domain/types";
|
|
import { resolveUncertainItem } from "../fact-card-editor";
|
|
|
|
const baseFactCard: CandidateFactCard = {
|
|
company_full_name: "示例科技有限公司",
|
|
company_short_names: ["示例科技"],
|
|
brand_names: ["示例品牌"],
|
|
product_names: ["GEO内容优化平台"],
|
|
target_industry: "GEO内容优化",
|
|
target_audience: "市场团队",
|
|
experience_years: 8,
|
|
core_claims: ["提供GEO内容优化服务"],
|
|
forbidden_claims: [],
|
|
image_topics: ["产品后台截图"],
|
|
uncertain_items: ["客户案例缺少来源", "出海能力需要确认"],
|
|
is_ready_for_optimization: false,
|
|
};
|
|
|
|
describe("FactCardEditor uncertain item resolution", () => {
|
|
it("adds a confirmed uncertain item to the selected fact field and removes it", () => {
|
|
const resolved = resolveUncertainItem(baseFactCard, 0, "core_claims");
|
|
|
|
expect(resolved.core_claims).toEqual([
|
|
"提供GEO内容优化服务",
|
|
"客户案例缺少来源",
|
|
]);
|
|
expect(resolved.uncertain_items).toEqual(["出海能力需要确认"]);
|
|
expect(resolved.is_ready_for_optimization).toBe(false);
|
|
});
|
|
|
|
it("marks the fact card ready after the final uncertain item is resolved", () => {
|
|
const resolved = resolveUncertainItem(
|
|
{
|
|
...baseFactCard,
|
|
uncertain_items: ["图片主题需要确认"],
|
|
},
|
|
0,
|
|
"image_topics",
|
|
);
|
|
|
|
expect(resolved.image_topics).toEqual(["产品后台截图", "图片主题需要确认"]);
|
|
expect(resolved.uncertain_items).toEqual([]);
|
|
expect(resolved.is_ready_for_optimization).toBe(true);
|
|
});
|
|
|
|
it("can ignore an uncertain item without adding it to fact fields", () => {
|
|
const resolved = resolveUncertainItem(baseFactCard, 0, "ignore");
|
|
|
|
expect(resolved.core_claims).toEqual(["提供GEO内容优化服务"]);
|
|
expect(resolved.forbidden_claims).toEqual([]);
|
|
expect(resolved.image_topics).toEqual(["产品后台截图"]);
|
|
expect(resolved.uncertain_items).toEqual(["出海能力需要确认"]);
|
|
});
|
|
});
|