# test.govlab/quality/core/resolvers/package.resolver.test.ts

> 42 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-quality-core-resolvers-package-resolver-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/quality/core/resolvers/package.resolver.test.ts.txt

Listed in [test.govlab/quality/core/resolvers](https://banes-lab.com/api/source/testing/test.govlab/quality/core/resolvers.md), after [test.govlab/quality/core/resolvers/layer.resolver.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/resolvers/layer.resolver.test.ts.md) and before [test.govlab/quality/core/resolvers/plan.resolver.test.ts](https://banes-lab.com/source/testing/test.govlab/quality/core/resolvers/plan.resolver.test.ts.md).

## Contained in

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

## Source

```typescript
import {
    enclosingPackages,
    findPackageRoot,
    packageRelOf,
    packageRootOf,
    relFromRoot,
    withinPackage,
} from "@govlab/quality/core/resolvers/package.resolver.ts";
import { expect, test } from "vitest";
import { ROOT } from "@ssot/paths/anchor";
import { join } from "node:path";
import { relativePath } from "@ssot/paths";

const memberFile = join(ROOT, relativePath("govlab.quality"), "index.ts");
const memberRel = `${relativePath("govlab.quality")}/index.ts`;
const nestedFile = join(ROOT, relativePath("govlab.utils.argv"), "index.ts");
const coordination = join(ROOT, relativePath("app.coordination")).split("\\").join("/");

test("relFromRoot resolves a file under the workspace root and refuses one outside it", () => {
    expect(relFromRoot(memberFile)).toBe(memberRel);
    expect(relFromRoot("")).toBeNull();
    expect(relFromRoot(join(ROOT, "..", "elsewhere", "a.ts"))).toBeNull();
});

test("packageRelOf resolves the nearest member that declares a package, at any depth", () => {
    expect(packageRelOf(memberFile)).toBe(relativePath("govlab.quality"));
    expect(packageRelOf(nestedFile)).toBe(relativePath("govlab.utils.argv"));
    expect(packageRelOf(join(ROOT, "package.json"))).toBeNull();
});

test("packageRootOf returns the absolute member root and refuses an empty path", () => {
    expect(packageRootOf(memberFile)?.endsWith(relativePath("govlab.quality"))).toBe(true);
    expect(packageRootOf("")).toBeNull();
});

test("withinPackage returns the path a file occupies inside its own member", () => {
    expect(withinPackage(memberFile)).toBe("index.ts");
    expect(withinPackage("")).toBeNull();
});

test("findPackageRoot walks up to the folder holding a package manifest", () => {
    expect(findPackageRoot(`${coordination}/tools`)).toBe(`${coordination}/tools`);
});

test("enclosingPackages lists each package above a nested one and stops below the workspace root", () => {
    const enclosing = enclosingPackages(`${coordination}/tools`);
    expect(enclosing[0]).toBe(coordination);
    expect(enclosing).not.toContain(ROOT.split("\\").join("/"));
});
```
