UNPKG

r2-shared-js

Version:

Readium 2 'shared' for NodeJS (TypeScript)

199 lines 9.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ava_1 = require("ava"); const path = require("path"); const metadata_1 = require("../src/models/metadata"); const metadata_contributor_1 = require("../src/models/metadata-contributor"); const lcp_1 = require("r2-lcp-js/dist/es6-es2015/src/parser/epub/lcp"); const serializable_1 = require("r2-lcp-js/dist/es6-es2015/src/serializable"); const init_globals_1 = require("../src/init-globals"); const helpers_1 = require("./helpers"); (0, init_globals_1.initGlobalConverters_SHARED)(); (0, init_globals_1.initGlobalConverters_GENERIC)(); (0, lcp_1.setLcpNativePluginPath)(path.join(process.cwd(), "LCP", "lcp.node")); const contributor1NameStr = "theName1"; const contributor1Id = "theID1"; const contributor1Pos = 1; const contributor1 = new metadata_contributor_1.Contributor(); contributor1.Name = contributor1NameStr; contributor1.Identifier = contributor1Id; contributor1.Position = contributor1Pos; const contributor1RoleArr = ["theRole1-A", "theRole1-B"]; contributor1.Role = contributor1RoleArr; const contributor2NameMapLang = "en"; const contributor2NameMapVal = "theName2"; const contributor2NameMap = {}; contributor2NameMap[contributor2NameMapLang] = contributor2NameMapVal; const contributor2NameObj = { name: contributor2NameMap }; const contributor2Id = "theID2"; const contributor2 = new metadata_contributor_1.Contributor(); contributor2.Name = contributor2NameMap; contributor2.Identifier = contributor2Id; const contributor2RoleStr = "theRole2"; contributor2.Role = [contributor2RoleStr]; const checkContributor1Name = (t, obj) => { (0, helpers_1.checkType_String)(t, obj); t.is(obj, contributor1NameStr); }; const checkContributor2Name = (t, obj) => { (0, helpers_1.checkType_Object)(t, obj); (0, helpers_1.checkType_String)(t, obj[contributor2NameMapLang]); t.is(obj[contributor2NameMapLang], contributor2NameMapVal); }; const checkJsonContributor1 = (t, obj) => { (0, helpers_1.checkType_Object)(t, obj); checkContributor1Name(t, obj.name); (0, helpers_1.checkType_String)(t, obj.identifier); t.is(obj.identifier, contributor1Id); (0, helpers_1.checkType_Number)(t, obj.position); t.is(obj.position, contributor1Pos); (0, helpers_1.checkType_Array)(t, obj.role); t.is(obj.role.length, contributor1RoleArr.length); t.is(obj.role[0], contributor1RoleArr[0]); t.is(obj.role[1], contributor1RoleArr[1]); }; const checkJsonContributor2 = (t, obj) => { (0, helpers_1.checkType_Object)(t, obj); checkContributor2Name(t, obj.name); (0, helpers_1.checkType_String)(t, obj.identifier); t.is(obj.identifier, contributor2Id); (0, helpers_1.checkType_String)(t, obj.role); t.is(obj.role, contributor2RoleStr); }; const checkObjContributor1 = (t, obj) => { (0, helpers_1.checkType)(t, obj, metadata_contributor_1.Contributor); checkContributor1Name(t, obj.Name); (0, helpers_1.checkType_String)(t, obj.Identifier); t.is(obj.Identifier, contributor1Id); (0, helpers_1.checkType_Number)(t, obj.Position); t.is(obj.Position, contributor1Pos); (0, helpers_1.checkType_Array)(t, obj.Role); t.is(obj.Role.length, 2); t.is(obj.Role[0], contributor1RoleArr[0]); t.is(obj.Role[1], contributor1RoleArr[1]); }; const checkObjContributor2 = (t, obj) => { (0, helpers_1.checkType)(t, obj, metadata_contributor_1.Contributor); checkContributor2Name(t, obj.Name); (0, helpers_1.checkType_String)(t, obj.Identifier); t.is(obj.Identifier, contributor2Id); (0, helpers_1.checkType_Array)(t, obj.Role); t.is(obj.Role.length, 1); t.is(obj.Role[0], contributor2RoleStr); }; (0, ava_1.default)("JSON SERIALIZE: Metadata.Imprint => Contributor[]", (t) => { const b = new metadata_1.Metadata(); b.Imprint = []; b.Imprint.push(contributor1); b.Imprint.push(contributor2); (0, helpers_1.inspect)(b); const json = (0, serializable_1.TaJsonSerialize)(b); (0, helpers_1.logJSON)(json); (0, helpers_1.checkType_Array)(t, json.imprint); const arr = json.imprint; t.is(arr.length, 2); checkJsonContributor1(t, arr[0]); checkJsonContributor2(t, arr[1]); }); (0, ava_1.default)("JSON SERIALIZE: Metadata.Imprint => Contributor[1] collapse-array", (t) => { const b = new metadata_1.Metadata(); b.Imprint = [contributor1]; (0, helpers_1.inspect)(b); const json = (0, serializable_1.TaJsonSerialize)(b); (0, helpers_1.logJSON)(json); checkJsonContributor1(t, json.imprint); }); (0, ava_1.default)("JSON DESERIALIZE: Metadata.Imprint => Contributor[]", (t) => { const json = {}; json.imprint = [ { name: contributor1NameStr, identifier: contributor1Id, position: contributor1Pos, role: contributor1RoleArr }, { name: contributor2NameMap, identifier: contributor2Id, role: contributor2RoleStr }, ]; (0, helpers_1.logJSON)(json); const b = (0, serializable_1.TaJsonDeserialize)(json, metadata_1.Metadata); (0, helpers_1.inspect)(b); (0, helpers_1.checkType_Array)(t, b.Imprint); t.is(b.Imprint.length, 2); checkObjContributor1(t, b.Imprint[0]); checkObjContributor2(t, b.Imprint[1]); }); (0, ava_1.default)("JSON DESERIALIZE: Metadata.Imprint => Contributor[1]", (t) => { const json = {}; json.imprint = [ { name: contributor1NameStr, identifier: contributor1Id, position: contributor1Pos, role: contributor1RoleArr }, ]; (0, helpers_1.logJSON)(json); const b = (0, serializable_1.TaJsonDeserialize)(json, metadata_1.Metadata); (0, helpers_1.inspect)(b); (0, helpers_1.checkType_Array)(t, b.Imprint); t.is(b.Imprint.length, 1); checkObjContributor1(t, b.Imprint[0]); }); (0, ava_1.default)("JSON DESERIALIZE: Metadata.Imprint => Contributor", (t) => { const json = {}; json.imprint = { name: contributor1NameStr, identifier: contributor1Id, position: contributor1Pos, role: contributor1RoleArr }; (0, helpers_1.logJSON)(json); const b = (0, serializable_1.TaJsonDeserialize)(json, metadata_1.Metadata); (0, helpers_1.inspect)(b); (0, helpers_1.checkType_Array)(t, b.Imprint); t.is(b.Imprint.length, 1); checkObjContributor1(t, b.Imprint[0]); }); (0, ava_1.default)("JSON DESERIALIZE: Metadata.Imprint => Contributor NAME []", (t) => { const json = {}; json.imprint = [contributor1NameStr, contributor2NameObj]; (0, helpers_1.logJSON)(json); const b = (0, serializable_1.TaJsonDeserialize)(json, metadata_1.Metadata); (0, helpers_1.inspect)(b); (0, helpers_1.checkType_Array)(t, b.Imprint); t.is(b.Imprint.length, 2); (0, helpers_1.checkType)(t, b.Imprint[0], metadata_contributor_1.Contributor); checkContributor1Name(t, b.Imprint[0].Name); (0, helpers_1.checkType)(t, b.Imprint[1], metadata_contributor_1.Contributor); checkContributor2Name(t, b.Imprint[1].Name); }); (0, ava_1.default)("JSON DESERIALIZE: Metadata.Imprint => Contributor NAME [1] A", (t) => { const json = {}; json.imprint = [contributor1NameStr]; (0, helpers_1.logJSON)(json); const b = (0, serializable_1.TaJsonDeserialize)(json, metadata_1.Metadata); (0, helpers_1.inspect)(b); (0, helpers_1.checkType_Array)(t, b.Imprint); t.is(b.Imprint.length, 1); (0, helpers_1.checkType)(t, b.Imprint[0], metadata_contributor_1.Contributor); checkContributor1Name(t, b.Imprint[0].Name); }); (0, ava_1.default)("JSON DESERIALIZE: Metadata.Imprint => Contributor NAME [1] B", (t) => { const json = {}; json.imprint = [contributor2NameObj]; (0, helpers_1.logJSON)(json); const b = (0, serializable_1.TaJsonDeserialize)(json, metadata_1.Metadata); (0, helpers_1.inspect)(b); (0, helpers_1.checkType_Array)(t, b.Imprint); t.is(b.Imprint.length, 1); (0, helpers_1.checkType)(t, b.Imprint[0], metadata_contributor_1.Contributor); checkContributor2Name(t, b.Imprint[0].Name); }); (0, ava_1.default)("JSON DESERIALIZE: Metadata.Imprint => Contributor NAME A", (t) => { const json = {}; json.imprint = contributor1NameStr; (0, helpers_1.logJSON)(json); const b = (0, serializable_1.TaJsonDeserialize)(json, metadata_1.Metadata); (0, helpers_1.inspect)(b); (0, helpers_1.checkType_Array)(t, b.Imprint); t.is(b.Imprint.length, 1); (0, helpers_1.checkType)(t, b.Imprint[0], metadata_contributor_1.Contributor); checkContributor1Name(t, b.Imprint[0].Name); }); (0, ava_1.default)("JSON DESERIALIZE: Metadata.Imprint => Contributor NAME B", (t) => { const json = {}; json.imprint = contributor2NameObj; (0, helpers_1.logJSON)(json); const b = (0, serializable_1.TaJsonDeserialize)(json, metadata_1.Metadata); (0, helpers_1.inspect)(b); (0, helpers_1.checkType_Array)(t, b.Imprint); t.is(b.Imprint.length, 1); (0, helpers_1.checkType)(t, b.Imprint[0], metadata_contributor_1.Contributor); checkContributor2Name(t, b.Imprint[0].Name); }); //# sourceMappingURL=test-JSON-Contributor.js.map