node package manager


A JavaScript testing component with a terse syntax.


A JavaScript testing component with a terse syntax. Supported in both Node.js and the browser.

Take a look at some of the popular JavaScript assertion/testing libraries, most of them are overly verbose.

examples from should.js docs:

var user = {
    name: 'tj'
  , pets: ['tobi', 'loki', 'jane', 'bandit']
};'name', 'tj');'pets').with.lengthOf(4);


T (
EQ (, 'tj')
EQ (user.pets.length, 4)

how about from expect.js:



T (typeof window.r == 'undefined')
T (typeof 5 == 'number')
T (Array.isArray([]))

Don't even get me started on Node.js assert.

Terst has three main advantages:

  1. There are only six methods to remember. You aren't second guessing what each method really does or constantly referring to the documentation.
  2. Your eyes can quickly scan down the left side of your tests to quickly interpret what each test should do. Terst forces you to be very explicit.
  3. It's very lightweight.
npm install --save terst
component install jprichardson/terst
<script src="/path/to/terst.js"></script>

Asserts if the value is truthy.

Asserts if the value is falsey.

Asserts if val1 strictly equals val2.

Asserts if val does not strictly equal val2.

Asserts if the value is within +- the delta.

Asserts if a function throws i.e. if it does not throw, there is an error.

NOTE: For descriptive errors, you can set terse.autoMsg = true. It's experimental only.

(MIT License)

Copyright 2013-2014, JP Richardson