# test.coordination/core/transformers/venue.transformer.test.ts

> 35 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-coordination-core-transformers-venue-transformer-test-ts
Source text: https://banes-lab.com/source/testing/test.coordination/core/transformers/venue.transformer.test.ts.txt

Listed in [test.coordination/core/transformers](https://banes-lab.com/api/source/testing/test.coordination/core/transformers.md), after [test.coordination/core/transformers/segment.transformer.test.ts](https://banes-lab.com/source/testing/test.coordination/core/transformers/segment.transformer.test.ts.md).

## Contained in

- [test.coordination/core/transformers](https://banes-lab.com/anatomy/testing/folder-testing-test-coordination-core-transformers.md)

## Source

````typescript
import { INHERITED_BANNER, LIST_MARKER } from "coordination-surface/tools/core/constants/blocking.constants.ts";
import {
    SUCCESSOR_FIELD,
    lastInheritedItem,
    successorWritten,
} from "coordination-surface/tools/core/transformers/venue.transformer.ts";
import { describe, it } from "vitest";
import assert from "node:assert/strict";

const DECLARATION = `${SUCCESSOR_FIELD} next-venue`;

describe("successorWritten", () => {
    it("replaces a written successor line, and otherwise adds one after the successor section's fenced specimen", () => {
        assert.equal(successorWritten(`# V\n${SUCCESSOR_FIELD} old\nrest`, DECLARATION), `# V\n${DECLARATION}\nrest`);
        const section = ["## SUCCESSOR", "```", `${SUCCESSOR_FIELD} <name>`, "```", "## NEXT"].join("\n");
        assert.equal(
            successorWritten(section, DECLARATION),
            ["## SUCCESSOR", "```", `${SUCCESSOR_FIELD} <name>`, "```", "", DECLARATION, "## NEXT"].join("\n"),
        );
        assert.equal(successorWritten("# no successor section", DECLARATION), null);
    });
});

describe("lastInheritedItem", () => {
    it("finds the last list item of the inherited section, and none without the banner or an item", () => {
        const lines = [
            "prose",
            INHERITED_BANNER,
            `${LIST_MARKER}first`,
            `${LIST_MARKER}second`,
            "═══════ POSITIONS",
            `${LIST_MARKER}not inherited`,
        ];
        assert.equal(lastInheritedItem(lines), 3);
        assert.equal(lastInheritedItem(["prose", `${LIST_MARKER}x`]), -1);
        assert.equal(lastInheritedItem([INHERITED_BANNER, "prose"]), -1);
    });
});
````
