UNPKG

r2-opds-js

Version:

Readium 2 'opds' for NodeJS (TypeScript)

140 lines 4.58 kB
"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_1 = require("../src/opds/opds2/opds2"); const opds2_metadata_1 = require("../src/opds/opds2/opds2-metadata"); const helpers_1 = require("./helpers"); (0, init_globals_1.initGlobalConverters_OPDS)(); (0, init_globals_1.initGlobalConverters_GENERIC)(); const titleStr1 = "str1"; const titleStr2 = "str2"; const titleStr3 = "str3"; const n = 999; (0, ava_1.default)("JSON SERIALIZE: Metadata.AdditionalJSON", (t) => { const md = new opds2_metadata_1.OPDSMetadata(); md.Title = titleStr1; md.NumberOfItems = n; md.ItemsPerPage = n; md.NumberOfPages = n; md.AdditionalJSON = { title2: titleStr2, tizz: { sub1: true, sub2: null, sub3: { inner1: n, inner2: [titleStr3, 888, false], }, }, }; const pub = new opds2_1.OPDSFeed(); pub.Metadata = md; (0, helpers_1.inspect)(pub); const jsonPub = (0, serializable_1.TaJsonSerialize)(pub); (0, helpers_1.logJSON)(jsonPub); const json = jsonPub.metadata; (0, helpers_1.checkType_Number)(t, json.numberOfItems); t.is(json.numberOfItems, n); (0, helpers_1.checkType_Number)(t, json.itemsPerPage); t.is(json.itemsPerPage, n); (0, helpers_1.checkType_Number)(t, json.numberOfPages); t.is(json.numberOfPages, n); (0, helpers_1.checkType_String)(t, json.title); t.is(json.title, titleStr1); if (!json.tizz) { t.fail(); return; } (0, helpers_1.checkType_Object)(t, json.tizz); t.is(json.tizz.sub1, true); if (json.tizz.sub2 || json.tizz.sub2 !== null) { t.fail(); return; } if (!json.tizz.sub3) { t.fail(); return; } (0, helpers_1.checkType_Number)(t, json.tizz.sub3.inner1); t.is(json.tizz.sub3.inner1, n); if (!json.tizz.sub3.inner2) { t.fail(); return; } (0, helpers_1.checkType_Array)(t, json.tizz.sub3.inner2); t.is(json.tizz.sub3.inner2[0], titleStr3); if (!json.tizz.sub3.inner1) { t.fail(); return; } }); (0, ava_1.default)("JSON DESERIALIZE: Metadata.AdditionalJSON", (t) => { const json = { itemsPerPage: n, numberOfItems: n, numberOfPages: n, title: titleStr1, title2: titleStr2, tizz: { sub1: true, sub2: null, sub3: { inner1: 999, inner2: [titleStr3, 888, false], }, }, }; const jsonPub = { metadata: json, }; (0, helpers_1.logJSON)(jsonPub); const pub = (0, serializable_1.TaJsonDeserialize)(jsonPub, opds2_1.OPDSFeed); const md = pub.Metadata; (0, helpers_1.inspect)(md); (0, helpers_1.checkType_Number)(t, md.NumberOfItems); t.is(md.NumberOfItems, n); (0, helpers_1.checkType_Number)(t, md.ItemsPerPage); t.is(md.ItemsPerPage, n); (0, helpers_1.checkType_Number)(t, md.NumberOfPages); t.is(md.NumberOfPages, n); (0, helpers_1.checkType_String)(t, md.Title); t.is(md.Title, titleStr1); if (!md.AdditionalJSON) { t.fail(); return; } t.true(typeof md.AdditionalJSON.numberOfItems === "undefined"); t.true(typeof md.AdditionalJSON.itemsPerPage === "undefined"); t.true(typeof md.AdditionalJSON.numberOfPages === "undefined"); (0, helpers_1.checkType_String)(t, md.AdditionalJSON.title2); t.is(md.AdditionalJSON.title2, titleStr2); if (!md.AdditionalJSON.tizz) { t.fail(); return; } (0, helpers_1.checkType_Object)(t, md.AdditionalJSON.tizz); t.is(md.AdditionalJSON.tizz.sub1, true); if (md.AdditionalJSON.tizz.sub2 || md.AdditionalJSON.tizz.sub2 !== null) { t.fail(); return; } if (!md.AdditionalJSON.tizz.sub3) { t.fail(); return; } (0, helpers_1.checkType_Number)(t, md.AdditionalJSON.tizz.sub3.inner1); t.is(md.AdditionalJSON.tizz.sub3.inner1, n); if (!md.AdditionalJSON.tizz.sub3.inner2) { t.fail(); return; } (0, helpers_1.checkType_Array)(t, md.AdditionalJSON.tizz.sub3.inner2); t.is(md.AdditionalJSON.tizz.sub3.inner2[0], titleStr3); if (!md.AdditionalJSON.tizz.sub3.inner1) { t.fail(); return; } }); //# sourceMappingURL=test-JSON-AdditionalJSON.js.map