# test.govlab/docs/core/plugins/manifest.quality.plugin.test.ts

> 26 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-docs-core-plugins-manifest-quality-plugin-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/docs/core/plugins/manifest.quality.plugin.test.ts.txt

Listed in [test.govlab/docs/core/plugins](https://banes-lab.com/api/source/testing/test.govlab/docs/core/plugins.md), after [test.govlab/docs/core/plugins/manifest.domain.plugin.test.ts](https://banes-lab.com/source/testing/test.govlab/docs/core/plugins/manifest.domain.plugin.test.ts.md) and before [test.govlab/docs/core/plugins/manifest.readme.plugin.test.ts](https://banes-lab.com/source/testing/test.govlab/docs/core/plugins/manifest.readme.plugin.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, expect, it } from "vitest";
import { isPlainRecord } from "@govlab/docs/core/predicates/record.predicate.ts";
import { plugin } from "@govlab/docs/core/plugins/manifest.quality.plugin.ts";

const KNOWN_CONCEPT = "content-strings";

const errorsOf = function errorsOf(record: Record<string, unknown>): string[] {
    return isPlainRecord(record) ? (plugin.section?.validate?.(record) ?? []) : [];
};

describe("the quality manifest plugin", () => {
    it("validates governedBy against the canonical concepts", () => {
        expect(errorsOf({ governedBy: [KNOWN_CONCEPT, "csp"] })).toStrictEqual([]);
        expect(errorsOf({})).toStrictEqual([]);
        expect(
            errorsOf({ governedBy: [KNOWN_CONCEPT, "not-a-concept"] }).some((error) => error.includes("not-a-concept")),
        ).toBe(true);
        expect(errorsOf({ governedBy: KNOWN_CONCEPT }).some((error) => error.includes("array"))).toBe(true);
        expect(plugin.section?.keys).toStrictEqual(["governedBy"]);
    });

    it("contributes a declared governedBy and leaves an undeclared module without one", () => {
        const entry = { category: null, value: "x" };
        plugin.contribute?.({ governedBy: [KNOWN_CONCEPT] }, entry);
        expect(entry).toHaveProperty("governedBy", [KNOWN_CONCEPT]);
        const empty = { category: null, value: "x" };
        plugin.contribute?.({}, empty);
        expect(empty).not.toHaveProperty("governedBy");
    });
});
```
