import { describe } from "mocha"; import { expect } from "chai"; import ResearchObjectTi from "../src/ResearchObject-ti"; import { createCheckers } from "ts-interface-checker"; const checkers = createCheckers(ResearchObjectTi); describe("ResearchObject", () => { it("Has a simple valid base form", () => { const obj = { version: 1, components: [], authors: [] }; checkers.ResearchObjectV1.check(obj); }); it("Fails without required fields", () => { const obj = {}; expect(() => checkers.ResearchObjectV1.check(obj)).to .throw(`value.version is missing value.version is missing value.components is missing`); }); it("Supports external links with IPLD payload", () => { const obj = { version: 1, components: [ { name: "", id: "", type: "link", payload: { url: "https://google.com", archives: [{ accessDate: 213, url: { "/": "cid" } }], }, }, ], authors: [], }; checkers.ResearchObjectV1.check(obj); }); it("Supports version string", () => { const obj = { version: "desci-nodes-0.1.0", components: [], authors: [], }; checkers.ResearchObjectV1.check(obj); }); });