28 lines
1.3 KiB
TypeScript
28 lines
1.3 KiB
TypeScript
import { renderToStaticMarkup } from "react-dom/server";
|
|
import { describe, expect, it } from "vitest";
|
|
import { ComparisonContext } from "./comparison-context";
|
|
|
|
describe("public comparison explanations", () => {
|
|
it("keeps each damage metric's 100% rows separate", () => {
|
|
const rows = [
|
|
{ weapon: { name: "Team reference" }, refinement: "5", overallPercent: "100", personalPercent: "110" },
|
|
{ weapon: { name: "Personal reference" }, refinement: "1", overallPercent: "105", personalPercent: "100" },
|
|
];
|
|
const team = renderToStaticMarkup(<ComparisonContext rows={rows} metric="overallPercent" />);
|
|
const personal = renderToStaticMarkup(<ComparisonContext rows={rows} metric="personalPercent" />);
|
|
expect(team).toContain("Team reference R5");
|
|
expect(team).not.toContain("Personal reference");
|
|
expect(personal).toContain("Personal reference R1");
|
|
expect(personal).not.toContain("Team reference");
|
|
});
|
|
|
|
it("does not invent a reference when no row is 100%", () => {
|
|
const html = renderToStaticMarkup(<ComparisonContext rows={[
|
|
{ weapon: { name: "Only choice" }, refinement: "1", overallPercent: "109", personalPercent: null },
|
|
]} metric="overallPercent" />);
|
|
expect(html).toContain("ดูหมายเหตุ");
|
|
expect(html).not.toContain("Only choice");
|
|
});
|
|
|
|
});
|