replay
Version:
When API testing slows you down: record and replay HTTP responses like a boss
58 lines (45 loc) • 1.33 kB
text/coffeescript
# NOTES:
# All requests using a hostname are routed to 127.0.0.1
# Port 3001 has a live server, see below for paths and responses
# Port 3002 has no server, connections will be refused
DNS = require("dns")
Express = require("express")
Replay = require("../lib/replay")
# Directory to load fixtures from.
Replay.fixtures = "#{__dirname}/fixtures"
# Redirect HTTP requests to pass-through domain
original_lookup = DNS.lookup
DNS.lookup = (domain, callback)->
if domain == "pass-through"
callback null, "127.0.0.1", 4
else
original_lookup domain, callback
# Serve pages from localhost.
server = Express.createServer()
server.use Express.bodyParser()
# Success page.
server.get "/", (req, res)->
res.send "Success!"
# Not found
server.get "/404", (req, res)->
res.send 404, "Not found"
# Internal error
server.get "/500", (req, res)->
res.send 500, "Boom!"
# Setup environment for running tests.
setup = (callback)->
server.listen 3001, callback
return
if server._connected
callback null
return
server.on "listening", callback
unless server._connecting
server._connecting = true
server.listen 3001, ->
server._connected = true
exports.assert = require("assert")
exports.setup = setup
exports.vows = require("vows")
exports.HTTP = require("http")
exports.Replay = Replay