UNPKG

@dpkit/core

Version:

Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames

28 lines 4.8 kB
import { join, relative } from "node:path"; import { describe, expect, expectTypeOf, it } from "vitest"; import { loadPackageDescriptor } from "./load.js"; describe("loadPackageDescriptor", async () => { const getFixturePath = (name) => relative(process.cwd(), join(__dirname, "fixtures", name)); it("loads a package from a local file path", async () => { const datapackage = await loadPackageDescriptor(getFixturePath("package.json")); expectTypeOf(datapackage).toEqualTypeOf(); expect(datapackage.name).toBe("name"); expect(datapackage.resources.length).toBeGreaterThan(0); const resource = datapackage.resources[0]; expect(resource).toBeDefined(); if (resource) { expect(resource).toEqual({ type: "table", name: "name", format: "csv", path: getFixturePath("table.csv"), dialect: getFixturePath("dialect.json"), schema: getFixturePath("schema.json"), }); } }); it("throws an error when package is invalid", async () => { await expect(loadPackageDescriptor(getFixturePath("package-invalid.json"))).rejects.toThrow(); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGFja2FnZS9sb2FkLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUUzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFakQsUUFBUSxDQUFDLHVCQUF1QixFQUFFLEtBQUssSUFBSSxFQUFFO0lBQzNDLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FDdEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBRTVELEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0RCxNQUFNLFdBQVcsR0FBRyxNQUFNLHFCQUFxQixDQUM3QyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQy9CLENBQUE7UUFFRCxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxFQUFXLENBQUE7UUFDbEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXZELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRTlCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsS0FBSztnQkFDYixJQUFJLEVBQUUsY0FBYyxDQUFDLFdBQVcsQ0FBQztnQkFDakMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxjQUFjLENBQUM7Z0JBQ3ZDLE1BQU0sRUFBRSxjQUFjLENBQUMsYUFBYSxDQUFDO2FBQ3RDLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN2RCxNQUFNLE1BQU0sQ0FDVixxQkFBcUIsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUM5RCxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNyQixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGV4cGVjdFR5cGVPZiwgaXQgfSBmcm9tIFwidml0ZXN0XCJcbmltcG9ydCB0eXBlIHsgUGFja2FnZSB9IGZyb20gXCIuL1BhY2thZ2UudHNcIlxuaW1wb3J0IHsgbG9hZFBhY2thZ2VEZXNjcmlwdG9yIH0gZnJvbSBcIi4vbG9hZC50c1wiXG5cbmRlc2NyaWJlKFwibG9hZFBhY2thZ2VEZXNjcmlwdG9yXCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgZ2V0Rml4dHVyZVBhdGggPSAobmFtZTogc3RyaW5nKSA9PlxuICAgIHJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIGpvaW4oX19kaXJuYW1lLCBcImZpeHR1cmVzXCIsIG5hbWUpKVxuXG4gIGl0KFwibG9hZHMgYSBwYWNrYWdlIGZyb20gYSBsb2NhbCBmaWxlIHBhdGhcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGRhdGFwYWNrYWdlID0gYXdhaXQgbG9hZFBhY2thZ2VEZXNjcmlwdG9yKFxuICAgICAgZ2V0Rml4dHVyZVBhdGgoXCJwYWNrYWdlLmpzb25cIiksXG4gICAgKVxuXG4gICAgZXhwZWN0VHlwZU9mKGRhdGFwYWNrYWdlKS50b0VxdWFsVHlwZU9mPFBhY2thZ2U+KClcbiAgICBleHBlY3QoZGF0YXBhY2thZ2UubmFtZSkudG9CZShcIm5hbWVcIilcbiAgICBleHBlY3QoZGF0YXBhY2thZ2UucmVzb3VyY2VzLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApXG5cbiAgICBjb25zdCByZXNvdXJjZSA9IGRhdGFwYWNrYWdlLnJlc291cmNlc1swXVxuICAgIGV4cGVjdChyZXNvdXJjZSkudG9CZURlZmluZWQoKVxuXG4gICAgaWYgKHJlc291cmNlKSB7XG4gICAgICBleHBlY3QocmVzb3VyY2UpLnRvRXF1YWwoe1xuICAgICAgICB0eXBlOiBcInRhYmxlXCIsXG4gICAgICAgIG5hbWU6IFwibmFtZVwiLFxuICAgICAgICBmb3JtYXQ6IFwiY3N2XCIsXG4gICAgICAgIHBhdGg6IGdldEZpeHR1cmVQYXRoKFwidGFibGUuY3N2XCIpLFxuICAgICAgICBkaWFsZWN0OiBnZXRGaXh0dXJlUGF0aChcImRpYWxlY3QuanNvblwiKSxcbiAgICAgICAgc2NoZW1hOiBnZXRGaXh0dXJlUGF0aChcInNjaGVtYS5qc29uXCIpLFxuICAgICAgfSlcbiAgICB9XG4gIH0pXG5cbiAgaXQoXCJ0aHJvd3MgYW4gZXJyb3Igd2hlbiBwYWNrYWdlIGlzIGludmFsaWRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIGxvYWRQYWNrYWdlRGVzY3JpcHRvcihnZXRGaXh0dXJlUGF0aChcInBhY2thZ2UtaW52YWxpZC5qc29uXCIpKSxcbiAgICApLnJlamVjdHMudG9UaHJvdygpXG4gIH0pXG59KVxuIl19