UNPKG

rafa

Version:

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

52 lines (46 loc) 1.53 kB
module.exports = (assert, Rafa) => { suite("array", () => { test("array with length of 0", () => { var message; var callback = m => message = m; var it = Rafa.Enumerator.array([]); it.next(callback); assert.ok(message.isDone); assert.isUndefined(message.value); }); test("array with length of 1", () => { var it = Rafa.Enumerator.array([1]); var messages = []; var callback = m => messages.push(m); it.next(callback); assert.equal(messages[0].value, 1); assert.ok(messages[0].isDone); }); test("array with length of 2", () => { var it = Rafa.Enumerator.array([1,2]); var messages = []; var callback = m => messages.push(m); it.next(callback); it.next(callback); assert.ok(!messages[0].isDone); assert.ok(messages[1].isDone); assert.equal(messages[0].value, 1); assert.equal(messages[1].value, 2); }); test("throws CompleteError", () => { var it = Rafa.Enumerator.array([1]); var noop = it.noop; it.next(noop); assert.throws(() => it.next(noop), RangeError, "Enumerator is complete"); }); test("emits error message", () => { var it = Rafa.Enumerator.array([new RangeError("foo")]); it.next(message => { assert.ok(message.isError); assert.ok(message.error instanceof Error); assert.ok(message.error instanceof RangeError); assert.equal(message.error.message, "foo"); }); }); }); };