# core/validators/coverage.validator.ts

> 18 lines of code and 5 definitions.

Tree: Project Scripts
Language: typescript
Layer: processing
Canonical: https://banes-lab.com/anatomy/scripts#file-scripts-core-validators-coverage-validator-ts
Source text: https://banes-lab.com/source/scripts/core/validators/coverage.validator.ts.txt

Listed in [core/validators](https://banes-lab.com/api/source/scripts/core/validators.md), before [core/validators/credential.validator.ts](https://banes-lab.com/source/scripts/core/validators/credential.validator.ts.md).

## Definitions

- `countAt` (lexical_declaration, line 5)
- `floorVerdict` (lexical_declaration, line 10, exported)
- `found` (lexical_declaration, line 6)
- `passed` (lexical_declaration, line 11, exported)
- `failed` (lexical_declaration, line 12, exported)

## Contained in

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

## Uses

- [configuration/strings/coverage.strings.ts](https://banes-lab.com/source/scripts/configuration/strings/coverage.strings.ts.md)

## Linked from

- [configuration/strings](https://banes-lab.com/anatomy/scripts/folder-scripts-configuration-strings.md)
- [core/validators](https://banes-lab.com/anatomy/scripts/folder-scripts-core-validators.md)

## Source

```typescript
import { belowFloor, failuresFound, floorHeld } from "#configuration/strings/coverage.strings";
import type { CheckVerdict } from "#types/validation.types";
import { isRecord } from "@banes-lab/build-scripts/core/selectors/base.selector.ts";

const countAt = function countAt(report: unknown, key: string): number {
    const found = isRecord(report) ? report[key] : undefined;
    return typeof found === "number" ? found : 0;
};

export const floorVerdict = function floorVerdict(report: unknown, floor: number): CheckVerdict {
    const passed = countAt(report, "numPassedTests");
    const failed = countAt(report, "numFailedTests");
    if (failed > 0) {
        return { held: false, text: failuresFound(failed) };
    }
    if (passed < floor) {
        return { held: false, text: belowFloor(passed, countAt(report, "numTotalTests"), floor) };
    }
    return { held: true, text: floorHeld(passed, floor) };
};
```
