Wondering what’s next for npm?Check out our public roadmap! »

    @kwonoj/rxjs-testscheduler-compat
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.3 • Public • Published

    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

    Install

    npm i @kwonoj/rxjs-testscheduler-compat

    DownloadsWeekly Downloads

    51

    Version

    1.0.3

    License

    MIT

    Unpacked Size

    50.3 kB

    Total Files

    32

    Last publish

    Collaborators

    • avatar