# test.build/core/loaders/reference.loader.test.ts

> 27 lines of code and 0 definitions.

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

Listed in [test.build/core/loaders](https://banes-lab.com/api/source/testing/test.build/core/loaders.md), after [test.build/core/loaders/metric.loader.test.ts](https://banes-lab.com/source/testing/test.build/core/loaders/metric.loader.test.ts.md) and before [test.build/core/loaders/search.loader.test.ts](https://banes-lab.com/source/testing/test.build/core/loaders/search.loader.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, expect, it } from "vitest";
import { mkdtempSync, rmSync } from "node:fs";
import { join } from "node:path";
import { referenceTargetsOf } from "@banes-lab/build-scripts/core/loaders/reference.loader.ts";
import { tmpdir } from "node:os";
import { writeVerbatim } from "@govlab/canonical-write";

describe("referenceTargetsOf", () => {
    it("reads a references asset's channel and binding targets, and none from an absent file", () => {
        const folder = mkdtempSync(join(tmpdir(), "reference-"));
        const references = {
            sites: [1, 0, 0],
            spans: {},
            strings: { "a.ts": { kind: "file", path: "a.ts" } },
            targets: [{ kind: "file", path: "b.ts" }],
            words: {},
        };
        writeVerbatim(join(folder, "references.json"), JSON.stringify(references));
        const targets = referenceTargetsOf(join(folder, "references.json"));
        const absent = referenceTargetsOf(join(folder, "absent.json"));
        rmSync(folder, { force: true, recursive: true });
        expect(targets).toStrictEqual([
            { kind: "file", path: "a.ts" },
            { kind: "file", path: "b.ts" },
        ]);
        expect(absent).toStrictEqual([]);
    });
});
```
