UNPKG

@dpkit/core

Version:

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

24 lines 3.46 kB
import { describe, expect, expectTypeOf, it } from "vitest"; import { AssertionError } from "../error/index.js"; import { assertResource } from "./assert.js"; describe("assertResource", () => { it("returns typed resource when valid", async () => { const descriptor = { name: "example-resource", path: "data.csv", format: "csv", encoding: "utf-8", }; const resource = await assertResource(descriptor); expectTypeOf(resource).toEqualTypeOf(); expect(resource).toEqual(descriptor); }); it("throws AssertionError when resource is invalid", async () => { const invalidResource = { name: 123, // Should be a string path: true, // Should be a string or array of strings }; await expect(assertResource(invalidResource)).rejects.toThrow(AssertionError); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9yZXNvdXJjZS9hc3NlcnQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUVsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTVDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7SUFDOUIsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2pELE1BQU0sVUFBVSxHQUFHO1lBQ2pCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFBO1FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFakQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsRUFBWSxDQUFBO1FBQ2hELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDdEMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsZ0RBQWdELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDOUQsTUFBTSxlQUFlLEdBQUc7WUFDdEIsSUFBSSxFQUFFLEdBQUcsRUFBRSxxQkFBcUI7WUFDaEMsSUFBSSxFQUFFLElBQUksRUFBRSx5Q0FBeUM7U0FDdEQsQ0FBQTtRQUVELE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQzNELGNBQWMsQ0FDZixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGV4cGVjdFR5cGVPZiwgaXQgfSBmcm9tIFwidml0ZXN0XCJcbmltcG9ydCB7IEFzc2VydGlvbkVycm9yIH0gZnJvbSBcIi4uL2Vycm9yL2luZGV4LnRzXCJcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2UgfSBmcm9tIFwiLi9SZXNvdXJjZS50c1wiXG5pbXBvcnQgeyBhc3NlcnRSZXNvdXJjZSB9IGZyb20gXCIuL2Fzc2VydC50c1wiXG5cbmRlc2NyaWJlKFwiYXNzZXJ0UmVzb3VyY2VcIiwgKCkgPT4ge1xuICBpdChcInJldHVybnMgdHlwZWQgcmVzb3VyY2Ugd2hlbiB2YWxpZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IHtcbiAgICAgIG5hbWU6IFwiZXhhbXBsZS1yZXNvdXJjZVwiLFxuICAgICAgcGF0aDogXCJkYXRhLmNzdlwiLFxuICAgICAgZm9ybWF0OiBcImNzdlwiLFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IGF3YWl0IGFzc2VydFJlc291cmNlKGRlc2NyaXB0b3IpXG5cbiAgICBleHBlY3RUeXBlT2YocmVzb3VyY2UpLnRvRXF1YWxUeXBlT2Y8UmVzb3VyY2U+KClcbiAgICBleHBlY3QocmVzb3VyY2UpLnRvRXF1YWwoZGVzY3JpcHRvcilcbiAgfSlcblxuICBpdChcInRocm93cyBBc3NlcnRpb25FcnJvciB3aGVuIHJlc291cmNlIGlzIGludmFsaWRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGludmFsaWRSZXNvdXJjZSA9IHtcbiAgICAgIG5hbWU6IDEyMywgLy8gU2hvdWxkIGJlIGEgc3RyaW5nXG4gICAgICBwYXRoOiB0cnVlLCAvLyBTaG91bGQgYmUgYSBzdHJpbmcgb3IgYXJyYXkgb2Ygc3RyaW5nc1xuICAgIH1cblxuICAgIGF3YWl0IGV4cGVjdChhc3NlcnRSZXNvdXJjZShpbnZhbGlkUmVzb3VyY2UpKS5yZWplY3RzLnRvVGhyb3coXG4gICAgICBBc3NlcnRpb25FcnJvcixcbiAgICApXG4gIH0pXG59KVxuIl19