UNPKG

@dpkit/core

Version:

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

27 lines 3.55 kB
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==