1 // a fake registry server.
3 var http = require('http')
4 var server = http.createServer(handler)
5 var port = server.port = process.env.PORT || 1337
8 module.exports = server
13 function handler (req, res) {
14 req.connection.setTimeout(1000)
16 var u = '* ' + req.url
17 , mu = req.method + ' ' + req.url
19 var k = server._expect[mu] ? mu : server._expect[u] ? u : null
20 if (!k) throw Error('unexpected request: ' + req.method + ' ' + req.url)
22 var fn = server._expect[k].shift()
23 if (!fn) throw Error('unexpected request' + req.method + ' ' + req.url)
26 var remain = (Object.keys(server._expect).reduce(function (s, k) {
27 return s + server._expect[k].length
29 if (remain === 0) server.close()
30 else console.error("TEST SERVER: %d reqs remain", remain)
31 console.error(Object.keys(server._expect).map(function(k) {
32 return [k, server._expect[k].length]
33 }).reduce(function (acc, kv) {
43 this.setHeader('content-type', 'application/json')
44 this.end(JSON.stringify(o))
47 server.expect = function (method, u, fn) {
48 if (typeof u === 'function') {
54 server._expect[u] = server._expect[u] || []
55 server._expect[u].push(fn)