test: add home relative path coverage

This commit is contained in:
Peter Steinberger 2026-03-14 00:26:57 +00:00
parent 285b50c549
commit 56798bd811
1 changed files with 36 additions and 1 deletions

View File

@ -1,6 +1,11 @@
import path from "node:path"; import path from "node:path";
import { describe, expect, it } from "vitest"; import { describe, expect, it } from "vitest";
import { expandHomePrefix, resolveEffectiveHomeDir, resolveRequiredHomeDir } from "./home-dir.js"; import {
expandHomePrefix,
resolveEffectiveHomeDir,
resolveHomeRelativePath,
resolveRequiredHomeDir,
} from "./home-dir.js";
describe("resolveEffectiveHomeDir", () => { describe("resolveEffectiveHomeDir", () => {
it.each([ it.each([
@ -123,3 +128,33 @@ describe("expandHomePrefix", () => {
expect(expandHomePrefix(input, opts)).toBe(expected); expect(expandHomePrefix(input, opts)).toBe(expected);
}); });
}); });
describe("resolveHomeRelativePath", () => {
it("returns blank input unchanged", () => {
expect(resolveHomeRelativePath(" ")).toBe("");
});
it("resolves trimmed relative and absolute paths", () => {
expect(resolveHomeRelativePath(" ./tmp/file.txt ")).toBe(path.resolve("./tmp/file.txt"));
expect(resolveHomeRelativePath(" /tmp/file.txt ")).toBe(path.resolve("/tmp/file.txt"));
});
it("expands tilde paths using the resolved home directory", () => {
expect(
resolveHomeRelativePath("~/docs", {
env: { OPENCLAW_HOME: "/srv/openclaw-home" } as NodeJS.ProcessEnv,
}),
).toBe(path.resolve("/srv/openclaw-home/docs"));
});
it("falls back to cwd when tilde paths have no home source", () => {
expect(
resolveHomeRelativePath("~", {
env: {} as NodeJS.ProcessEnv,
homedir: () => {
throw new Error("no home");
},
}),
).toBe(path.resolve(process.cwd()));
});
});