UNPKG

rafa

Version:

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

42 lines (38 loc) 1.27 kB
module.exports = (assert, Rafa) => { suite("until", () => { test("emits until inner message", () => { var values = []; var outer = Rafa.stream(); var inner = Rafa.stream(); outer.until(inner).each(v => values.push(v)).done(v => values.push(v)); outer.write(1).write(2); inner.write(3); assert.equal(values.length, 4); assert.equal(values[0], 1); assert.equal(values[1], 2); assert.equal(values[2], 3); assert.equal(values[3], 3); assert.isNull(outer.child); assert.isNull(inner.child); }); test("outer errors pass through", () => { var values = []; var outer = Rafa.stream(); outer.until(Rafa.stream()).error(v => values.push(v)).done(v => values.push(v)); outer.write(new Error("oops")); assert.equal(values.length, 1); assert.isNotNull(values[0]); assert.equal(values[0].message, "oops"); }); test("outer done detaches all", () => { var values = []; var outer = Rafa.stream(); var inner = Rafa.stream(); outer.until(inner).done(v => values.push(v)); outer.write(1, true); assert.equal(values[0], 1); assert.isNull(outer.child); assert.isNull(inner.child); }); }); };