Files
sudoku-tools/tests/components/sudokuBoard.test.tsx
T

45 lines
1.3 KiB
TypeScript

import { render } from "@testing-library/react";
import { describe, expect, it, vi } from "vitest";
import { normalizePuzzle } from "../../src/domain";
import { SudokuBoard } from "../../src/components/SudokuBoard";
describe("Sudoku board constraint visuals", () => {
it("distinguishes XV sums from directional inequalities", () => {
const puzzle = normalizePuzzle({
version: 1,
size: 4,
givens: new Array<number>(16).fill(0),
constraints: [
{ type: "xv", a: 0, b: 1, total: 5 },
{ type: "xv", a: 4, b: 5, total: 10 },
{ type: "inequality", lesser: 8, greater: 9 },
],
});
const { container } = render(
<SudokuBoard
puzzle={puzzle}
values={puzzle.givens}
selected={new Set([0])}
activeCell={0}
onCellPointerDown={vi.fn()}
onCellPointerEnter={vi.fn()}
onKeyDown={vi.fn()}
/>,
);
expect(container.querySelector(".constraint-xv--5 text")).toHaveTextContent(
"5",
);
expect(
container.querySelector(".constraint-xv--10 text"),
).toHaveTextContent("10");
expect(
container.querySelector(".constraint-inequality path"),
).toHaveAttribute("d", "M0.12 -0.17L-0.12 0L0.12 0.17");
expect(
container.querySelector(".constraint-inequality-tip"),
).toBeInTheDocument();
});
});