# test.govlab/quality/core/validators/concern.validator.test.ts

> 21 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-quality-core-validators-concern-validator-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/quality/core/validators/concern.validator.test.ts.txt

Listed in [test.govlab/quality/core/validators](https://banes-lab.com/api/source/testing/test.govlab/quality/core/validators.md), after [test.govlab/quality/core/validators/binding.validator.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/validators/binding.validator.test.ts.md) and before [test.govlab/quality/core/validators/constants.validator.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/validators/constants.validator.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, expect, it } from "vitest";
import { validateConcerns } from "@govlab/quality/core/validators/concern.validator.ts";

const THREE = 3;
const VALID = new Set(["deep-nesting"]);

const concerns = function concerns(entries: [string, boolean | number][]): Record<string, boolean | number> {
    return Object.fromEntries(entries);
};

describe("validateConcerns", () => {
    it("accepts a map of known concepts", () => {
        const input = concerns([["deep-nesting", THREE]]);
        expect(validateConcerns(input, VALID)).toStrictEqual(input);
    });

    it("rejects an array and an unknown concept", () => {
        expect(() => validateConcerns([], VALID)).toThrow();
        expect(() => validateConcerns(concerns([["nope", true]]), VALID)).toThrow();
    });

    it("accepts any key when the concept set is empty", () => {
        const input = concerns([["nope", true]]);
        expect(validateConcerns(input, new Set())).toStrictEqual(input);
    });
});
```
