r2-opds-js
Version:
Readium 2 'opds' for NodeJS (TypeScript)
163 lines • 6.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = require("ava");
const serializable_1 = require("r2-lcp-js/dist/es7-es2016/src/serializable");
const init_globals_1 = require("../src/opds/init-globals");
const opds2_link_1 = require("../src/opds/opds2/opds2-link");
const helpers_1 = require("./helpers");
(0, init_globals_1.initGlobalConverters_OPDS)();
(0, init_globals_1.initGlobalConverters_GENERIC)();
const relStr1 = "rel1";
const relStr2 = "rel2";
(0, ava_1.default)("JSON SERIALIZE: OPDSLink.Rel => string[]", (t) => {
const link = new opds2_link_1.OPDSLink();
link.AddRel(relStr1);
link.AddRel(relStr2);
(0, helpers_1.inspect)(link);
const json = (0, serializable_1.TaJsonSerialize)(link);
(0, helpers_1.logJSON)(json);
(0, helpers_1.checkType_Array)(t, json.rel);
const arr = json.rel;
t.is(arr.length, 2);
(0, helpers_1.checkType_String)(t, arr[0]);
t.is(arr[0], relStr1);
(0, helpers_1.checkType_String)(t, arr[1]);
t.is(arr[1], relStr2);
});
(0, ava_1.default)("JSON SERIALIZE: OPDSLink.Rel => string[] (recursive links)", (t) => {
const link = new opds2_link_1.OPDSLink();
link.AddRel(relStr1);
link.AddRel(relStr2);
const child = new opds2_link_1.OPDSLink();
child.AddRel(relStr2);
child.AddRel(relStr1);
link.Children = [];
link.Children.push(child);
(0, helpers_1.inspect)(link);
const json = (0, serializable_1.TaJsonSerialize)(link);
(0, helpers_1.logJSON)(json);
(0, helpers_1.checkType_Array)(t, json.rel);
const arr = json.rel;
t.is(arr.length, 2);
(0, helpers_1.checkType_String)(t, arr[0]);
t.is(arr[0], relStr1);
(0, helpers_1.checkType_String)(t, arr[1]);
t.is(arr[1], relStr2);
(0, helpers_1.checkType_Array)(t, json.children);
const children = json.children;
t.is(children.length, 1);
const child1 = children[0];
(0, helpers_1.checkType_Array)(t, child1.rel);
const rels = child1.rel;
t.is(rels.length, 2);
(0, helpers_1.checkType_String)(t, rels[0]);
t.is(rels[0], relStr2);
(0, helpers_1.checkType_String)(t, rels[1]);
t.is(rels[1], relStr1);
});
(0, ava_1.default)("JSON SERIALIZE: OPDSLink.Rel => string", (t) => {
const link = new opds2_link_1.OPDSLink();
link.AddRel(relStr1);
(0, helpers_1.inspect)(link);
const json = (0, serializable_1.TaJsonSerialize)(link);
(0, helpers_1.logJSON)(json);
(0, helpers_1.checkType_String)(t, json.rel);
t.is(json.rel, relStr1);
});
(0, ava_1.default)("JSON SERIALIZE: OPDSLink.Rel => string (recursive links)", (t) => {
const link = new opds2_link_1.OPDSLink();
link.AddRel(relStr1);
const child = new opds2_link_1.OPDSLink();
child.AddRel(relStr2);
link.Children = [];
link.Children.push(child);
(0, helpers_1.inspect)(link);
const json = (0, serializable_1.TaJsonSerialize)(link);
(0, helpers_1.logJSON)(json);
(0, helpers_1.checkType_String)(t, json.rel);
t.is(json.rel, relStr1);
(0, helpers_1.checkType_Array)(t, json.children);
const children = json.children;
t.is(children.length, 1);
const child1 = children[0];
(0, helpers_1.checkType_String)(t, child1.rel);
t.is(child1.rel, relStr2);
});
(0, ava_1.default)("JSON DESERIALIZE: OPDSLink.Rel => string[]", (t) => {
const json = {};
json.rel = [relStr1, relStr2];
(0, helpers_1.logJSON)(json);
const link = (0, serializable_1.TaJsonDeserialize)(json, opds2_link_1.OPDSLink);
(0, helpers_1.inspect)(link);
(0, helpers_1.checkType_Array)(t, link.Rel);
t.is(link.Rel.length, 2);
(0, helpers_1.checkType_String)(t, link.Rel[0]);
t.is(link.Rel[0], relStr1);
(0, helpers_1.checkType_String)(t, link.Rel[1]);
t.is(link.Rel[1], relStr2);
});
(0, ava_1.default)("JSON DESERIALIZE: OPDSLink.Rel => string[] (recursive children)", (t) => {
const json = {};
json.rel = [relStr1, relStr2];
json.children = [];
json.children.push({ rel: [relStr2, relStr1] });
(0, helpers_1.logJSON)(json);
const link = (0, serializable_1.TaJsonDeserialize)(json, opds2_link_1.OPDSLink);
(0, helpers_1.inspect)(link);
(0, helpers_1.checkType_Array)(t, link.Rel);
t.is(link.Rel.length, 2);
(0, helpers_1.checkType_String)(t, link.Rel[0]);
t.is(link.Rel[0], relStr1);
(0, helpers_1.checkType_String)(t, link.Rel[1]);
t.is(link.Rel[1], relStr2);
(0, helpers_1.checkType_Array)(t, link.Children);
t.is(link.Children.length, 1);
(0, helpers_1.checkType_Array)(t, link.Children[0].Rel);
t.is(link.Children[0].Rel.length, 2);
(0, helpers_1.checkType_String)(t, link.Children[0].Rel[0]);
t.is(link.Children[0].Rel[0], relStr2);
(0, helpers_1.checkType_String)(t, link.Children[0].Rel[1]);
t.is(link.Children[0].Rel[1], relStr1);
});
(0, ava_1.default)("JSON DESERIALIZE: OPDSLink.Rel => string[1]", (t) => {
const json = {};
json.rel = [relStr1];
(0, helpers_1.logJSON)(json);
const link = (0, serializable_1.TaJsonDeserialize)(json, opds2_link_1.OPDSLink);
(0, helpers_1.inspect)(link);
(0, helpers_1.checkType_Array)(t, link.Rel);
t.is(link.Rel.length, 1);
(0, helpers_1.checkType_String)(t, link.Rel[0]);
t.is(link.Rel[0], relStr1);
});
(0, ava_1.default)("JSON DESERIALIZE: OPDSLink.Rel => string", (t) => {
const json = {};
json.rel = relStr1;
(0, helpers_1.logJSON)(json);
const link = (0, serializable_1.TaJsonDeserialize)(json, opds2_link_1.OPDSLink);
(0, helpers_1.inspect)(link);
(0, helpers_1.checkType_Array)(t, link.Rel);
t.is(link.Rel.length, 1);
(0, helpers_1.checkType_String)(t, link.Rel[0]);
t.is(link.Rel[0], relStr1);
});
(0, ava_1.default)("JSON DESERIALIZE: OPDSLink.Rel => string (recursive children)", (t) => {
const json = {};
json.rel = relStr1;
json.children = [];
json.children.push({ rel: relStr2 });
(0, helpers_1.logJSON)(json);
const link = (0, serializable_1.TaJsonDeserialize)(json, opds2_link_1.OPDSLink);
(0, helpers_1.inspect)(link);
(0, helpers_1.checkType_Array)(t, link.Rel);
t.is(link.Rel.length, 1);
(0, helpers_1.checkType_String)(t, link.Rel[0]);
t.is(link.Rel[0], relStr1);
(0, helpers_1.checkType_Array)(t, link.Children);
t.is(link.Children.length, 1);
(0, helpers_1.checkType_Array)(t, link.Children[0].Rel);
t.is(link.Children[0].Rel.length, 1);
(0, helpers_1.checkType_String)(t, link.Children[0].Rel[0]);
t.is(link.Children[0].Rel[0], relStr2);
});
//# sourceMappingURL=test-JSON-Rel.js.map