UNPKG

r2-shared-js

Version:

Readium 2 'shared' for NodeJS (TypeScript)

87 lines 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const ava_1 = require("ava"); const debug_ = require("debug"); const fs = require("fs"); const jsonDiff = require("json-diff"); const path = require("path"); const media_overlay_1 = require("../src/models/media-overlay"); const publication_1 = require("../src/models/publication"); const publication_parser_1 = require("../src/parser/publication-parser"); const serializable_1 = require("r2-lcp-js/dist/es6-es2015/src/serializable"); const init_globals_1 = require("../src/init-globals"); (0, init_globals_1.initGlobalConverters_SHARED)(); (0, init_globals_1.initGlobalConverters_GENERIC)(); const debug = debug_("r2:shared#test"); function fn() { return tslib_1.__awaiter(this, void 0, void 0, function* () { return Promise.resolve("foo"); }); } (0, ava_1.default)("dummy async test", (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { debug("test ASYNC"); t.is(yield fn(), "foo"); })); (0, ava_1.default)("SMIL clock values", (t) => { t.plan(16); t.is((0, media_overlay_1.timeStrToSeconds)("12.345"), 12.345); t.is((0, media_overlay_1.timeStrToSeconds)("2345ms"), 2.345); t.is((0, media_overlay_1.timeStrToSeconds)("345ms"), 0.345); t.is((0, media_overlay_1.timeStrToSeconds)("7.75h"), 27900); t.is((0, media_overlay_1.timeStrToSeconds)("76.2s"), 76.2); t.is((0, media_overlay_1.timeStrToSeconds)("00:56.78"), 56.78); t.is((0, media_overlay_1.timeStrToSeconds)("09:58"), 598); t.is((0, media_overlay_1.timeStrToSeconds)("09.5:58"), 628); t.is((0, media_overlay_1.timeStrToSeconds)("0:00:04"), 4); t.is((0, media_overlay_1.timeStrToSeconds)("0:05:01.2"), 301.2); t.is((0, media_overlay_1.timeStrToSeconds)("124:59:36"), 449976); t.is((0, media_overlay_1.timeStrToSeconds)("5:34:31.396"), 20071.396); t.is((0, media_overlay_1.timeStrToSeconds)("5:34.5:31.396"), 20101.396); t.is((0, media_overlay_1.timeStrToSeconds)("7.5z"), 7.5); t.is((0, media_overlay_1.timeStrToSeconds)("4:5:34:31.396"), 0); t.is((0, media_overlay_1.timeStrToSeconds)(""), 0); }); function delay(okay) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return new Promise((resolve, _reject) => { setTimeout(() => { resolve(okay); }, 1000); }); }); } (0, ava_1.default)("EPUB parsing (de)serialize roundtrip", (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const dirPath = path.join(process.cwd(), "misc/epubs/"); const filePaths = fs.readdirSync(dirPath, { withFileTypes: true }). filter((f) => f.isFile() && /\.epub3?$/i.test(f.name)).map((f) => path.join(dirPath, f.name)); for (const filePath of filePaths) { debug("------------------------"); debug(filePath); let pub; try { pub = yield (0, publication_parser_1.PublicationParsePromise)(filePath); } catch (err) { console.log(err); continue; } const publicationJson1 = (0, serializable_1.TaJsonSerialize)(pub); const publication = (0, serializable_1.TaJsonDeserialize)(publicationJson1, publication_1.Publication); const publicationJson2 = (0, serializable_1.TaJsonSerialize)(publication); const str1 = JSON.stringify(publicationJson1, null, 2); const str2 = JSON.stringify(publicationJson2, null, 2); if (str1 !== str2) { process.stdout.write("###########################\n"); process.stdout.write("###########################\n"); process.stdout.write("#### JSON DIFF\n"); process.stdout.write(jsonDiff.diffString(publicationJson1, publicationJson2) + "\n"); process.stdout.write("###########################\n"); process.stdout.write("###########################\n"); t.true(yield delay(false)); return; } } t.true(yield delay(true)); })); //# sourceMappingURL=test.js.map