UNPKG

@dpkit/core

Version:

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

27 lines 3.54 kB
import { describe, expect, expectTypeOf, it } from "vitest"; import { AssertionError } from "../error/index.js"; import { assertPackage } from "./assert.js"; describe("assertPackage", () => { it("returns typed package when valid", async () => { const descriptor = { name: "example-package", resources: [ { name: "resource-1", path: "data.csv", }, ], }; const datapackage = await assertPackage(descriptor); expectTypeOf(datapackage).toEqualTypeOf(); expect(datapackage).toEqual(descriptor); }); it("throws AssertionError when package is invalid", async () => { const descriptor = { name: 123, // Should be a string resources: "not-an-array", // Should be an array }; await expect(assertPackage(descriptor)).rejects.toThrow(AssertionError); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9wYWNrYWdlL2Fzc2VydC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFM0MsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDN0IsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2hELE1BQU0sVUFBVSxHQUFHO1lBQ2pCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsVUFBVTtpQkFDakI7YUFDRjtTQUNGLENBQUE7UUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVuRCxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxFQUFXLENBQUE7UUFDbEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN6QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM3RCxNQUFNLFVBQVUsR0FBRztZQUNqQixJQUFJLEVBQUUsR0FBRyxFQUFFLHFCQUFxQjtZQUNoQyxTQUFTLEVBQUUsY0FBYyxFQUFFLHFCQUFxQjtTQUNqRCxDQUFBO1FBRUQsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN6RSxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgZXhwZWN0VHlwZU9mLCBpdCB9IGZyb20gXCJ2aXRlc3RcIlxuaW1wb3J0IHsgQXNzZXJ0aW9uRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3IvaW5kZXgudHNcIlxuaW1wb3J0IHR5cGUgeyBQYWNrYWdlIH0gZnJvbSBcIi4vUGFja2FnZS50c1wiXG5pbXBvcnQgeyBhc3NlcnRQYWNrYWdlIH0gZnJvbSBcIi4vYXNzZXJ0LnRzXCJcblxuZGVzY3JpYmUoXCJhc3NlcnRQYWNrYWdlXCIsICgpID0+IHtcbiAgaXQoXCJyZXR1cm5zIHR5cGVkIHBhY2thZ2Ugd2hlbiB2YWxpZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IHtcbiAgICAgIG5hbWU6IFwiZXhhbXBsZS1wYWNrYWdlXCIsXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwicmVzb3VyY2UtMVwiLFxuICAgICAgICAgIHBhdGg6IFwiZGF0YS5jc3ZcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfVxuXG4gICAgY29uc3QgZGF0YXBhY2thZ2UgPSBhd2FpdCBhc3NlcnRQYWNrYWdlKGRlc2NyaXB0b3IpXG5cbiAgICBleHBlY3RUeXBlT2YoZGF0YXBhY2thZ2UpLnRvRXF1YWxUeXBlT2Y8UGFja2FnZT4oKVxuICAgIGV4cGVjdChkYXRhcGFja2FnZSkudG9FcXVhbChkZXNjcmlwdG9yKVxuICB9KVxuXG4gIGl0KFwidGhyb3dzIEFzc2VydGlvbkVycm9yIHdoZW4gcGFja2FnZSBpcyBpbnZhbGlkXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0ge1xuICAgICAgbmFtZTogMTIzLCAvLyBTaG91bGQgYmUgYSBzdHJpbmdcbiAgICAgIHJlc291cmNlczogXCJub3QtYW4tYXJyYXlcIiwgLy8gU2hvdWxkIGJlIGFuIGFycmF5XG4gICAgfVxuXG4gICAgYXdhaXQgZXhwZWN0KGFzc2VydFBhY2thZ2UoZGVzY3JpcHRvcikpLnJlamVjdHMudG9UaHJvdyhBc3NlcnRpb25FcnJvcilcbiAgfSlcbn0pXG4iXX0=