title: frisbyjs test is failing because get() is not sending the HTTP headers
body: <p>I have a frisbyjs test inside another frisbyjs test's afterJSON() that is failing. When I debug the server code, it appears that the x-access-token and x-key HTTP headers are not getting sent. Am I sending them wrong? Surely I'm doing something silly.</p>
  
  <p>Below is the outer test. The first test in afterJSON() is the one that fails:</p>
  
  <pre><code>frisby.create('Should be able to log in with test user')
  .post(appHost + '/login',
      {
          username:'test@voxoid.com',
          password:'pass123'
      },
      {json: true},
      {headers: {'Content-Type': 'application/json'}})
  .expectStatus(200)
  .expectJSONTypes({ token: String })
  .expectJSON({
      user: {
          name:'test',
          role:'admin',
          username:'test@voxoid.com'
      }
  })
  .afterJSON(function(res) {
      // TODO: The functionality works, but this test does not; the headers do not get sent.
      console.log('x-access-token: ' + res.token);
      console.log('x-key: ' + res.user.username);
  
      // **************** THIS IS THE TEST THAT FAILS ********************
      frisby.create('Should allow access with valid token')
          .get(appHost + '/api/v1/products',{},
              {json:true},
              {headers:{
                  'x-access-token': res.token,
                  'x-key': res.user.username
              }})
          .inspectJSON()
          .expectStatus(200)
          .toss();
  
      frisby.create('Should not allow access with invalid token')
          .get(appHost + '/api/v1/products',{},
          {json:true},
          {headers:{
              'x-access-token': res.token + '123',
              'x-key': res.user.username
          }})
          .expectStatus(401)
          .toss();
  })
  .toss();
  </code></pre>
  
  <p>The inspectJSON() results in:</p>
  
  <pre><code>{ status: 401, message: 'Invalid Token or Key' }
  </code></pre>
  
  <p>And here is the server code (an express middleware) handling the request, where token and key both end up 'undefined' while debugging, and res.headers does not contain the x-access-token nor x-key headers:</p>
  
  <pre><code>var jwt = require('jwt-simple');
  var validateUser = require('../routes/auth').validateUser;
  
  module.exports = function(req, res, next) {
  
    // When performing a cross domain request, you will recieve
    // a preflighted request first. This is to check if our the app
    // is safe. 
  
    // We skip the token outh for [OPTIONS] requests.
    //if(req.method == 'OPTIONS') next();
  
    var token = (req.body &amp;&amp; req.body.access_token) || (req.query &amp;&amp; req.query.access_token) || req.headers['x-access-token'];
    var key = (req.body &amp;&amp; req.body.x_key) || (req.query &amp;&amp; req.query.x_key) || req.headers['x-key'];
  
    if (token || key) {
      try {
        var decoded = jwt.decode(token, require('../config/secret.js')());
  
        if (decoded.exp &lt;= Date.now()) {
          res.status(400);
          res.json({
            "status": 400,
            "message": "Token Expired"
          });
          return;
        }
  
        // Authorize the user to see if s/he can access our resources
  
        var dbUser = validateUser(key); // The key would be the logged in user's username
        if (dbUser) {
  
  
          if ((req.url.indexOf('admin') &gt;= 0 &amp;&amp; dbUser.role == 'admin') || (req.url.indexOf('admin') &lt; 0 &amp;&amp; req.url.indexOf('/api/v1/') &gt;= 0)) {
            next(); // To move to next middleware
          } else {
            res.status(403);
            res.json({
              "status": 403,
              "message": "Not Authorized"
            });
            return;
          }
        } else {
          // No user with this name exists, respond back with a 401
          res.status(401);
          res.json({
            "status": 401,
            "message": "Invalid User"
          });
          return;
        }
  
      } catch (err) {
        res.status(500);
        res.json({
          "status": 500,
          "message": "Oops something went wrong",
          "error": err
        });
      }
    } else {
      res.status(401);
      res.json({
        "status": 401,
        "message": "Invalid Token or Key"
      });
      return;
    }
  };
  </code></pre>