# test.govlab/patterns/core/parsers/dependency.parser.test.ts

> 15 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-patterns-core-parsers-dependency-parser-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/patterns/core/parsers/dependency.parser.test.ts.txt

Listed in [test.govlab/patterns/core/parsers](https://banes-lab.com/api/source/testing/test.govlab/patterns/core/parsers.md), after [test.govlab/patterns/core/parsers/definition.parser.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/core/parsers/definition.parser.test.ts.md) and before [test.govlab/patterns/core/parsers/field.parser.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/core/parsers/field.parser.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, expect, it } from "vitest";
import { codeImports } from "@govlab/patterns/core/parsers/dependency.parser.ts";
import { parseCode } from "@govlab/code-parse";

const SOURCE =
    'import { greet as sayHi, other } from "@scope/foo";\nimport def from "./x.ts";\nimport { a } from \'./one.ts\';\n';

describe("codeImports", () => {
    it("reads each named import's quote-stripped source and imported names, skipping default imports", async () => {
        const root = await parseCode(SOURCE, "typescript");
        const bindings = root === null ? [] : codeImports(root);
        expect(bindings).toStrictEqual([
            { importedNames: ["greet", "other"], source: "@scope/foo" },
            { importedNames: ["a"], source: "./one.ts" },
        ]);
    });
});
```
