Package Exports
- rx-to-async-iterator
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (rx-to-async-iterator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
rx-to-async-iterator
Convert RxJS Observable streams to async iterators
This module is primarily intended for use in testing more complex RxJS-based async sequences, though that doesn't preclude other use cases.
It is intended for use with mocha for testing as modified by co-mocha for coroutine/generator support.
Installation
NPM
npm install --save rx-to-async-iterator
Usage
require('co-mocha');
const Rx = require('rx');
const chai = require('chai');
const expect = chai.expect;
require ('to-async-iterator');
// Side effect: Adds methods to Rx.Observable prototype.
describe("some examples", function() {
it("can verify that an Observable generates a predetermined sequence of values", function* () {
const iter = Rx.Observable.from([42, 45]).toAsyncIterator();
expect(yield iter.nextValue()).to.equal(42);
// Will throw if onError or onCompleted are produced.
expect(yield iter.nextValue()).to.equal(45);
yield iter.shouldComplete();
// Will throw if onNext or onError are produced.
});
it("has a shortcut form for an Observable that produces a single value", function* () {
expect(yield Rx.Observable.just(47).shouldGenerateOneValue()).to.equal(47);
// Will throw if any sequence other than onNext(47), onCompleted() is produced.
});
it("has a shortcut form for an Observable that produces no values", function* () {
expect(yield Rx.Observable.empty(47).shouldBeEmpty();
// Will throw if onNext or onError are produced.
});
it("can verify that an Observable generates an error", function* () {
const iter = Rx.Observable.throw(new Error("expected failure")).toAsyncIterator();
expect((yield iter.shouldThrow()).message).to.equal("expected failure");
});
it("has a shortcut form for an Observable that only generates an Error", function* () {
const obs = Rx.Observable.throw(new Error("expect this fail"));
expect((yield obs.shouldThrow()).message).to.equal("expect this fail");
});
});
License
MIT