axax
Version:
A library of async iterator extensions for JavaScript including ```map```, ```reduce```, ```filter```, ```flatMap```, ```pipe``` and [more](https://github.com/jamiemccrindle/axax/blob/master/docs/API.md#functions).
37 lines (36 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const combineLatest_1 = require("../combineLatest");
const subject_1 = require("../subject");
const toArray_1 = require("../toArray");
test("combineLatest", async () => {
const subjects = [
new subject_1.Subject(),
new subject_1.Subject(),
new subject_1.Subject(),
];
const combined = combineLatest_1.combineLatest(...subjects.map(s => s.iterator));
subjects[0].onNext(1);
subjects[1].onNext(2);
subjects[2].onNext(3);
subjects[0].onCompleted();
subjects[1].onCompleted();
subjects[2].onCompleted();
const result = (await toArray_1.toArray(combined)).sort();
expect(result).toEqual([[1, 2, 3]]);
});
test("combineLatest not enough values", async () => {
const subjects = [
new subject_1.Subject(),
new subject_1.Subject(),
new subject_1.Subject(),
];
const combined = combineLatest_1.combineLatest(...subjects.map(s => s.iterator));
subjects[1].onNext(2);
subjects[2].onNext(3);
subjects[0].onCompleted();
subjects[1].onCompleted();
subjects[2].onCompleted();
const result = (await toArray_1.toArray(combined)).sort();
expect(result).toEqual([]);
});