# test.govlab/docs/core/counters/finding.counter.test.ts

> 14 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-docs-core-counters-finding-counter-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/docs/core/counters/finding.counter.test.ts.txt

Listed in [test.govlab/docs/core/counters](https://banes-lab.com/api/source/testing/test.govlab/docs/core/counters.md), before [test.govlab/docs/core/counters/source.counter.test.ts](https://banes-lab.com/source/testing/test.govlab/docs/core/counters/source.counter.test.ts.md).

## Contained in

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

## Source

```typescript
import { countFindings, sumCategories } from "@govlab/docs/core/counters/finding.counter.ts";
import { describe, expect, it } from "vitest";

describe("countFindings and sumCategories", () => {
    it("total an empty set to zero and sum each category across documents", () => {
        expect(countFindings({})).toBe(0);
        expect(countFindings({ broken: [{}, {}], spine: [{}] })).toBe(3);
        expect(Object.values(sumCategories([])).every((total) => total === 0)).toBe(true);
        const totals = sumCategories([
            { all: { broken: [{}] }, relDoc: "a.md" },
            { all: { broken: [{}], smell: [{}] }, relDoc: "b.md" },
        ]);
        expect(totals).toMatchObject({ broken: 2, smell: 1, spine: 0 });
    });
});
```
