UNPKG

rafa

Version:

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

51 lines (46 loc) 1.56 kB
module.exports = (assert, Rafa) => { suite("all", () => { test("handles values", () => { var messages = []; var a = Rafa.stream(); a.all(message => messages.push(message)); a.push(Rafa.context(), Rafa.message(1)); assert.equal(messages.length, 1); assert.isNotNull(messages[0]); assert.ok(messages[0].isValue); assert.equal(messages[0].value, 1); }); test("handles errors", () => { var messages = []; var a = Rafa.stream(); a.all(message => messages.push(message)); a.push(Rafa.context(), Rafa.errorMessage(1)); assert.equal(messages.length, 1); assert.isNotNull(messages[0]); assert.ok(messages[0].isError); assert.equal(messages[0].error, 1); }); test("handles done", () => { var messages = []; var a = Rafa.stream(); a.all(message => messages.push(message)); a.push(Rafa.context(), Rafa.doneMessage(1)); assert.equal(messages.length, 1); assert.isNotNull(messages[0]); assert.ok(messages[0].isDone); assert.equal(messages[0].value, 1); }); test("call order", () => { var values = []; var stream = Rafa.stream(); stream .all(m => { values.push(m.value); return m; }) .all(m => { values.push(m.value * 2); return m; }) .all(m => { values.push(m.value * 4); return m; }); stream.push(Rafa.context(), Rafa.message(1)); assert.equal(values[0], 1); assert.equal(values[1], 2); assert.equal(values[2], 4); }); }); };