# test.build/core/selectors/site.selector.test.ts

> 43 lines of code and 0 definitions.

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

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

## Contained in

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

## Source

```typescript
import { DISCOVERY, GUIDE, GUIDE_TAB, HOME, TERMS } from "../converters/site.fixture.ts";
import { describe, expect, it } from "vitest";
import {
    fullTextFileOf,
    fullTextParts,
    fullTextRoutes,
    isFullTextRoute,
    routeContentOf,
    routeOf,
    tabContentOf,
} from "@banes-lab/build-scripts/core/selectors/site.selector.ts";

describe("isFullTextRoute, fullTextRoutes, fullTextFileOf and fullTextParts", () => {
    it("keeps every route outside the reference pages and gives each teaching page its own part file", () => {
        expect(isFullTextRoute({ page: "terms" })).toBe(true);
        expect(isFullTextRoute({ page: "ontology" })).toBe(false);
        expect(isFullTextRoute({ page: "anatomy" })).toBe(false);
        expect(fullTextRoutes(DISCOVERY)).toStrictEqual([HOME, TERMS, GUIDE]);
        expect(fullTextFileOf("terms")).toBe("llms-full/terms.txt");
        expect(fullTextParts(DISCOVERY).map((part) => [part.file, part.label, part.routes.length])).toStrictEqual([
            ["llms-full/home.txt", HOME.label, 1],
            ["llms-full/terms.txt", TERMS.label, 2],
        ]);
    });
});

describe("tabContentOf", () => {
    it("finds a tab by id inside tabbed content and nothing in any other content", () => {
        expect(tabContentOf(TERMS.content, "guide")).toBe(GUIDE_TAB);
        expect(tabContentOf(HOME.content, "guide")).toBeUndefined();
    });
});

describe("routeContentOf", () => {
    it("gives a page route its page's content and a tab route that tab alone", () => {
        expect(routeContentOf(DISCOVERY, TERMS)).toBe(TERMS.content);
        expect(routeContentOf(DISCOVERY, GUIDE)).toBe(GUIDE_TAB);
    });
});

describe("routeOf", () => {
    it("resolves a page or a tab route by page id and tab id", () => {
        expect(routeOf(DISCOVERY, "terms", "guide")).toBe(GUIDE);
        expect(routeOf(DISCOVERY, "terms", null)).toBe(TERMS);
        expect(routeOf(DISCOVERY, "terms", "gone")).toBeUndefined();
    });
});
```
