Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Beautiful assertions without verbosity!
JavaScript Makefile
Branch: master
Failed to load latest commit information.
lib Name changes.
macros Name changes.
test Name changes.
.gitignore New design.
.npmignore New design.
Makefile Name changes. Name changes.
jsdoc.conf.json Name changes.
package.json Updates some packages.


Build status NPM version Dependencies status Licence Stable API

Beautiful assertion library.


  • Straight-forward: Alright should get out of your way and just let you define your tests with what you already know: plain JavaScript.

  • No verbosity: We don't want expect(x)

  • Helpful error messages: When things go wrong, Alright should do its best to show you exactly what's wrong and how you might fix it.

  • Test-framework agnostic: Alright should work with anything that expect Errors to be thrown when assertions fail.

  • Extensible: It should be easy to extend the built-in assertions with plain JavaScript.

  • Work with older Browsers: Some people still need to support old IEs, Alright should work on them.


Using the Sweet.js macros:

var _ = require('specify-assertions')

// simple assertions
add(a)(b) => a + b
add(a)(b) => not a + b

// anything goes assertions
add(a)(b) should _.equal(a + b)
add(a)(b) should not _.equal(a + b)

// asynchronous assertions with pure fantasy-land monads, or Promises/A+
asyncAdd(a)(b) will _.equal(a + b)
asyncAdd(a)(b) will not _.equal(a + b)

Using vanilla JavaScript:

var _ = require('specify-assertions')

// Use verify for synchronous assertions
_.verify(add(a)(b))(_.equals(a + b))
_.verify(add(a)(b))(_.not(_.equals(a + b)))

// use verifyFuture for monadic Futures, and verifyPromise for Promises/A+
_.verifyMonad(asyncAdd(a)(b))(_.equals(a + b))


$ npm install specify-assertions


$ npm install
$ make test


$ npm install
$ make documentation

Platform support

This library assumes an ES5 environment, but can be easily supported in ES3 platforms by the use of shims. Just include [es5-shim][] :)


Copyright (c) 2013-2014 Origami Tower.

This module is part of the Specify framework, and released under the MIT licence.

Something went wrong with that request. Please try again.