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

quadric-chimp

v0.51.4

Published

Develop acceptance tests & end-to-end tests with realtime feedback.

Downloads

17

Readme

Chimp.js

Circle CI npm Version Code Climate License OpenCollective OpenCollective

Gitter Slack Status

An awesome developer-centric experience to writing tests with realtime feedback using Mocha, Jasmine or Cucumber.js.

Chimp by Xolv.io

Chimp can be used with any technology stack as it allows your to write your test automation in the language of the web: JavaScript.

Realtime feedback?

Traditionally only available for unit testing, and now you can get super fast feedback for your acceptance and end-to-end tests:

Realtime feedback

Set an @focus tag in the spec title, save a file, Chimp reruns the spec until you make it pass.

Want to be a Chimp Ninja?

Checkout our new book where you can learn how to use Chimp across the Full Stack from React to Node.JS, Mocha, Meteor and more.

Quality Faster by Sam Hatoum, creator of Chimp.

Installation as cli

npm install -g chimp

Be sure to checkout our Automated Testing Best Practices repository.

Having trouble? See the installation documentation.

Usage as cli

For development mode, you can use the watch mode:

chimp --watch

You can also easily change the browser Chimp with --browser, e.g. --browser=phantomjs

Installation as gulp/grunt module

npm install chimp

Usage in a gulp task

let Chimp = require('chimp');
let options = require('./my/config/for/chimp');
options['_'] = [
	'/my/path/to/node',
	'/my/path/to/my/project/node_modules/.bin/chimp.js'
];
let chimp = new Chimp(options);
chimp.run(function (err, res) {
	console.log('CHIMP RES:',res);
	console.log('CHIMP ERR:',err);
	//next action after chimp finish
});

Documentation

Read the full documentation site.

(Thank you to Readme.io for the OSS <3)

Additional Features

Synchronous Javascript

WebdriverIO

We chose WebdriverIO for it's awesome API and made it awesomer by converting it to a synchronous syntax:

browser.url('http://google.com'); // SETUP

var title = browser.getTitle();   // EXECUTE

expect(title).to.equal('Google'); // VERIFY

No callback-hell or confusing assertions with promises, just easy-to-read synchronous code that works as you expect it to.

Easy CI

CI

Chimp is tested on all the popular CI servers. We genuinely just want you to focus on writing tests and let us deal with all the boring bits!

Mocha, Jasmine or Cucumber.js

Test Frameworks

Some developers love Jasmine and Mocha, and some teams love to use Cucumber for BDD. We decided to give you the choice between the best in class test frameworks for writing end-to-end and acceptance tests.

Client & Server

End-to-end and acceptance testing often require you to setup data on the server and reset state between specs.

Chimp exposes a global function called request that is a synchronous version of the popular request module. Our synchronous version of the request module allows you to call your server to reset your system or setup data and receive a result back synchronously, like this:

var userId = request({
  url: 'http://localhost:3000/fixtures/createUser'
  method: 'POST',
  json: true,
  body: {username: 'Bob', password: 't0ps3cret'}
});

Or if you are using Meteor, you can get fancy with our server.execute method:

var privateSetting = server.execute(function(settingKey) {
  return Meteor.settings[settingKey];
}, 'privateSetting')
Lots more

Chimp is PACKED with features that make your life easier. See the documentation site for more details.

Using Meteor?

Chimp comes with first-grade Meteor support out-of-the-box, including hot-deploy detection that runs specs after your Meteor client or server restart.

Be sure to checkout our Automated Testing Best Practices repository which is written using Meteor.

Usage

In development mode, use the watch mode:

# start your Meteor app first
chimp --watch --ddp=http://localhost:3000

On CI, can select the browser:

# start your Meteor app first
chimp --browser=firefox --ddp=http://localhost:3000

Multiple Meteor Servers

If you'd like to run a test with more than one Meteor app server, you can do so by running the same app on multiple ports and providing mulitple -ddp options to chimp:

# start first app
meteor --port 3005

# start second app in another shell 
meteor --port 3007

# run chimp in another shell
chimp --watch --ddp=http://localhost:3005 --ddp=http://localhost:3007

Then you can access the servers in your tests on the global server.instances property

it('has PORT env var set', function() {
  function getRootUrl() {
    return process.env.ROOT_URL;
  }
  expect(server.instances[0].execute(getRootUrl)).to.equal('http://localhost:3005/');
  expect(server.instances[1].execute(getRootUrl)).to.equal('http://localhost:3007/');
});

Analytics

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

Community

Slack: Join our Slack xolv.io/community #chimp channel, where you can find help and help others.

Gitter: https://gitter.im/xolvio/chimp

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]