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

fuuka

v0.5.0

Published

A mock store for testing redux applications

Downloads

10

Readme

fuuka

This package contains a couple of utilities to aid unit testing with Redux. Examples use enzyme to render components into a fake DOM and allow testing without additional complexity like a headless browser.

A Mock Store

It's hard to test React components using the Redux provider, especially when they are nested. To improve this a fake immutable store can be used to set up a state, then assert on the condition of the component when rendered with that exact state.

import { Store } from 'fuuka';
import { mount } from 'enzyme';

let store = new Store({ name: 'Alex' });

let component = mount(
  <Provider store={store}>
    <GreetingsComponent />
  </Provider>;
);

component.find('h1').first().text().should.equal('Hello, Alex!');

Chai Plugin

When testing UI components in a React/Redux system, the result of a click or other interaction in the UI is often simply an action being dispatched, since reducers are decoupled from this and can be tested seperately. To make this common pattern a little easier, the mock store tracks any actions that are dispatched such that they can be asserted on. A Chai extension wraps this to give a nice API around it.

import { Store } from 'fuuka';
import { mount } from 'enzyme';

let store = new Store({ name: 'Alex' });

let component = mount(
  <Provider store={store}>
    <GreetingsComponent />
  </Provider>;
);

component.find('button#click-me').simulate('click');

store.should.have.dispatched({ type: 'clicked' });

A deep equality comparison is performed on the argument. Alternatively, a predicate may be supplied:

store.should.have.dispatched(a => a.type == 'clicked');