# tests/core/normalizers/document.normalizer.test.ts

> 30 lines of code and 0 definitions.

Tree: Coordination tree
Language: typescript
Canonical: https://banes-lab.com/anatomy/coordination#file-coordination-tests-core-normalizers-document-normalizer-test-ts
Source text: https://banes-lab.com/assets/sources/source.1b0d962d55129bfd8e2aa3dfbb94f826dfeebcc2393b544ed7370d66ed667e1d.generated.txt

## Source

```typescript
import { describe, it } from "node:test";
import { sameDocument, sameRow } from "../../../tools/core/normalizers/document.normalizer.ts";
import assert from "node:assert/strict";

const RENDERED = ["# Binding", "Prose line.", "| slot | state |", "|---|---|", "| `{a}` | ABSENT |", ""].join("\n");

const FORMATTED = [
    "# Binding",
    "",
    "Prose line.",
    "",
    "| slot  | state  |",
    "| ----- | ------ |",
    "| `{a}` | ABSENT |",
].join("\n");

describe("sameRow", () => {
    it("compares rows by their cells and reads any divider run as one divider", () => {
        assert.equal(sameRow("| a   | b |", "|a|b|"), true);
        assert.equal(sameRow("| --- | :-: |", "|---|---|"), false);
        assert.equal(sameRow("| ----- | - |", "|---|---|"), true);
        assert.equal(sameRow("| a | b |", "| a | c |"), false);
    });
});

describe("sameDocument", () => {
    it("reads a formatter's padding and blank lines as no change", () => {
        assert.equal(sameDocument(FORMATTED, RENDERED), true);
    });

    it("reads a changed cell or a changed line as a change", () => {
        assert.equal(sameDocument(FORMATTED.replace("ABSENT", "RESOLVED"), RENDERED), false);
        assert.equal(sameDocument(FORMATTED.replace("Prose line.", "Prose line"), RENDERED), false);
    });
});
```
