@dpkit/core
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
27 lines • 3.55 kB
JavaScript
import { describe, expect, expectTypeOf, it } from "vitest";
import { AssertionError } from "../general/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9wYWNrYWdlL2Fzc2VydC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXBELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFM0MsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDN0IsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2hELE1BQU0sVUFBVSxHQUFHO1lBQ2pCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsVUFBVTtpQkFDakI7YUFDRjtTQUNGLENBQUE7UUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVuRCxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxFQUFXLENBQUE7UUFDbEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN6QyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM3RCxNQUFNLFVBQVUsR0FBRztZQUNqQixJQUFJLEVBQUUsR0FBRyxFQUFFLHFCQUFxQjtZQUNoQyxTQUFTLEVBQUUsY0FBYyxFQUFFLHFCQUFxQjtTQUNqRCxDQUFBO1FBRUQsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN6RSxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgZXhwZWN0VHlwZU9mLCBpdCB9IGZyb20gXCJ2aXRlc3RcIlxuaW1wb3J0IHsgQXNzZXJ0aW9uRXJyb3IgfSBmcm9tIFwiLi4vZ2VuZXJhbC9pbmRleC5qc1wiXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2UgfSBmcm9tIFwiLi9QYWNrYWdlLmpzXCJcbmltcG9ydCB7IGFzc2VydFBhY2thZ2UgfSBmcm9tIFwiLi9hc3NlcnQuanNcIlxuXG5kZXNjcmliZShcImFzc2VydFBhY2thZ2VcIiwgKCkgPT4ge1xuICBpdChcInJldHVybnMgdHlwZWQgcGFja2FnZSB3aGVuIHZhbGlkXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0ge1xuICAgICAgbmFtZTogXCJleGFtcGxlLXBhY2thZ2VcIixcbiAgICAgIHJlc291cmNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJyZXNvdXJjZS0xXCIsXG4gICAgICAgICAgcGF0aDogXCJkYXRhLmNzdlwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhcGFja2FnZSA9IGF3YWl0IGFzc2VydFBhY2thZ2UoZGVzY3JpcHRvcilcblxuICAgIGV4cGVjdFR5cGVPZihkYXRhcGFja2FnZSkudG9FcXVhbFR5cGVPZjxQYWNrYWdlPigpXG4gICAgZXhwZWN0KGRhdGFwYWNrYWdlKS50b0VxdWFsKGRlc2NyaXB0b3IpXG4gIH0pXG5cbiAgaXQoXCJ0aHJvd3MgQXNzZXJ0aW9uRXJyb3Igd2hlbiBwYWNrYWdlIGlzIGludmFsaWRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB7XG4gICAgICBuYW1lOiAxMjMsIC8vIFNob3VsZCBiZSBhIHN0cmluZ1xuICAgICAgcmVzb3VyY2VzOiBcIm5vdC1hbi1hcnJheVwiLCAvLyBTaG91bGQgYmUgYW4gYXJyYXlcbiAgICB9XG5cbiAgICBhd2FpdCBleHBlY3QoYXNzZXJ0UGFja2FnZShkZXNjcmlwdG9yKSkucmVqZWN0cy50b1Rocm93KEFzc2VydGlvbkVycm9yKVxuICB9KVxufSlcbiJdfQ==