bq/composr-core

View on GitHub
src/lib/mock/mockedRequest.js

Summary

Maintainability
A
1 hr
Test Coverage
'use strict'

function capitalizeParam (param) {
  return param.split('-').map(function (item) {
    return item.charAt(0).toUpperCase() + item.slice(1)
  }).join('-')
}

function MockedRequest (req, options) {
  if (!options) {
    options = {}
  }

  this.params = options.params ? options.params : (req && req.params ? req.params : {})
  this.query = options.query ? options.query : (req && req.query ? req.query : {})
  this.headers = req && req.headers ? req.headers : options.headers || {}
  this.body = req ? req.body : options.body || {}

  if (this.headers && typeof (this.headers) === 'object') {
    this.capitalizeHeaders()
  }
}

MockedRequest.prototype.get = function get (headerName) {
  headerName = capitalizeParam(headerName)
  return this.headers[headerName]
}

MockedRequest.prototype.capitalizeHeaders = function capitalizeHeaders () {
  var newHeaders = {}
  var module = this

  Object.keys(this.headers).forEach(function (key) {
    var newKey = capitalizeParam(key)
    newHeaders[newKey] = module.headers[key]
  })

  this.headers = newHeaders
}

module.exports = MockedRequest