UNPKG

@gameye/sdk

Version:
72 lines 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const test = require("blue-tape"); const stream_1 = require("stream"); const stream_utils_1 = require("./stream-utils"); test("with-timeout", async (t) => { { const resolvedPromise = Promise.resolve("a"); t.equal(await stream_utils_1.withTimeout(resolvedPromise), "a"); } { const pendingPromise = new Promise(resolve => 0); t.equal(await stream_utils_1.withTimeout(pendingPromise), stream_utils_1.timeoutToken); } { const rejectedPromise = Promise.reject("a"); try { await stream_utils_1.withTimeout(rejectedPromise); t.fail(); } catch (error) { t.equal(error, "a"); } } }); test("read-all", async (t) => { const pass = new stream_1.PassThrough(); const promise = stream_utils_1.readAll(pass); t.equal(await stream_utils_1.withTimeout(promise), stream_utils_1.timeoutToken); pass.write("a"); t.equal(await stream_utils_1.withTimeout(promise), stream_utils_1.timeoutToken); pass.end("b"); t.equal(await stream_utils_1.withTimeout(promise), "ab"); }); test("streamify data event", async (t) => { const pass = new stream_1.PassThrough({ objectMode: true }); const streamPromise = Promise.resolve(pass); const stream = stream_utils_1.streamify(streamPromise); const dataPromise = new Promise(resolve => stream.once("data", resolve)); pass.write("a"); t.equal(await dataPromise, "a"); }); test("streamify end event", async (t) => { const pass = new stream_1.PassThrough({ objectMode: true }); const streamPromise = Promise.resolve(pass); const stream = stream_utils_1.streamify(streamPromise); const dataPromise = new Promise(resolve => stream.once("data", resolve)); pass.write("data"); await dataPromise; const endPromise = new Promise(resolve => stream.once("end", resolve)); pass.end(); t.notEqual(await stream_utils_1.withTimeout(endPromise), stream_utils_1.timeoutToken); }); test("streamify close event", async (t) => { const pass = new stream_1.PassThrough({ objectMode: true }); const streamPromise = Promise.resolve(pass); const stream = stream_utils_1.streamify(streamPromise); t.notEqual(await stream_utils_1.withTimeout(streamPromise), stream_utils_1.timeoutToken); const closePromise = new Promise(resolve => stream.once("close", resolve)); pass.destroy(); t.notEqual(await stream_utils_1.withTimeout(closePromise), stream_utils_1.timeoutToken); }); test("streamify error event", async (t) => { const pass = new stream_1.PassThrough({ objectMode: true }); const streamPromise = Promise.resolve(pass); const stream = stream_utils_1.streamify(streamPromise); t.notEqual(await stream_utils_1.withTimeout(streamPromise), stream_utils_1.timeoutToken); const errorPromise = new Promise(resolve => stream.once("error", resolve)); pass.emit("error", "a"); t.equal(await stream_utils_1.withTimeout(errorPromise), "a"); }); //# sourceMappingURL=stream-utils.spec.js.map