import { describe, expect, it } from "vite-plus/test";import { isExplicitRelativePath, isUncPath, isWindowsAbsolutePath, isWindowsDrivePath, normalizeProjectPathForComparison, normalizeProjectPathForDispatch,} from "./path.ts"; describe("path helpers", () => { it("detects windows drive paths", () => { expect(isWindowsDrivePath("C:\\repo")).toBe(true); expect(isWindowsDrivePath("D:/repo")).toBe(true); expect(isWindowsDrivePath("/repo")).toBe(false); }); it("detects UNC paths", () => { expect(isUncPath("\\\\server\\share\\repo")).toBe(true); expect(isUncPath("C:\\repo")).toBe(false); }); it("detects windows absolute paths", () => { expect(isWindowsAbsolutePath("C:\\repo")).toBe(true); expect(isWindowsAbsolutePath("\\\\server\\share\\repo")).toBe(true); expect(isWindowsAbsolutePath("./repo")).toBe(false); }); it("detects explicit relative paths", () => { expect(isExplicitRelativePath(".")).toBe(true); expect(isExplicitRelativePath("..")).toBe(true); expect(isExplicitRelativePath("./repo")).toBe(true); expect(isExplicitRelativePath("..\\repo")).toBe(true); expect(isExplicitRelativePath("~/repo")).toBe(false); }); it("normalizes a bare Windows drive root the same as one with a trailing separator", () => { // `C:`, `C:\` and `C:/` all refer to the drive root and must compare equal. expect(normalizeProjectPathForDispatch("C:")).toBe("C:\\"); expect(normalizeProjectPathForComparison("C:")).toBe("c:\\"); expect(normalizeProjectPathForComparison("C:")).toBe(normalizeProjectPathForComparison("C:\\")); expect(normalizeProjectPathForComparison("C:")).toBe(normalizeProjectPathForComparison("C:/")); // Non-root drive paths keep their trailing separator trimmed as before. expect(normalizeProjectPathForDispatch("C:\\repo\\")).toBe("C:\\repo"); });});
import { describe, expect, it } from "vite-plus/test";
import {
isExplicitRelativePath,
isUncPath,
isWindowsAbsolutePath,
isWindowsDrivePath,
normalizeProjectPathForComparison,
normalizeProjectPathForDispatch,
} from "./path.ts";
describe("path helpers", () => {
it("detects windows drive paths", () => {
expect(isWindowsDrivePath("C:\\repo")).toBe(true);
expect(isWindowsDrivePath("D:/repo")).toBe(true);
expect(isWindowsDrivePath("/repo")).toBe(false);
});
it("detects UNC paths", () => {
expect(isUncPath("\\\\server\\share\\repo")).toBe(true);
expect(isUncPath("C:\\repo")).toBe(false);
});
it("detects windows absolute paths", () => {
expect(isWindowsAbsolutePath("C:\\repo")).toBe(true);
expect(isWindowsAbsolutePath("\\\\server\\share\\repo")).toBe(true);
expect(isWindowsAbsolutePath("./repo")).toBe(false);
});
it("detects explicit relative paths", () => {
expect(isExplicitRelativePath(".")).toBe(true);
expect(isExplicitRelativePath("..")).toBe(true);
expect(isExplicitRelativePath("./repo")).toBe(true);
expect(isExplicitRelativePath("..\\repo")).toBe(true);
expect(isExplicitRelativePath("~/repo")).toBe(false);
});
it("normalizes a bare Windows drive root the same as one with a trailing separator", () => {
// `C:`, `C:\` and `C:/` all refer to the drive root and must compare equal.
expect(normalizeProjectPathForDispatch("C:")).toBe("C:\\");
expect(normalizeProjectPathForComparison("C:")).toBe("c:\\");
expect(normalizeProjectPathForComparison("C:")).toBe(normalizeProjectPathForComparison("C:\\"));
expect(normalizeProjectPathForComparison("C:")).toBe(normalizeProjectPathForComparison("C:/"));
// Non-root drive paths keep their trailing separator trimmed as before.
expect(normalizeProjectPathForDispatch("C:\\repo\\")).toBe("C:\\repo");
});
});