test.coordination/core/runners/delivery.runner.test.ts

test.coordination/core/runners/delivery.runner.test.ts is a file in Codebase Testing. 115 lines of code and 0 definitions.

import {
    ARRIVE_NOT_VENUE,
    ARRIVE_NO_SUCCESSOR,
    arrivalHeld,
    arriveNoInheritedSection,
    arrivePredecessorMissing,
    arriveSuccessorUnraised,
    arrived,
    inheritNotVenue,
    inheritSectionMissing,
    inheritSectionUnbounded,
    inheritUnchanged,
    inheritUpdated,
    inheritVenueElsewhere,
    raiseRefused,
} from "coordination-surface/tools/core/strings/venue.strings.ts";
import { DEFERRAL_ARROW, DEFERRED_SECTION } from "coordination-surface/tools/core/analyzers/converge.analyzer.ts";
import { INHERITED_BANNER, PROTOCOL_BANNER } from "coordination-surface/tools/core/constants/blocking.constants.ts";
import { describe, it } from "vitest";
import { join, resolve } from "node:path";
import { mkdirSync, mkdtempSync, readFileSync, rmSync } from "node:fs";
import { runArrive, runInherit } from "coordination-surface/tools/core/runners/delivery.runner.ts";
import assert from "node:assert/strict";
import { surfacePrefix } from "coordination-surface/config/surface.config.ts";
import { tmpdir } from "node:os";
import { writeVerbatim } from "@govlab/canonical-write";

const PREDECESSOR = "index.01.blocking.md";
const SUCCESSOR = "next.02.blocking.md";

const PREDECESSOR_TEXT = [
    "# Venue",
    "SUCCESSOR: next",
    `## ${DEFERRED_SECTION}`,
    `- **the write** ${DEFERRAL_ARROW} next`,
    `- **the audit** ${DEFERRAL_ARROW} elsewhere`,
    "## POSITIONS",
].join("\n");

const SUCCESSOR_TEXT = [`${INHERITED_BANNER} from 01 ═══`, "- carried earlier", PROTOCOL_BANNER, ""].join("\n");

const refused = (reason: string): { code: number; message: string; raised: null } => ({
    code: 2,
    message: raiseRefused(reason),
    raised: null,
});

const withVenues = function withVenues(check: (root: string, venues: string) => void): void {
    const root = mkdtempSync(join(tmpdir(), "coordination-delivery-"));
    try {
        const venues = resolve(root, surfacePrefix());
        mkdirSync(venues, { recursive: true });
        check(root, venues);
    } finally {
        rmSync(root, { force: true, recursive: true });
    }
};

describe("runArrive", () => {
    it("refuses a predecessor that is no venue, is missing, declares no successor, or whose successor cannot receive", () => {
        withVenues((_root, venues) => {
            const absolute = join(venues, PREDECESSOR);
            assert.deepEqual(runArrive({ absolute, predecessor: "notes.md" }), refused(ARRIVE_NOT_VENUE));
            assert.deepEqual(
                runArrive({ absolute, predecessor: PREDECESSOR }),
                refused(arrivePredecessorMissing(PREDECESSOR)),
            );
            writeVerbatim(absolute, "# Venue\n");
            assert.deepEqual(runArrive({ absolute, predecessor: PREDECESSOR }), refused(ARRIVE_NO_SUCCESSOR));
            writeVerbatim(absolute, PREDECESSOR_TEXT);
            assert.deepEqual(
                runArrive({ absolute, predecessor: PREDECESSOR }),
                refused(arriveSuccessorUnraised("next.blocking.md")),
            );
            writeVerbatim(join(venues, SUCCESSOR), "# Successor\n");
            assert.deepEqual(
                runArrive({ absolute, predecessor: PREDECESSOR }),
                refused(arriveNoInheritedSection(SUCCESSOR)),
            );
        });
    });

    it("carries each clause deferred to the successor into its inherited section, and holds a clause routed elsewhere", () => {
        withVenues((_root, venues) => {
            const absolute = join(venues, PREDECESSOR);
            writeVerbatim(absolute, PREDECESSOR_TEXT);
            writeVerbatim(join(venues, SUCCESSOR), SUCCESSOR_TEXT);
            assert.deepEqual(runArrive({ absolute, predecessor: PREDECESSOR }), {
                code: 0,
                message: arrived(1, PREDECESSOR, SUCCESSOR, ["the write"]),
                raised: SUCCESSOR,
            });
            assert.ok(readFileSync(join(venues, SUCCESSOR), "utf8").includes(`- the write ${DEFERRAL_ARROW} next`));
            assert.deepEqual(runArrive({ absolute, predecessor: PREDECESSOR }), {
                code: 0,
                message: arrivalHeld(SUCCESSOR, [`the audit ${DEFERRAL_ARROW} elsewhere`]),
                raised: null,
            });
        });
    });
});

describe("runInherit", () => {
    it("rewrites a venue's inherited section from the venues deferring to it, once, and refuses what it cannot bound", () => {
        withVenues((root, venues) => {
            const request = { name: SUCCESSOR, repoRoot: root };
            assert.deepEqual(runInherit({ ...request, name: "notes.md" }), refused(inheritNotVenue("notes.md")));
            assert.deepEqual(runInherit(request), refused(inheritVenueElsewhere(SUCCESSOR)));
            writeVerbatim(join(venues, SUCCESSOR), "# Successor\n");
            assert.deepEqual(runInherit(request), refused(inheritSectionMissing(SUCCESSOR)));
            writeVerbatim(join(venues, SUCCESSOR), `${INHERITED_BANNER} ═══\n`);
            assert.deepEqual(runInherit(request), refused(inheritSectionUnbounded(SUCCESSOR)));
            writeVerbatim(join(venues, PREDECESSOR), PREDECESSOR_TEXT);
            writeVerbatim(join(venues, SUCCESSOR), SUCCESSOR_TEXT);
            assert.deepEqual(runInherit(request), {
                code: 0,
                message: inheritUpdated(SUCCESSOR, 1, PREDECESSOR),
                raised: SUCCESSOR,
            });
            assert.deepEqual(runInherit(request), { code: 0, message: inheritUnchanged(SUCCESSOR), raised: SUCCESSOR });
        });
    });
});