File size: 1,972 Bytes
be47857
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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" });
  });
});