# test.coordination/core/factories/vocabulary.factory.test.ts

> 15 lines of code and 0 definitions.

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

Listed in [test.coordination/core/factories](https://banes-lab.com/api/source/testing/test.coordination/core/factories.md), after [test.coordination/core/factories/venue.factory.test.ts](https://banes-lab.com/source/testing/test.coordination/core/factories/venue.factory.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, it } from "vitest";
import assert from "node:assert/strict";
import { offVocabularyFinding } from "coordination-surface/tools/core/factories/vocabulary.factory.ts";

describe("offVocabularyFinding", () => {
    it("files an undeclared value at its line and names the closed set it should come from", () => {
        const finding = offVocabularyFinding({
            closed: ["open", "frozen"],
            declared: { axis: "mutability", line: 6, value: "sealed" },
            target: "taxonomy/lifetime.md",
        });
        assert.equal(finding.rule, "vocabulary/undeclaredValue");
        assert.deepEqual([finding.line, finding.locus, finding.expected], [6, "mutability", "open frozen"]);
        assert.equal(finding.remediation.from, "sealed");
    });
});
```
