GitXplorerGitXplorer
k

rxjs-testscheduler-compat

public
12 stars
2 forks
2 issues

Commits

List of commits on branch master.
Verified
3d3339e893c283b4ad23ed32d6b8c68bcbaad253

Merge pull request #62 from kwonoj/bump-dep

kkwonoj committed 6 years ago
Unverified
fbd158affc949c2d7a036739f0ab37a323bbf225

build(package): bump up dependencies

kkwonoj committed 6 years ago
Verified
35e0b736323985426e5654ff90c11c97f4ac68a1

Merge pull request #59 from kwonoj/bump-version

kkwonoj committed 7 years ago
Unverified
7c1c12a58c28aeec77ee93a23e7efe254bcdc79e

build(release): release 1.0.3

kkwonoj committed 7 years ago
Unverified
e2f235fb6bef101ffe6eefd250bdcb072435ded7

build(package): bump up version

kkwonoj committed 7 years ago
Verified
06b858bd434c8f4bc8bf6657b464562821b77b92

Merge pull request #58 from frankwallis/master

kkwonoj committed 7 years ago

README

The README file for this repository.

Build Status codecov npm (scoped)

RxJS-TestScheduler-Compat

rxjs-testscheduler-compat provides RxJS v4's test scheduler interface to v5 version of RxJS allows to migrate existing test cases with minimum effort as well as writing new test cases for certain cases.

Install

This has a peer dependencies of rxjs@5.*.*, which will have to be installed as well

npm install @kwonoj/rxjs-testscheduler-compat

Usage

You can import TestScheduler and other helpers to create test cases.

import * as Rx from 'rxjs';
import { TestScheduler, next, complete } from '@kwonoj/rxjs-testscheduler-compat';

const scheduler = new TestScheduler();
const observer = scheduler.createObserver();

const subject = scheduler.createHotObservable(
      next(20, 'a'),
      next(40, 'b'),
      next(60, 'c'),
      complete(80)
    );

subject.subscribe(observer);

scheduler.advanceTo(30);

As this does not patches anything in RxJS v5's test scheduler, you can use both if it's needed

import * as Rx from 'rxjs';
import { TestScheduler as CompatScheduler } from '@kwonoj/rxjs-testscheduler-compat';

const v5Scheduler = new Rx.TestScheduler(...);
const v4Scheduler = new CompatScheduler();

...

Migrating from RxJS v4 test scheduler

There are few changes in api surfaces to conform with v5's scheduler interface as well as enhance conviniences.

ReactiveTest helper functions

  • ReactiveTest.onNext(value) -> next(value)
  • ReactiveTest.onError(value) -> error(value)
  • ReactiveTest.onCompleted(value) -> complete(value)
  • ReactiveTest.subscribe(value) -> subscribe(value)

Notification factory method (next, error, complete) returns implementaiton of TestMessage and subscribe returns SubscriptionLog

Scheduler instance functions

  • TestScheduler::start() -> TestScheduler::flush()
  • does not support scheduler's instance methods for scheduling such as scheduleFuture, schedulerRecursive, schedulePeriodic... except scheduleAbsolute, scheduleRelative, startScheduler

Building / Testing

Few npm scripts are supported for build / test code.

  • build: Transpiles code to ES5 commonjs to dist.
  • build:clean: Clean up existing build
  • test: Run unit test. Does not require build before execute test.
  • test:cover: Run code coverage against test cases
  • lint: Run lint over all codebases
  • lint:staged: Run lint only for staged changes. This'll be executed automatically with precommit hook.
  • commit: Commit wizard to write commit message