# test.build/core/resolvers/asset.resolver.test.ts

> 25 lines of code and 0 definitions.

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

Listed in [test.build/core/resolvers](https://banes-lab.com/api/source/testing/test.build/core/resolvers.md), before [test.build/core/resolvers/binding.resolver.test.ts](https://banes-lab.com/source/testing/test.build/core/resolvers/binding.resolver.test.ts.md).

## Contained in

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

## Source

```typescript
import { describe, expect, it } from "vitest";
import {
    digestOf,
    digestedFileName,
    extensionOf,
    stripCompression,
    toPosix,
} from "@banes-lab/build-scripts/core/resolvers/asset.resolver.ts";

const SCRIPT = "assets/a.js";

describe("digestOf and digestedFileName", () => {
    it("places the content digest between the stem and the extension", () => {
        expect(digestedFileName("a.", "x", ".b")).toBe(`a.${digestOf("x")}.b`);
        expect(digestOf("x")).not.toBe(digestOf("y"));
    });
});

describe("toPosix, extensionOf and stripCompression", () => {
    it("normalizes separators, reads the last extension and drops a precompressed suffix", () => {
        expect(toPosix(String.raw`assets\a.js`)).toBe(SCRIPT);
        expect(extensionOf(`${SCRIPT}.gz`)).toBe(".gz");
        expect(extensionOf("README")).toBe("");
        expect(stripCompression(`${SCRIPT}.gz`)).toBe(SCRIPT);
        expect(stripCompression(`${SCRIPT}.br`)).toBe(SCRIPT);
        expect(stripCompression(SCRIPT)).toBe(SCRIPT);
    });
});
```
