Skip to content

AlexMost/rx-assert

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Helper methods for assertions in unit tests for rxjs library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published