# test.govlab/context/core/stores/architecture.store.test.ts

> 25 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-context-core-stores-architecture-store-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/context/core/stores/architecture.store.test.ts.txt

Listed in [test.govlab/context/core/stores](https://banes-lab.com/api/source/testing/test.govlab/context/core/stores.md), after [test.govlab/context/core/stores/algorithm.store.test.ts](https://banes-lab.com/source/testing/test.govlab/context/core/stores/algorithm.store.test.ts.md) and before [test.govlab/context/core/stores/check.store.test.ts](https://banes-lab.com/source/testing/test.govlab/context/core/stores/check.store.test.ts.md).

## Contained in

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

## Source

```typescript
import { ArchitectureStore } from "@govlab/context/core/stores/architecture.store.ts";
import assert from "node:assert/strict";
import { plantedPrinciple } from "../validators/ontology.fixture.ts";
import { test } from "vitest";

const store = new ArchitectureStore({
    data: [
        plantedPrinciple("parent-rule", { requires: ["Child Alias", "a free label"] }),
        plantedPrinciple("child-rule", { aliases: ["Child Alias"] }),
    ],
});

test("resolve follows an alias to its principle and keeps a free label as text", () => {
    const resolved = store.resolve(["parent-rule", "ghost"]);
    assert.deepEqual(
        resolved.principles.map((principle) => principle.id),
        ["parent-rule"],
    );
    const [child, label] = resolved.edges.requires;
    assert.equal(typeof child === "object" ? child.id : child, "child-rule");
    assert.equal(label, "a free label");
    assert.equal(resolved.refactorRecipes[0]?.id, "parent-rule");
});

test("validateOntology reports the free label as a dangling edge and resolves the alias", () => {
    const targets = store.validateOntology().danglingEdges.map((edge) => edge.target);
    assert.deepEqual(targets, ["a free label"]);
});
```
