# test.govlab/patterns/core/converters/finding.tree.converter.test.ts

> 12 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-patterns-core-converters-finding-tree-converter-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/patterns/core/converters/finding.tree.converter.test.ts.txt

Listed in [test.govlab/patterns/core/converters](https://banes-lab.com/api/source/testing/test.govlab/patterns/core/converters.md), after [test.govlab/patterns/core/converters/finding.sequence.converter.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/core/converters/finding.sequence.converter.test.ts.md) and before [test.govlab/patterns/core/converters/finding.vector.converter.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/core/converters/finding.vector.converter.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, expect, it } from "vitest";
import { TreeAccumulator } from "@govlab/patterns/core/aggregators/representation.tree.aggregator.ts";
import { treeFindings } from "@govlab/patterns/core/converters/finding.tree.converter.ts";

describe("treeFindings", () => {
    it("reports the composition and the structure of nested records", () => {
        const accumulator = new TreeAccumulator("meta");
        accumulator.update([{ meta: { a: 1, b: { c: "x" } } }, { meta: { a: 2 } }]);
        const findings = treeFindings("meta", accumulator.result());
        expect(findings.map((finding) => finding.name)).toStrictEqual(["composition", "structure"]);
        expect(findings.every((finding) => finding.support === 2)).toBe(true);
    });
});
```
