UNPKG

rafa

Version:

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

65 lines (57 loc) 1.82 kB
module.exports = function(assert, Rafa) { suite("write", () => { test("has callback", () => { var l = Rafa.channel(); var value; var callback = m => value = m; l.callback = callback; l.write(1); assert.equal(value, 1); assert.isNull(l.callback); }); test("has size & no callback", () => { var l = Rafa.channel(2); l.write(1); assert.equal(l.buffer.length, 1); assert.equal(l.buffer.buffer[0], 1); l.write(2); assert.equal(l.buffer.length, 2); assert.equal(l.buffer.buffer[0], 1); assert.equal(l.buffer.buffer[1], 2); }); test("drop & keep first in: size of 1", () => { var l = Rafa.channel(1); l.write(1); l.write(2); assert.equal(l.buffer.length, 1); assert.equal(l.buffer.buffer[0], 1); }); test("drop & keep first in: size of 4", () => { var l = Rafa.channel(4); var i = 0; while (i < 6) l.write(i++); assert.equal(l.buffer.length, 4); assert.equal(l.buffer.buffer[0], 0); assert.equal(l.buffer.buffer[1], 1); assert.equal(l.buffer.buffer[2], 2); assert.equal(l.buffer.buffer[3], 3); }); test("drop & keep last in: rotate with size of 1", () => { var l = Rafa.channel(1, 'rotate'); l.write(1); l.write(2); assert.equal(l.buffer.length, 1); assert.equal(l.buffer.buffer[0], 2); }); test("drop & keep last in: rotate with size of 4", () => { var l = Rafa.channel(4, 'rotate'); var i = 0; while (i < 6) l.write(i++); assert.equal(l.buffer.length, 4); assert.equal(l.buffer.buffer[0], 4); assert.equal(l.buffer.buffer[1], 5); assert.equal(l.buffer.buffer[2], 2); assert.equal(l.buffer.buffer[3], 3); }); }); };