sodiumjs
Version:
A Functional Reactive Programming (FRP) library for JavaScript
32 lines (29 loc) • 839 B
text/typescript
import * as sodium from '../../lib/Lib';
afterEach(() => {
if (sodium.getTotalRegistrations() != 0) {
throw new Error('listeners were not deregistered');
}
});
test("should test rank", done => {
const ca = new sodium.CellSink<boolean>(false);
const cb = sodium.Cell.switchC(ca.map(a => {
if (a) {
let ca = new sodium.Cell(0);
for (let i = 0; i < 50; ++i) {
ca = ca.map(x => x);
}
return ca;
} else {
return new sodium.Cell(0);
}
}));
let sa = new sodium.Stream<number>();
let sb = sa.snapshot1(cb);
const kill = sb.listen(() => {});
const rank1 = sb.getVertex__().rank;
ca.send(true);
const rank2 = sb.getVertex__().rank;
kill();
expect(rank1).toEqual(rank2);
done();
});