r2-shared-js
Version:
Readium 2 'shared' for NodeJS (TypeScript)
125 lines • 5.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var ava_1 = require("ava");
var debug_ = require("debug");
var fs = require("fs");
var jsonDiff = require("json-diff");
var path = require("path");
var media_overlay_1 = require("../src/models/media-overlay");
var publication_1 = require("../src/models/publication");
var publication_parser_1 = require("../src/parser/publication-parser");
var serializable_1 = require("r2-lcp-js/dist/es5/src/serializable");
var init_globals_1 = require("../src/init-globals");
(0, init_globals_1.initGlobalConverters_SHARED)();
(0, init_globals_1.initGlobalConverters_GENERIC)();
var debug = debug_("r2:shared#test");
function fn() {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
return [2, Promise.resolve("foo")];
});
});
}
(0, ava_1.default)("dummy async test", function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var _a, _b;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0:
debug("test ASYNC");
_b = (_a = t).is;
return [4, fn()];
case 1:
_b.apply(_a, [_c.sent(), "foo"]);
return [2];
}
});
}); });
(0, ava_1.default)("SMIL clock values", function (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 tslib_1.__generator(this, function (_a) {
return [2, new Promise(function (resolve, _reject) {
setTimeout(function () {
resolve(okay);
}, 1000);
})];
});
});
}
(0, ava_1.default)("EPUB parsing (de)serialize roundtrip", function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var dirPath, filePaths, _i, filePaths_1, filePath, pub, err_1, publicationJson1, publication, publicationJson2, str1, str2, _a, _b, _c, _d;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
dirPath = path.join(process.cwd(), "misc/epubs/");
filePaths = fs.readdirSync(dirPath, { withFileTypes: true }).
filter(function (f) { return f.isFile() && /\.epub3?$/i.test(f.name); }).map(function (f) { return path.join(dirPath, f.name); });
_i = 0, filePaths_1 = filePaths;
_e.label = 1;
case 1:
if (!(_i < filePaths_1.length)) return [3, 8];
filePath = filePaths_1[_i];
debug("------------------------");
debug(filePath);
pub = void 0;
_e.label = 2;
case 2:
_e.trys.push([2, 4, , 5]);
return [4, (0, publication_parser_1.PublicationParsePromise)(filePath)];
case 3:
pub = _e.sent();
return [3, 5];
case 4:
err_1 = _e.sent();
console.log(err_1);
return [3, 7];
case 5:
publicationJson1 = (0, serializable_1.TaJsonSerialize)(pub);
publication = (0, serializable_1.TaJsonDeserialize)(publicationJson1, publication_1.Publication);
publicationJson2 = (0, serializable_1.TaJsonSerialize)(publication);
str1 = JSON.stringify(publicationJson1, null, 2);
str2 = JSON.stringify(publicationJson2, null, 2);
if (!(str1 !== str2)) return [3, 7];
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");
_b = (_a = t).true;
return [4, delay(false)];
case 6:
_b.apply(_a, [_e.sent()]);
return [2];
case 7:
_i++;
return [3, 1];
case 8:
_d = (_c = t).true;
return [4, delay(true)];
case 9:
_d.apply(_c, [_e.sent()]);
return [2];
}
});
}); });
//# sourceMappingURL=test.js.map