@dpkit/file
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
56 lines • 5.41 kB
JavaScript
import { describe, expect, it } from "vitest";
import { getCommonLocalBasepath } from "./path.js";
describe("getCommonLocalBasepath", () => {
it.each([
{
description: "same directory different files",
paths: ["data/table1.csv", "data/table2.csv"],
basepath: "data",
},
{
description: "nested directories",
paths: [
"data/nested/file1.csv",
"data/nested/file2.csv",
"data/file3.csv",
],
basepath: "data",
},
{
description: "single path",
paths: ["data/file.csv"],
basepath: "data",
},
{
description: "root level files",
paths: ["file1.csv", "file2.csv"],
basepath: "",
},
{
description: "different top-level directories",
paths: ["data1/file1.csv", "data2/file2.csv"],
basepath: "",
},
{
description: "empty paths array",
paths: [],
basepath: undefined,
},
{
description: "some path are remote",
paths: ["https://example.com/table.csv", "data/table.csv"],
basepath: "data",
},
{
description: "all paths are remote",
paths: [
"https://example.com/table1.csv",
"https://example.com/table2.csv",
],
basepath: undefined,
},
])("$description", ({ paths, basepath }) => {
expect(getCommonLocalBasepath(paths)).toEqual(basepath);
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGFja2FnZS9wYXRoLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVsRCxRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ3RDLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDTjtZQUNFLFdBQVcsRUFBRSxnQ0FBZ0M7WUFDN0MsS0FBSyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7WUFDN0MsUUFBUSxFQUFFLE1BQU07U0FDakI7UUFDRDtZQUNFLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsS0FBSyxFQUFFO2dCQUNMLHVCQUF1QjtnQkFDdkIsdUJBQXVCO2dCQUN2QixnQkFBZ0I7YUFDakI7WUFDRCxRQUFRLEVBQUUsTUFBTTtTQUNqQjtRQUNEO1lBQ0UsV0FBVyxFQUFFLGFBQWE7WUFDMUIsS0FBSyxFQUFFLENBQUMsZUFBZSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxNQUFNO1NBQ2pCO1FBQ0Q7WUFDRSxXQUFXLEVBQUUsa0JBQWtCO1lBQy9CLEtBQUssRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7WUFDakMsUUFBUSxFQUFFLEVBQUU7U0FDYjtRQUNEO1lBQ0UsV0FBVyxFQUFFLGlDQUFpQztZQUM5QyxLQUFLLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztZQUM3QyxRQUFRLEVBQUUsRUFBRTtTQUNiO1FBQ0Q7WUFDRSxXQUFXLEVBQUUsbUJBQW1CO1lBQ2hDLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLFNBQVM7U0FDcEI7UUFDRDtZQUNFLFdBQVcsRUFBRSxzQkFBc0I7WUFDbkMsS0FBSyxFQUFFLENBQUMsK0JBQStCLEVBQUUsZ0JBQWdCLENBQUM7WUFDMUQsUUFBUSxFQUFFLE1BQU07U0FDakI7UUFDRDtZQUNFLFdBQVcsRUFBRSxzQkFBc0I7WUFDbkMsS0FBSyxFQUFFO2dCQUNMLGdDQUFnQztnQkFDaEMsZ0NBQWdDO2FBQ2pDO1lBQ0QsUUFBUSxFQUFFLFNBQVM7U0FDcEI7S0FDRixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUN6QyxNQUFNLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDekQsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyBnZXRDb21tb25Mb2NhbEJhc2VwYXRoIH0gZnJvbSBcIi4vcGF0aC50c1wiXG5cbmRlc2NyaWJlKFwiZ2V0Q29tbW9uTG9jYWxCYXNlcGF0aFwiLCAoKSA9PiB7XG4gIGl0LmVhY2goW1xuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInNhbWUgZGlyZWN0b3J5IGRpZmZlcmVudCBmaWxlc1wiLFxuICAgICAgcGF0aHM6IFtcImRhdGEvdGFibGUxLmNzdlwiLCBcImRhdGEvdGFibGUyLmNzdlwiXSxcbiAgICAgIGJhc2VwYXRoOiBcImRhdGFcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIm5lc3RlZCBkaXJlY3Rvcmllc1wiLFxuICAgICAgcGF0aHM6IFtcbiAgICAgICAgXCJkYXRhL25lc3RlZC9maWxlMS5jc3ZcIixcbiAgICAgICAgXCJkYXRhL25lc3RlZC9maWxlMi5jc3ZcIixcbiAgICAgICAgXCJkYXRhL2ZpbGUzLmNzdlwiLFxuICAgICAgXSxcbiAgICAgIGJhc2VwYXRoOiBcImRhdGFcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInNpbmdsZSBwYXRoXCIsXG4gICAgICBwYXRoczogW1wiZGF0YS9maWxlLmNzdlwiXSxcbiAgICAgIGJhc2VwYXRoOiBcImRhdGFcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInJvb3QgbGV2ZWwgZmlsZXNcIixcbiAgICAgIHBhdGhzOiBbXCJmaWxlMS5jc3ZcIiwgXCJmaWxlMi5jc3ZcIl0sXG4gICAgICBiYXNlcGF0aDogXCJcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcImRpZmZlcmVudCB0b3AtbGV2ZWwgZGlyZWN0b3JpZXNcIixcbiAgICAgIHBhdGhzOiBbXCJkYXRhMS9maWxlMS5jc3ZcIiwgXCJkYXRhMi9maWxlMi5jc3ZcIl0sXG4gICAgICBiYXNlcGF0aDogXCJcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcImVtcHR5IHBhdGhzIGFycmF5XCIsXG4gICAgICBwYXRoczogW10sXG4gICAgICBiYXNlcGF0aDogdW5kZWZpbmVkLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwic29tZSBwYXRoIGFyZSByZW1vdGVcIixcbiAgICAgIHBhdGhzOiBbXCJodHRwczovL2V4YW1wbGUuY29tL3RhYmxlLmNzdlwiLCBcImRhdGEvdGFibGUuY3N2XCJdLFxuICAgICAgYmFzZXBhdGg6IFwiZGF0YVwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwiYWxsIHBhdGhzIGFyZSByZW1vdGVcIixcbiAgICAgIHBhdGhzOiBbXG4gICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbS90YWJsZTEuY3N2XCIsXG4gICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbS90YWJsZTIuY3N2XCIsXG4gICAgICBdLFxuICAgICAgYmFzZXBhdGg6IHVuZGVmaW5lZCxcbiAgICB9LFxuICBdKShcIiRkZXNjcmlwdGlvblwiLCAoeyBwYXRocywgYmFzZXBhdGggfSkgPT4ge1xuICAgIGV4cGVjdChnZXRDb21tb25Mb2NhbEJhc2VwYXRoKHBhdGhzKSkudG9FcXVhbChiYXNlcGF0aClcbiAgfSlcbn0pXG4iXX0=