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

mocha-gwt

v0.2.2

Published

Given When Then for Mocha

Downloads

4,224

Readme

mocha-gwt

Build Status

Given When Then for mocha

Introduction

mocha-gwt is a proud rewrite of mocha-given, which is a shameless port of Justin Searls' jasmine-given. As everyone of course knows, jasmine-given is a shameless tribute to Jim Weirichs' terrific rspec-given gem

If you are not aware of any of the mentioned projects, I recommend Justin Searl's video Javascript Testing Tactics and the documentation to jasmine-given. In time I will most likely write documentation for this myself.

Why yet another "given"-project?

I have been using jasmine and jasmine-given for a while but I found myself more and more favouring mocha over jasmine. I find mocha to be a more mature test runner and it seems to have greater performance. I was also bothered by some bugs in jasmine-given and mocha-given. Furthermore I wanted to utalize the promise support that exists in mocha. After looking at the code, and figuring out by hand how to write mocha interfaces, I came to the conclusion that a complete re-write where I had full fredom to experiment was the best solution. I now believe that I was right.

Differences from jasmine-given and mocha-given

  • Promise support. When -> Promise.resolve('foo').then (@result) => will make @result available in the following Then
  • Invariants will fail if you strictly return false just like Then and And
  • Invariants are enough to run a test
describe 'myFunction', ->

  When -> @result = myFunction @input
  Invariant -> @result == ''

  describe 'should return an empty string for undefined input'
    Given -> @input = ''

  describe 'should return an empty string for null input'
    Given -> @input = null
  • Multiple Then functions in the same describe will act just like Then, And, And... I.e it will not rerun the Given and When functions that belong to the suite. This might be changed to follow the standard. But I have myself never encountered a test where non-repetition was not the desire.

Usage

  1. Install: npm i -D mocha-gwt
  2. Run mocha with it: mocha --ui mocha-gwt
  3. To use with coffee-script do mocha --ui mocha-gwt --require coffee-script --compilers coffee:coffee-script/register