# test.govlab/patterns/configuration/strings/report.strings.test.ts

> 45 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-patterns-configuration-strings-report-strings-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/patterns/configuration/strings/report.strings.test.ts.txt

Listed in [test.govlab/patterns/configuration/strings](https://banes-lab.com/api/source/testing/test.govlab/patterns/configuration/strings.md), after [test.govlab/patterns/configuration/strings/pattern.strings.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/configuration/strings/pattern.strings.test.ts.md) and before [test.govlab/patterns/configuration/strings/representation.strings.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/configuration/strings/representation.strings.test.ts.md).

## Contained in

- [test.govlab/patterns/configuration/strings](https://banes-lab.com/anatomy/testing/folder-testing-test-govlab-patterns-configuration-strings.md)

## Source

```typescript
import { describe, expect, it } from "vitest";
import {
    driftModules,
    healNote,
    healedModules,
    masterWritten,
    moduleDrift,
    moduleWritten,
    modulesClean,
    nestedCount,
    nestedTip,
    pageLabel,
    rewrittenModules,
    summaryLine,
    svgCollection,
    unreadableManifest,
    writeSummary,
} from "@govlab/patterns/configuration/strings/report.strings.ts";

const THREE = 3;

describe("the report strings", () => {
    it("compose the page labels and the summary line", () => {
        expect(pageLabel("mod", "core")).toBe("mod / core");
        expect(nestedTip("core", THREE, 2, 1)).toContain("3 nodes");
        expect(summaryLine(THREE, 1, nestedCount(2))).toContain("2 nested concerns");
    });

    it("end every log line with a line break", () => {
        const lines = [
            healNote("up to date"),
            moduleWritten("mod", THREE),
            writeSummary(1, THREE),
            moduleDrift("mod"),
            healedModules(["a"]),
            rewrittenModules(["a"]),
            driftModules(["a"]),
            modulesClean(THREE),
            svgCollection(1, 0, "dir"),
            masterWritten("path"),
            unreadableManifest("path", "reason"),
        ];
        expect(lines.every((line) => line.startsWith("[hex] ") && line.endsWith("\n"))).toBe(true);
    });

    it("count what a write pass skipped", () => {
        expect(writeSummary(1, THREE)).toBe("[hex] regenerated 1, skipped 2 of 3 module(s)\n");
    });
});
```
