# test.coordination/core/generators/agenda.generator.test.ts

> 27 lines of code and 0 definitions.

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

Listed in [test.coordination/core/generators](https://banes-lab.com/api/source/testing/test.coordination/core/generators.md), before [test.coordination/core/generators/binding.generator.test.ts](https://banes-lab.com/source/testing/test.coordination/core/generators/binding.generator.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, it } from "vitest";
import { dirname, join, resolve } from "node:path";
import { mkdirSync, mkdtempSync, readFileSync } from "node:fs";
import { AGENDA } from "coordination-surface/tools/core/constants/blocking.constants.ts";
import assert from "node:assert/strict";
import { tmpdir } from "node:os";
import { writeAgendaIfUnmoved } from "coordination-surface/tools/core/generators/agenda.generator.ts";
import { writeVerbatim } from "@govlab/canonical-write";

const WITNESSED = "# Agenda\n- planned invariant\n";

const seeded = function seeded(): string {
    const root = mkdtempSync(join(tmpdir(), "coordination-agenda-"));
    mkdirSync(dirname(resolve(root, AGENDA)), { recursive: true });
    writeVerbatim(resolve(root, AGENDA), WITNESSED);
    return root;
};

describe("writeAgendaIfUnmoved", () => {
    it("writes the rendered agenda when the file still holds what was read", () => {
        const root = seeded();
        assert.equal(writeAgendaIfUnmoved(root, WITNESSED, "# Agenda\n- rendered\n"), true);
        assert.equal(readFileSync(resolve(root, AGENDA), "utf8"), "# Agenda\n- rendered\n");
    });

    it("refuses and leaves the file alone when it moved since it was read", () => {
        const root = seeded();
        assert.equal(writeAgendaIfUnmoved(root, "an older read", "# Agenda\n- rendered\n"), false);
        assert.equal(readFileSync(resolve(root, AGENDA), "utf8"), WITNESSED);
    });
});
```
