# test.govlab/quality/core/adapters/tool.prettier.adapter.test.ts

> 41 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-quality-core-adapters-tool-prettier-adapter-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/quality/core/adapters/tool.prettier.adapter.test.ts.txt

Listed in [test.govlab/quality/core/adapters](https://banes-lab.com/api/source/testing/test.govlab/quality/core/adapters.md), after [test.govlab/quality/core/adapters/tool.oxlint.adapter.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/adapters/tool.oxlint.adapter.test.ts.md) and before [test.govlab/quality/core/adapters/tool.pylint.adapter.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/adapters/tool.pylint.adapter.test.ts.md).

## Contained in

- [test.govlab/quality/core/adapters](https://banes-lab.com/anatomy/testing/folder-testing-test-govlab-quality-core-adapters.md)

## Source

```typescript
import { afterAll, beforeAll, describe, expect, it } from "vitest";
import {
    govlabPrettierConfig,
    govlabPrettierIgnore,
    runPrettier,
} from "@govlab/quality/core/adapters/tool.prettier.adapter.ts";
import { mkdirSync, readFileSync, rmSync } from "node:fs";
import os from "node:os";
import path from "node:path";
import process from "node:process";
import { writeVerbatim } from "@govlab/canonical-write";

describe("prettier config", () => {
    it("builds the config object and an ignore list that carries the master exclusions", async () => {
        const root = process.cwd();
        const ignore = await govlabPrettierIgnore(root);
        expect(typeof (await govlabPrettierConfig(root))).toBe("object");
        expect(Array.isArray(ignore)).toBe(true);
    });
});

describe("runPrettier invokes the prettier CLI", () => {
    const fixture = path.join(os.tmpdir(), "govlab-prettier-cli-fixture");
    const target = path.join(fixture, "styles.css");

    beforeAll(() => {
        mkdirSync(fixture, { recursive: true });
        writeVerbatim(target, ".x{color:red}\n");
    });

    afterAll(() => {
        rmSync(fixture, { force: true, recursive: true });
    });

    it("formats the given paths in place and reports no findings on success", async () => {
        const result = await runPrettier({
            ecosystem: "css",
            fix: true,
            languageId: "css",
            paths: [target],
            root: process.cwd(),
        });
        expect(result.findings).toEqual([]);
        expect(readFileSync(target, "utf8")).toContain("color: red;");
    });
});
```
