rafa
Version:
Rafa.js is a Javascript framework for building concurrent applications.
40 lines (36 loc) • 1.07 kB
JavaScript
require("../../core.js")((assert, Rafa) => {
suite("Rafa", () => {
test("defer", (done) => {
var now = new Date();
var value;
var channel = Rafa.defer(250);
channel.read(date => value = date);
setTimeout(() => {
assert.ok(value - now < 300, 1);
assert.ok(value - now > 100, 2);
done();
}, 300);
});
test("interval", (done) => {
var now = new Date();
var values = [];
var channel = Rafa.interval(250);
channel.read(date => values.push(date));
setTimeout(() => {
channel.read(date => values.push(date));
setTimeout(() => {
channel.read(date => values.push(date));
channel.close();
assert.ok(values[0] - now < 300, 1);
assert.ok(values[0] - now > 100, 2);
assert.ok(values[1] - now < 600, 3);
assert.ok(values[1] - now > 400, 4);
setTimeout(() => {
assert.equal(values.length, 2);
done();
}, 300);
}, 300);
}, 300);
});
});
});