Spaces:
Running
Running
| 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" }); | |
| }); | |
| }); | |