@dpkit/core
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
27 lines • 3.54 kB
JavaScript
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=