release: WRNexusJS 0.8.3
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import { expect, test } from "bun:test";
|
||||
import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import { parse, resolveWrnImports } from "../src/index.ts";
|
||||
|
||||
test("configured import aliases resolve application client modules", () => {
|
||||
const root = mkdtempSync(join(tmpdir(), "wrnexus-import-alias-"));
|
||||
const app = join(root, "app");
|
||||
const page = join(app, "settings.wrn");
|
||||
const helper = join(app, "client", "storage.ts");
|
||||
const clientIndex = join(app, "client", "index.ts");
|
||||
mkdirSync(join(app, "client"), { recursive: true });
|
||||
writeFileSync(helper, "export function persist(value: unknown) { return value; }\n");
|
||||
writeFileSync(clientIndex, "export const storageReady = true;\n");
|
||||
|
||||
try {
|
||||
const ast = parse(`import { persist } from "~/client/storage.ts"
|
||||
page Settings { view { <button>Save</button> } }`);
|
||||
const [resolved] = resolveWrnImports(ast.structuredImports, page, {
|
||||
appRoot: root,
|
||||
mode: "explicit",
|
||||
aliases: { "~": "./app" },
|
||||
});
|
||||
expect(resolved?.diagnostic).toBeUndefined();
|
||||
expect(resolved?.resolved).toBe(helper);
|
||||
|
||||
const directoryAst = parse(`import { storageReady } from "~client"
|
||||
page ClientIndex { view { <p>Ready</p> } }`);
|
||||
const [directoryResolved] = resolveWrnImports(directoryAst.structuredImports, page, {
|
||||
appRoot: root,
|
||||
mode: "explicit",
|
||||
aliases: { "~client": "./app/client" },
|
||||
});
|
||||
expect(directoryResolved?.diagnostic).toBeUndefined();
|
||||
expect(directoryResolved?.resolved).toBe(clientIndex);
|
||||
} finally {
|
||||
rmSync(root, { recursive: true, force: true });
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user