# test.coordination/core/validators/declaration.validator.test.ts

> 26 lines of code and 0 definitions.

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

Listed in [test.coordination/core/validators](https://banes-lab.com/api/source/testing/test.coordination/core/validators.md), after [test.coordination/core/validators/coverage.validator.test.ts](https://banes-lab.com/source/testing/test.coordination/core/validators/coverage.validator.test.ts.md) and before [test.coordination/core/validators/emission.validator.test.ts](https://banes-lab.com/source/testing/test.coordination/core/validators/emission.validator.test.ts.md).

## Contained in

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

## Source

```typescript
import { axisConsumers, silentOnItsOwnAxis } from "coordination-surface/tools/core/validators/declaration.validator.ts";
import { describe, it } from "vitest";
import assert from "node:assert/strict";

const SOURCE = [
    "const isFrozen = function isFrozen(path) {",
    "    const held = lifetimeOf(path);",
    "    return held.retention === 'kept';",
    "};",
    "const isRemovable = function isRemovable(path) {",
    "    return lifetimeOf(path).removal !== 'none';",
    "};",
    "const describeFrozen = function describeFrozen(text) {",
    "    return text.length;",
    "};",
    'const label = "function isFrozen(x)";',
].join("\n");

describe("axisConsumers and silentOnItsOwnAxis", () => {
    it("find each predicate named for an axis that reaches the lifetime, and whether it reads that axis", () => {
        const consumers = axisConsumers(SOURCE, ["lifetimeOf"]);
        assert.deepEqual(consumers, [
            { asserted: "mutability", line: 1, name: "isFrozen", read: ["retention"] },
            { asserted: "removal", line: 5, name: "isRemovable", read: ["removal"] },
        ]);
        assert.deepEqual(consumers.map(silentOnItsOwnAxis), [true, false]);
    });
});
```
