UNPKG

@dpkit/core

Version:

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

27 lines 3.47 kB
import { join } from "node:path"; import { describe, expect, expectTypeOf, it } from "vitest"; import { loadSchema } from "./load.js"; describe("loadSchema", () => { const getFixturePath = (name) => join(__dirname, "fixtures", name); const expectedSchema = { fields: [ { name: "id", type: "integer", }, { name: "name", type: "string", }, ], }; it("loads a schema from a local file path", async () => { const schema = await loadSchema(getFixturePath("schema.json")); expectTypeOf(schema).toEqualTypeOf(); expect(schema).toEqual(expectedSchema); }); it("throws an error when schema is invalid", async () => { await expect(loadSchema(getFixturePath("schema-invalid.json"))).rejects.toThrow(); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc2NoZW1hL2xvYWQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0QyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUMxQixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDMUUsTUFBTSxjQUFjLEdBQUc7UUFDckIsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7S0FDRixDQUFBO0lBRUQsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE1BQU0sVUFBVSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBO1FBRTlELFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQVUsQ0FBQTtRQUM1QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3hDLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3RELE1BQU0sTUFBTSxDQUNWLFVBQVUsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUNsRCxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNyQixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgZXhwZWN0VHlwZU9mLCBpdCB9IGZyb20gXCJ2aXRlc3RcIlxuaW1wb3J0IHR5cGUgeyBTY2hlbWEgfSBmcm9tIFwiLi9TY2hlbWEudHNcIlxuaW1wb3J0IHsgbG9hZFNjaGVtYSB9IGZyb20gXCIuL2xvYWQudHNcIlxuXG5kZXNjcmliZShcImxvYWRTY2hlbWFcIiwgKCkgPT4ge1xuICBjb25zdCBnZXRGaXh0dXJlUGF0aCA9IChuYW1lOiBzdHJpbmcpID0+IGpvaW4oX19kaXJuYW1lLCBcImZpeHR1cmVzXCIsIG5hbWUpXG4gIGNvbnN0IGV4cGVjdGVkU2NoZW1hID0ge1xuICAgIGZpZWxkczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcImlkXCIsXG4gICAgICAgIHR5cGU6IFwiaW50ZWdlclwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJuYW1lXCIsXG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH1cblxuICBpdChcImxvYWRzIGEgc2NoZW1hIGZyb20gYSBsb2NhbCBmaWxlIHBhdGhcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IGF3YWl0IGxvYWRTY2hlbWEoZ2V0Rml4dHVyZVBhdGgoXCJzY2hlbWEuanNvblwiKSlcblxuICAgIGV4cGVjdFR5cGVPZihzY2hlbWEpLnRvRXF1YWxUeXBlT2Y8U2NoZW1hPigpXG4gICAgZXhwZWN0KHNjaGVtYSkudG9FcXVhbChleHBlY3RlZFNjaGVtYSlcbiAgfSlcblxuICBpdChcInRocm93cyBhbiBlcnJvciB3aGVuIHNjaGVtYSBpcyBpbnZhbGlkXCIsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBsb2FkU2NoZW1hKGdldEZpeHR1cmVQYXRoKFwic2NoZW1hLWludmFsaWQuanNvblwiKSksXG4gICAgKS5yZWplY3RzLnRvVGhyb3coKVxuICB9KVxufSlcbiJdfQ==