20 lines
929 B
TypeScript
20 lines
929 B
TypeScript
import { type ParsedRelease, parseRelease } from "@umt/domain";
|
|
import { expect, it } from "vitest";
|
|
import { evidenceVersion } from "../../src/modules/sources-identity/service/resolve.ts";
|
|
|
|
it("身份候选不变时,季集和规则匹配输入变化也必须重算;相同事实仍幂等", () => {
|
|
const original = parseRelease("[Lilith-Raws] Example S01E40 [1080p]");
|
|
const before = evidenceVersion(original, []);
|
|
const changes: Partial<ParsedRelease>[] = [
|
|
{ season: 2 },
|
|
{ seasonEnd: 2 },
|
|
{ seasonInferred: true },
|
|
{ episodes: { start: 12, end: 12 } },
|
|
{ airDate: "20250314" },
|
|
{ releaseGroup: { name: "ANi", source: "bracket" } },
|
|
{ words: { applied: ["Example >> EP-28"], original: original.raw } },
|
|
];
|
|
for (const change of changes) expect(evidenceVersion({ ...original, ...change }, [])).not.toBe(before);
|
|
expect(evidenceVersion(structuredClone(original), [])).toBe(before);
|
|
});
|