Files
ttstd-infinite-canvas/web/test/model-logo.test.ts
echoD886 335b5406ad fix(create): 参考内容 - 支持添加、独立删除与筛选管理
- 支持参考内容按稳定 ID 删除、筛选、清空、拖拽与触屏交互
- 保留 Vite 生产环境模型 Logo 加载并兼容 Bun 测试
- 同步最新 main,修正相关格式和陈旧测试断言

Co-authored-by: echoD886 <dingxiaojie66@gmail.com>
2026-08-28 09:07:33 +08:00

22 lines
1.4 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import { existsSync, readFileSync } from "node:fs";
import { resolve } from "node:path";
describe("模型 Logo 选择器", () => {
test("使用 Vite 可识别的直接 glob 并包含前台模型 Logo 数据源", () => {
const source = readFileSync(resolve(import.meta.dir, "../src/components/model-logo.tsx"), "utf8");
const toc = JSON.parse(readFileSync(resolve(import.meta.dir, "../node_modules/@lobehub/icons/es/toc.json"), "utf8")) as Array<{ group: string; id: string }>;
const options = toc.filter((item) => item.group === "model" || item.group === "provider" || item.group === "application");
expect(source).toContain('import.meta.glob("../../node_modules/@lobehub/icons/es/*/components/Mono.js"');
expect(source).not.toContain("import.meta.glob?.(");
expect(source).toContain('"Bun" in globalThis');
expect(source).not.toContain("typeof import.meta.glob");
expect(options.length).toBeGreaterThan(300);
expect(options.some((item) => item.id === "OpenAI")).toBe(true);
expect(options.some((item) => item.id === "AgnesAI")).toBe(true);
expect(existsSync(resolve(import.meta.dir, "../node_modules/@lobehub/icons/es/OpenAI/components/Mono.js"))).toBe(true);
expect(existsSync(resolve(import.meta.dir, "../node_modules/@lobehub/icons/es/AgnesAI/components/Mono.js"))).toBe(true);
});
});