UNPKG

mountebank-test

Version:

Over the wire test doubles

52 lines (45 loc) 1.22 kB
'use strict'; var Q = require('q'), url = require('url'), helpers = require('../../util/helpers'); function createTestRequest () { return { requestFrom: '', method: 'GET', path: '/', query: {}, headers: {}, body: '' }; } function headersFor (rawHeaders) { var result = {}; for (var i = 0; i < rawHeaders.length; i += 2) { result[rawHeaders[i]] = rawHeaders[i+1]; } return result; } function transform (request) { var parts = url.parse(request.url, true); return { requestFrom: helpers.socketName(request.socket), method: request.method, path: parts.pathname, query: parts.query, headers: headersFor(request.rawHeaders), body: request.body }; } function createFrom (container) { var deferred = Q.defer(), request = container.request; request.body = ''; request.setEncoding('utf8'); request.on('data', function (chunk) { request.body += chunk; }); request.on('end', function () { deferred.resolve(transform(request)); }); return deferred.promise; } module.exports = { createTestRequest: createTestRequest, createFrom: createFrom };