Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/floatdrop/stream-assert
Assertion library for streams
https://github.com/floatdrop/stream-assert
Last synced: about 2 months ago
JSON representation
Assertion library for streams
- Host: GitHub
- URL: https://github.com/floatdrop/stream-assert
- Owner: floatdrop
- Created: 2014-08-12T15:40:36.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-07-29T07:45:48.000Z (over 9 years ago)
- Last Synced: 2024-09-19T15:48:03.434Z (3 months ago)
- Language: JavaScript
- Size: 333 KB
- Stars: 18
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
- awesome-nodejs - stream-assert - Assertion library for streams. (Repository / Streams)
- awesome-nodejs-streams - floatdrop/stream-assert - Assertion library for streams (Modules)
README
# stream-assert
[![Build Status][travis-image]][travis-url]Assert streams with ease.
## Usage
```js
var intoStream = require('into-stream');
var assert = require('stream-assert');
var is = require('funsert');intoStream([1, 2, 3])
.pipe(assert.first(is.equal(1)))
.pipe(assert.second(is.equal(2)))
.pipe(assert.nth(2, is.equal(3)))
.pipe(assert.length(1))
.pipe(assert.end(console.log));
```## Chaining
Assertions are chained through passing `assertion` from pipe to pipe. If you want inject assertions in the middle of pipeline, you can attach `on('assertion')` handler to manualy catch assertions (instead of placing `assert.end`).
## API
### stream-assert
Builder for asserting stream.
#### nth(n, assertion)
Calls `assertion` function on `nth` element in stream.
#### first(assertion)
> alias to nth(0, obj)#### second(assertion)
> alias to nth(1, obj)#### last(assertion)
Calls `assertion` function on the last element in stream.
#### length(len)
Asserting, that length of stream is equal `len` at the end of the stream.
#### all(assertion)
Checking that all elements in stream pass assertion function.
#### any(assertion)
Checking that at least one of elements in stream pass assertion function.
#### end([cb])
Since streams has internal [buffer and highWatermark](http://nodejs.org/api/stream.html#stream_buffering),
that stops data flow, when reached — test stream needs a dumping point, that will flush that buffer.`assert.end` will dump all data to `/dev/null` — so all pipes after this point will not get any data.
### assert.defaults
Type: `Object`Contains defaults, that will be passed to `through` constructor.
* `highWatermark` — by default, will be equal `16`. If you don't want to use `assert.end`, then you can increase it.
## License
MIT (c) 2014 Vsevolod Strukchinsky
[travis-url]: http://travis-ci.org/floatdrop/stream-assert
[travis-image]: http://img.shields.io/travis/floatdrop/stream-assert.svg?branch=master&style=flat