UNPKG

rafa

Version:

Rafa.js is a Javascript framework for building concurrent applications.

46 lines (41 loc) 1.36 kB
module.exports = (assert, Rafa) => { suite("until", () => { test("emit until value", () => { var values = [1,2]; var idx = 0; var messages = []; var it = Rafa.Enumerator.until(() => values[idx++], 2); var callback = m => messages.push(m); it.next(callback); it.next(callback); assert.equal(messages[0].value, 1); assert.equal(messages[1].value, 2); assert.ok(messages[1].isDone); }); test("emit until undefined", () => { var values = [1]; var idx = 0; var messages = []; var it = Rafa.Enumerator.until(() => values[idx++]); var callback = m => messages.push(m); it.next(callback); it.next(callback); assert.equal(messages[0].value, 1); assert.isUndefined(messages[1].value); assert.ok(messages[1].isDone); }); test("throws CompleteError", () => { var it = Rafa.Enumerator.until(() => undefined) it.next(it.noop); assert.throws(() => it.next(it.noop), RangeError, "Enumerator is complete"); }); test("emit error", () => { var it = Rafa.Enumerator.until(() => new Error("foo")); it.next(function(message){ assert.ok(message.isError); assert.ok(message.error instanceof Error); assert.equal(message.error.message, "foo"); }); }); }); };