fix: normalize symlink path assertions in control-ui asset tests (openclaw#14637) thanks @aynorica

This commit is contained in:
Gustavo Madeira Santana
2026-02-12 14:27:04 -05:00
parent 095e412399
commit 07b85041dc

View File

@@ -12,6 +12,14 @@ async function trySymlink(target: string, linkPath: string): Promise<boolean> {
return false;
}
}
async function canonicalPath(p: string): Promise<string> {
try {
return await fs.realpath(p);
} catch {
return path.resolve(p);
}
}
import {
resolveControlUiDistIndexHealth,
resolveControlUiDistIndexPath,
@@ -252,8 +260,10 @@ describe("control UI assets helpers", () => {
return; // symlinks not supported (Windows CI)
}
expect(resolveControlUiRootSync({ argv1: path.join(bin, "openclaw") })).toBe(
path.join(realPkg, "dist", "control-ui"),
const resolvedRoot = resolveControlUiRootSync({ argv1: path.join(bin, "openclaw") });
expect(resolvedRoot).not.toBeNull();
expect(await canonicalPath(resolvedRoot ?? "")).toBe(
await canonicalPath(path.join(realPkg, "dist", "control-ui")),
);
} finally {
await fs.rm(tmp, { recursive: true, force: true });
@@ -279,7 +289,9 @@ describe("control UI assets helpers", () => {
return; // symlinks not supported (Windows CI)
}
expect(await resolveOpenClawPackageRoot({ argv1: path.join(bin, "openclaw") })).toBe(realPkg);
const packageRoot = await resolveOpenClawPackageRoot({ argv1: path.join(bin, "openclaw") });
expect(packageRoot).not.toBeNull();
expect(await canonicalPath(packageRoot ?? "")).toBe(await canonicalPath(realPkg));
} finally {
await fs.rm(tmp, { recursive: true, force: true });
}
@@ -304,8 +316,10 @@ describe("control UI assets helpers", () => {
return; // symlinks not supported (Windows CI)
}
expect(await resolveControlUiDistIndexPath(path.join(bin, "openclaw"))).toBe(
path.join(realPkg, "dist", "control-ui", "index.html"),
const indexPath = await resolveControlUiDistIndexPath(path.join(bin, "openclaw"));
expect(indexPath).not.toBeNull();
expect(await canonicalPath(indexPath ?? "")).toBe(
await canonicalPath(path.join(realPkg, "dist", "control-ui", "index.html")),
);
} finally {
await fs.rm(tmp, { recursive: true, force: true });