visualize_dataset / src /utils /__tests__ /localDataset.test.ts
alexis779
feat: local dataset paths, API route, and versioned fetch routing
be47857
raw
history blame
1.97 kB
import { describe, expect, test } from "bun:test";
import {
decodeLocalDatasetSegment,
encodeLocalDatasetRoot,
isLocalRepoId,
localDatasetFileApiPath,
localRepoIdFromAbsolutePath,
looksLikeAbsoluteFilesystemPath,
normalizeUserLocalPathInput,
tryParseLocalDatasetFileApiUrl,
} from "@/utils/localDataset";
describe("localDataset", () => {
test("encode/decode round trip for unix path", () => {
const p = "/tmp/aic_lerobot";
const enc = encodeLocalDatasetRoot(p);
expect(decodeLocalDatasetSegment(enc)).toBe(p);
});
test("localRepoIdFromAbsolutePath and isLocalRepoId", () => {
const id = localRepoIdFromAbsolutePath("/data/foo");
expect(isLocalRepoId(id)).toBe(true);
expect(isLocalRepoId("lerobot/pusht")).toBe(false);
});
test("looksLikeAbsoluteFilesystemPath", () => {
expect(looksLikeAbsoluteFilesystemPath("/tmp/x")).toBe(true);
expect(looksLikeAbsoluteFilesystemPath("file:///tmp/x")).toBe(true);
expect(looksLikeAbsoluteFilesystemPath("C:\\data\\x")).toBe(true);
expect(looksLikeAbsoluteFilesystemPath("lerobot/foo")).toBe(false);
});
test("normalizeUserLocalPathInput strips file://", () => {
expect(normalizeUserLocalPathInput("file:///tmp/a")).toBe("/tmp/a");
});
test("localDatasetFileApiPath builds query string", () => {
const q = localDatasetFileApiPath("abc", "meta/info.json");
expect(q).toContain("/api/local-dataset/file?");
expect(q).toContain("root=abc");
expect(q).toContain("rel=");
});
test("tryParseLocalDatasetFileApiUrl", () => {
const u =
"http://127.0.0.1:3000/api/local-dataset/file?root=x&rel=meta%2Finfo.json";
expect(tryParseLocalDatasetFileApiUrl(u)).toEqual({
rootEncoded: "x",
relPath: "meta/info.json",
});
expect(
tryParseLocalDatasetFileApiUrl(
"/api/local-dataset/file?root=y&rel=data%2F0.parquet",
),
).toEqual({ rootEncoded: "y", relPath: "data/0.parquet" });
});
});