##// END OF EJS Templates
corrected tear down logic handling in observables. Added support for observable query results
corrected tear down logic handling in observables. Added support for observable query results

File last commit:

r110:1a190b3a757d v1.4.0 default
r110:1a190b3a757d v1.4.0 default
Show More
observable-tests.ts
52 lines | 1.1 KiB | video/mp2t | TypeScriptLexer
/ djx / src / test / ts / observable-tests.ts
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102 import { observe } from "./observable";
import * as t from "tap";
const subj1 = observe<number>(({ next, complete }) => {
next(1);
complete();
next(2);
});
const consumer1 = {
sum: 0,
next(v: number) {
this.sum += v;
}
cin
linting
r108 };
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102
subj1.subscribe(consumer1);
t.equal(consumer1.sum, 1, "Should get only one value");
subj1.subscribe(consumer1);
t.equal(consumer1.sum, 2, "Should get the value again");
const consumer2 = {
value: 0,
completed: false,
next(v: number) { this.value = v; },
complete() { this.completed = true; }
};
let maps = 0;
subj1
.map(v => {
cin
linting
r108 t.comment(`map1: ${v * 2}`);
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102 maps++;
return v * 2;
})
.map (v => {
cin
linting
r108 t.comment(`map2: ${v * 2}`);
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102 maps++;
return v * 2;
})
.map(v => {
cin
linting
r108 t.comment(`map3: ${v * 2}`);
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102 maps++;
cin
linting
r108 return v * 2;
cin
`Subscribable` is made compatible with rxjs, added map, filter and scan...
r102 })
.subscribe(consumer2);
t.equal(consumer2.value, 8, "Should map");
t.equal(maps, 3, "The map chain should not be executed after completion");
cin
corrected tear down logic handling in observables. Added support for observable query results
r110 t.ok(consumer2.completed, "The completion signal should pass through");