# test.coordination/core/readers/source.reader.test.ts

> 18 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-coordination-core-readers-source-reader-test-ts
Source text: https://banes-lab.com/source/testing/test.coordination/core/readers/source.reader.test.ts.txt

Listed in [test.coordination/core/readers](https://banes-lab.com/api/source/testing/test.coordination/core/readers.md), after [test.coordination/core/readers/snapshot.reader.test.ts](https://banes-lab.com/source/testing/test.coordination/core/readers/snapshot.reader.test.ts.md) and before [test.coordination/core/readers/template.reader.test.ts](https://banes-lab.com/source/testing/test.coordination/core/readers/template.reader.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, it } from "vitest";
import { importSource, importSources } from "coordination-surface/tools/core/readers/source.reader.ts";
import assert from "node:assert/strict";
import { fileURLToPath } from "node:url";

const SIBLING = fileURLToPath(import.meta.resolve("coordination-surface/tools/core/readers/json.reader.ts"));

describe("importSource and importSources", () => {
    it("loads a module's exports, and reports a module that cannot load instead of throwing", async () => {
        const results = await importSources([SIBLING, `${SIBLING}.missing.ts`]);
        assert.deepEqual(
            results.map((result) => [typeof result.exports?.["tryParse"], result.error === null]),
            [
                ["function", true],
                ["undefined", false],
            ],
        );
        assert.equal((await importSource(SIBLING)).file, SIBLING);
    });
});
```
