springboard

> "Because your codebase should only be feature-level code"


Install
npm install springboard@0.12.0

Documentation

springboard

Build Status

Installing

npm install springboard

Usage

springboard makes it simple to write full-stack HTTP tests for your express applications. Let's start with a simple express application.

express = require "express"
app = express()

app.use express.bodyParser()
app.use express.methodOverride()
app.use app.router

app.get "/hello", (req, res) ->
  res.send "Hello, world!"

app.post "/post", (req, res) ->
  res.send "Hello, #{req.body.name}!"

module.exports = app

Now, let's write some tests with springboard! We'll use the mocha testing framework and chai for assertions.

expect = require("chai").expect
springboard = require "springboard"
app = require "./app.coffee"

describe "springboard", ->
  it "handles GET requests", (done) ->
    springboard.withServer app, (r) ->
      r.get "/hello", (err, result) ->
        expect(result).to.eql("Hello, world!")
        r.stop()
        done()

  it "allows POST requests with form data", (done) ->
    springboard.withServer app, (r) ->
      r.post "/post", {name: "Drew"}, (err, result, response) ->
        expect(result).to.eql("Hello, Drew!")
        r.stop()
        done()

  it "allows POST requests with JSON data", (done) ->
    springboard.withServer app, (r) ->
      r.post "/post", JSON.stringify({name: "Drew"}), (err, result, response) ->
        expect(result).to.eql("Hello, Drew!")
        r.stop()
        done()

For more examples, take a look at the tests.

Contributing

To install dependencies, compile the coffeescript and run the tests, just run

npm install
npm test

Now write some tests, make them pass and send me a pull request!