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 🙏

© 2025 – Pkg Stats / Ryan Hefner

testable-reactions

v0.3.1

Published

A fully testable react/webpack project boilerplate

Readme

The grass is always greener

Javascript Frontend Greenfield Boilerplate (IE10+)

this project includes:

Everyone loves to start new projects. This repo is a blank, new frontend project just for us! It's an amalgamation of best practises for how to setup and organize a project. You don't have to use it in your projects in this way, but it is recommended - it makes easier for developer onboarding.

Getting Started

Prerequisites: Install Docker and git. You might also want to install node.js, but this not stricly needed. For Mac: Install Docker for Mac (Stable Channel Don't install the older docker-machine. For Linux: Install Docker Engine Community Edition. You'll also need to separately install docker-compose

To run it:

  • git clone https://github.com/mousemke/testable-reactions.git
  • cd testable-reactions to go into the project folder
  • docker-compose up --build to build and run it

The "app" is then available at http://localhost:4080

To use it as a template for your projects:

  • in package.json change package, name, and author

The entry point on your new app is ./src/index.js, which is called by ./index.html.

Folder Structure Convention

src: main source code. Don't use app, even though that is comnon for React apps. src works for backend services and even Java projects!

dist: final generated files for production usage (target folder for Java projects).

test: all tests, with subfolders for unit, visual or any other folders for different types of tests

docker: anything related to docker. We used to have docker-compose.yml also in this folder, but it has moved to the root folder, as this is how docker-compose works more elegantly.

Scripts convention

Scripts, standardized across repos

available scripts:

| script | description | |----------|-------------| | build | builds the dist files | | prettier | runs prettier | | start | starts the dev server on whatever port is defined in ./variables | | test | runs all tests except the e2e tests| | test:e2e | runs the end-to-end tests | | test:e2e:debug | runs the end-to-end tests in debug mode | | test:lint | checks the js and jsx files for js and code style error | | test:lint:fix | checks the js and jsx files for js and code style error and fixes them if able | | test:style | checks the css files for style errors | | test:style:fix | checks the css files for style errors and fixes them if able | | test:type | runs flow to test the typing | | test:unit | runs a quick unit test | | test:unit:coverage | runs a unit test that determines test coverage and reports in the browser | | test:unit:coverage:cli | runs a unit test that determines test coverage and reports in the command line | | test:visual | runs visual regression tests | | test:visual:debug | runs visual regression tests with visual and console debug output | | test:visual:baseline | builds the project and copies the files to be served on test time | | test:visual:clean | removes old visual test images and the baseline. then generates a new baseline| | test:visual:cli | runs visual regression tests |

you can run script from the docker container is already running by doing either of these:

  • login to container with docker-compose exec testable-reations bash and the run scripts from within container with npm run --silent <script>
  • run any script directly via docker-compose exec testable-reactions npm run --silent <script>.

to run them from docker, when a the docker container is already running: Either login to container with docker-compose exec testable-reations bash and the run scripts from within container with npm run --silent <script> or run any script directly via docker-compose exec testable-reactions npm run --silent <script>.

Contributing

This project adheres to the Contributor Covenant. By participating, you are expected to honor this code.

Testable-Reactions - Code of Conduct

Issues

Please report issues here.

  • add any specific information that can help to reproduce and resolve the bug.
    • What did you do, when the bug appeared.
    • Node, NPM, + version number
    • OS, Browser + version, resolution
  • Add a label to the issue, if possible.
    • critical -> needs fix right away (like broken build, blocks development)
    • bug -> needs fix
    • issue -> small bug, does not affect anything (small bug in UI, design issue)
    • feature -> feature request
    • question -> needs discussion
    • docs -> needs documentation
    • help wanted -> need help with implementation or fixing bug

Included package details

React

React is a JavaScript library for building user interfaces.

https://facebook.github.io/react/

Redux

Redux is a predictable state container for JavaScript apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test.

https://redux.js.org/

Babel

Babel transforms your JavaScript

ES2015 and beyond Babel has support for the latest version of JavaScript through syntax transformers. These plugins allow you to use new syntax, right now without waiting for browser support.

https://babeljs.io/

Webpack

Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jade, coffee, css, less, ... and your custom stuff.

https://webpack.github.io/

Docker

A lightweight containerization tools. Main benefits to use it: Total freedom to choose whatever compiler/interpreter version you want, No need to install dependencies on dev machine, Same code in dev and production, Easy orchestration of multiple microservices.

Docker Intro

Docker Ports

When mapping ports from container to host in the docker-compose.yml file like this

    ports:
      - 4080:4080

the host port (first number) needs to be choosen wisely. It needs to be unique for all services running on one host, and since we run services on clusters, there can be a multitude of services. Only ports in the range from 4000 to 9999 are allowed due to Security Groups.

NYC

NYC instruments your ES5 and ES2015+ JavaScript code with line counters, so that you can track how well your unit-tests exercise your codebase.

https://www.npmjs.com/package/nyc

Mocha

Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases. Hosted on GitHub.

http://mochajs.org/

Nightmare

Nightmare is a high-level browser automation library.

http://www.nightmarejs.org/

Torment

Perceptual diffing suite built on Nightmare

https://github.com/mousemke/torment

Enzyme

Enzyme is a JavaScript Testing utility for React that makes it easier to assert, manipulate, and traverse your React Components' output.

Enzyme's API is meant to be intuitive and flexible by mimicking jQuery's API for DOM manipulation and traversal.

http://airbnb.io/enzyme/

Sinon

Standalone test spies, stubs and mocks for JavaScript. No dependencies, works with any unit testing framework.

http://sinonjs.org/

Coveralls

Coveralls works with your CI server and sifts through your coverage data to find issues you didn’t even know you had before they become a problem.

https://coveralls.io/

eslint

ESLint is an open source project originally created by Nicholas C. Zakas in June 2013. Its goal is to provide a pluggable linting utility for JavaScript.

http://eslint.org/

StyleLint

A mighty, modern CSS linter that helps you enforce consistent conventions and avoid errors in your stylesheets.

http://stylelint.io/

Flow

Flow is a static type checker for your JavaScript code. It does a lot of work to make you more productive. Making you code faster, smarter, more confidently, and to a bigger scale.

https://flow.org

Prettier

Prettier is an opinionated code formatter.

https://prettier.io/

change log


0.3.1

  • republished afer a readme error

0.3.0

  • added redux
  • updated styles
  • replaced istanbul with nyc

0.2.1

  • added nightmare for e2e testing
  • cleaned dependencies

0.2.0

  • exchanged niffy for torment
  • updated dependencies
  • updated webpack config

0.1.5

  • removed serve niffy script

0.1.4

  • added niffy
  • visual tests pass
  • added niffy server
  • added prepush

0.1.3

  • updated most dependencies
  • added prettier
  • added flow
  • added precommit tests

0.0.3

  • updated structure
  • added a fish

0.0.2

  • eslint added