Files
ttstd-infinite-canvas/web/test/creation-inspirations.test.ts

23 lines
1.2 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import { existsSync } from "node:fs";
import { resolve } from "node:path";
import { creationFeaturedWorks, inspirationSource } from "../src/pages/create/creation-inspirations";
describe("curated creation inspirations", () => {
test("all templates have unique titles, usable prompts and local cover assets", () => {
expect(creationFeaturedWorks.length).toBe(22);
expect(new Set(creationFeaturedWorks.map((item) => item.title)).size).toBe(22);
for (const item of creationFeaturedWorks) {
expect(["image", "video", "text"]).toContain(item.mode);
expect(item.prompt.length).toBeGreaterThan(35);
expect(existsSync(resolve(import.meta.dir, "../public", item.image.slice(1)))).toBe(true);
}
});
test("adapted prompts retain provenance and the data license", () => {
expect(creationFeaturedWorks.filter((item) => item.source).length).toBe(8);
expect(inspirationSource.license).toBe("CC0-1.0");
expect(inspirationSource.revision).toMatch(/^[a-f0-9]{40}$/);
expect(inspirationSource.notice).toContain("不代表实际生成结果");
});
});