# test.build/core/guards/site.guard.test.ts

> 19 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-build-core-guards-site-guard-test-ts
Source text: https://banes-lab.com/source/testing/test.build/core/guards/site.guard.test.ts.txt

Listed in [test.build/core/guards](https://banes-lab.com/api/source/testing/test.build/core/guards.md), after [test.build/core/guards/catalog.guard.test.ts](https://banes-lab.com/source/testing/test.build/core/guards/catalog.guard.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, expect, it } from "vitest";
import type { SiteState } from "@banes-lab/build-scripts/types/site.types.ts";
import { composeOntology } from "@banes-lab/build-scripts/core/coordinators/ontology.coordinator.ts";
import { missingOntology } from "@banes-lab/build-scripts/configuration/strings/site.strings.ts";
import { ontologyOf } from "@banes-lab/build-scripts/core/guards/site.guard.ts";

const STATE: SiteState = {
    diagrams: { attribute: "data-walk", orderOf: () => "" },
    mode: "build",
    ontology: null,
    outDir: "out",
    root: "root",
};

describe("ontologyOf", () => {
    it("refuses a step that reads the ontology before the ontology step gave it, and hands it over after", () => {
        expect(() => ontologyOf(STATE, "graph")).toThrow(missingOntology("graph"));
        const ontology = composeOntology();
        expect(ontologyOf({ ...STATE, ontology }, "graph")).toBe(ontology);
    });
});
```
