npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

rxjs-testscheduler-bootstrapper

v0.0.3

Published

Provides utility function to creates RxJS v5 test scheduler

Downloads

1

Readme

Build Status codecov npm

I have published new test suite rxSandbox, recommends it instead of this module.

RxJS-TestScheduler-Bootstrapper

RxJS v5 provides implementation to its test scheduler but there are some questions related how to set it up to actually create test using those, similar to test coverages in RxJS's repo. There are currently ongoing effort to revise those interfaces more friendly manner which'll remove churns eventually, meanwhile this package provides small utility function to setup test scheduler instances without knowning internals of how did fixture setup in source of library.

Install

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

npm install rxjs-testscheduler-bootstrapper

Usage

You can import createTestScheduler function serves as factroy function to create testscheduler and helper functions.

import { createTestScheduler } from 'rxjs-testscheduler-bootstrapper';

const { scheduler, hot, cold, expectObservable } = createTestScheduler();

const v1 = hot ('--a--b--|');
const v2 = cold('--1--2--|');

const value = v1.concatMap(() => v2);

expectObservable(value).toBe('----1--2----1--2--|');

scheduler.flush();

TestScheduler internally uses chai's assertion to compare marble based observable diagrams and it can be overridden if needed

const customMatcher = (actual: Array<any>, expected: Array<any>) => {
  //do own assertion as needed
};

//now `expectObservable` will use customMatcher instead
const s = createTestScheduler(customMatcher);

FAQ

  • I saw RxJS's test codes are not doing scheduler.flush() for each tests. Why do I need to do that?

: RxJS repo uses own test ui for mocha patches test execution suite does creation / flushing test scheduler instance. There isn't single & simple approach to make those patch works on various test runner so if you'd like to have it, you may need to setup test fixture for your own test runner.

  • I want v4's scheduler interface like scheduler::advanceTo() but scheduler doesn't have those interface

: Check https://github.com/kwonoj/rxjs-testscheduler-compat for those purpose.

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