0.2.4 • Published 6 years ago
unexpected-rxjs v0.2.4
unexpected-rxjs
Assertions for use with RxJS and Unexpected
This module is a plugin for the Unexpected assertion library which provides handy assertions against RxJS Observables.
Install
Both rxjs and unexpected are peer dependencies of this module.
$ npm install rxjs@^6 # peer dependency
$ npm install unexpected unexpected-rxjs --save-devUsage
Use as an Unexpected plugin in Node.js:
const unexpected = require('unexpected');
const expect = unexpected.clone().use(require('unexpected-rxjs'));Or using ES modules:
import unexpected from 'unexpected';
import unexpectedRxjs from 'unexpected-rxjs';
const expect = unexpected.clone().use(unexpectedRxjs);Browser, using globals:
const unexpected = window.weknowhow.expect;
const expect = unexpected.clone().use(window.unexpectedRxjs);Then:
import {of} from 'rxjs';
describe('contrived example', function() {
it('should emit "foo"', function() {
return expect(of('foo', 'bar'), 'to emit values', 'foo', 'bar');
});
});Assertions
Note: All assertions return Promise values, so you will want to return expect(/*...*/) (using Mocha) or otherwise use async functions.
<Observable> to complete- Asserts anObservablecompletes. Given the halting problem, this can only fail if theObservableemits an error or your test framework times out.<Observable> [not] to emit (value|values) <any+>- Asserts anObservableemits one or more values using object equivalence.<Observable> [not] to emit times <count>- Asserts anObservableemits count times.<Observable> [not] to emit (once|twice|thrice)- Sugar for previous assertion.<Observable> [not] to emit error <any?>- Asserts anObservableemits an "error"; uses Unexpected's default error matching.<Observable> to emit error [exhaustively] satisfying <any>- Asserts anObservableemits an "error" using "to satisfy" semantics.<Observable> [not] to complete with value <any+>- Assert when anObservablecompletes, it has emitted one or more matching values.<Observable> [not] to complete with value [exhaustively] satisfying <any+>- Same as previous, except using "to satisfy" semantics.<Observable> when complete <assertion>- Akin to Unexpected's<Promise> when fulfilled <assertion>syntax.
Development
Execute npm run build to bundle the project for distribution.
Notes
<Observable> [not] to complete with value [exhaustively] satisfying <any+>has some significant performance issues.
License
Copyright © 2019 IBM. Licensed Apache-2.0