• Stars
    star
    1
  • Language
    JavaScript
  • Created over 8 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Helper methods for assertions in unit tests for rxjs library

rx-assert

Helper methods for making asserts in unit tests for rxjs library.

Installation

npm install rx-assert

Description

This package provides a low level api for comparing observable sequences. Can be used in unit tests for comparing observables.
Here is the wrapper around this library to use it as chai plugin - chai-rx-assert

Example:

const rxAssert = require('rx-assert');

const assert = require('chai').assert;

const Rx = require('rx');
const TestScheduler = Rx.TestScheduler;
const onNext = Rx.ReactiveTest.onNext;
const onError = Rx.ReactiveTest.onError;
const onCompleted = Rx.ReactiveTest.onCompleted;
const subscribe = Rx.ReactiveTest.subscribe;

describe('getDelayedStream', () => {
    
    it('should return messages with delay', () => {
        const scheduler = new TestScheduler();

        const xs = scheduler.createHotObservable(
            onNext(150, 1),
            onNext(250, 2),
            onNext(350, 3),
            onNext(450, 4),
            onCompleted(550)
        );

        const results = scheduler.startScheduler(() => {
            return xs.delay(100, scheduler);
        });

        const expected = [
            onNext(350, 2),
            onNext(450, 3),
            onNext(550, 4),
            onCompleted(650)
        ]

        const [equal, message] = rxAssert.isEqual(results.messages, expected);

        assert.isOk(equal, message)
    });
});

Methods

isEqual(actual, expected)

  • @param {List} actual List with notification records (onNext(), onCompleted e.t.c)
  • @param {List} expected List with notification records (onNext(), onCompleted e.t.c)
  • @return {List} List with 2 elements - [isEqual {bool}, diffMessage {String}]

First element defines wether actual and expected sequences are equal.
The second one provides a diff message.

Example:

const xs = scheduler.createHotObservable(
    onNext(150, 1),
    onNext(250, 2),
    onNext(350, 3),
    onNext(450, 4),
    onCompleted(550)
);

const results = scheduler.startScheduler(() => {
    return xs.delay(100, scheduler);
});

const expected = [
    onNext(350, 2),
    onNext(450, 3),
    onNext(550, 4),
    onCompleted(650)
]

const [equal, message] = rxAssert.isEqual(results.messages, expected);

Dev info

Installation

git clone
cd
npm install .

Test coverage

Contributions are welcome. Dont forget to check the tests.

npm test

More Repositories

1

eslint-plugin-deprecate

simple eslint rules for deprecation
JavaScript
80
star
2

RxReact

Demo projects for concept of building client-side apps with Rx.js and React.js
JavaScript
43
star
3

fretboard

guitar fretboard http://alexmost.github.io/fretboard/
JavaScript
36
star
4

morse

Here you can test your morse skills
JavaScript
21
star
5

2048

2048 implementation in elm
Elm
11
star
6

gulp-react-render

Gulp plugin for rendering reactjs components in existing markup
CoffeeScript
7
star
7

webpack-inspect

website
JavaScript
6
star
8

fresh-monads

Implementation of monads in coffeescript (inspired by haskell)
CoffeeScript
4
star
9

grunt-react-render

Renders react components in existing markup
CoffeeScript
4
star
10

hatrix

some useless but beautiful stuff in haskell
Haskell
4
star
11

url_for_for_spine

Helper for extending Spne.js Controllers functionality. Adds support for generating dynamic urls by name of controller and action. Just like in Pylons.
CoffeeScript
3
star
12

apollo-hiku-example

JavaScript
2
star
13

chai-rx-assert

Plugin for the chai assert library for comparing observables in tests
JavaScript
2
star
14

abs.js

Awesome Build Sequence based on Gulp tasks and streams.
CoffeeScript
2
star
15

my-courses

Online courses materials, examples and problem solvings
Assembly
2
star
16

hsnake

snake written in haskell
Haskell
2
star
17

wrapper-commonjs

wraps javascript files in modules and bundles
CoffeeScript
2
star
18

generator-rxreact

yeoman generator for modules with usage of Rx.js and React.js
CoffeeScript
1
star
19

map-set-demo

Demo for map and set usecase
JavaScript
1
star
20

gimme-deps

Package for resolving require dependencies from node modules.
CoffeeScript
1
star
21

banner-test

Python
1
star
22

waitevent

waitevent
CoffeeScript
1
star
23

eslint-plugin-cross-import

Plugin that prevents crossimports
JavaScript
1
star