title: POST not working for Mocha/Chai tests on Express REST API
body: <p>I'm having a problem with Mocha tests on my Express app. I have a REST API set up that I know works in the browser, but it's getting a bit large and therefore manual testing has become tedious.</p>
  
  <p>Anyway, all my <strong>GET</strong> tests work just fine, but when I add tests for my <strong>POST</strong> requests, they fail:</p>
  
  <pre><code> Uncaught AssertionError: expected { Object (domain, _events, ...) } to have status code 200 but got 400
    at testPostSingle (test-app.js:297:21)
    at test-app.js:195:21
    at Test.Request.callback (/home/jacobd/healthboard/node_modules/chai-http/node_modules/superagent/lib/node/index.js:603:3)
    at Stream.&lt;anonymous&gt; (/home/jacobd/healthboard/node_modules/chai-http/node_modules/superagent/lib/node/index.js:767:18)
    at Unzip.&lt;anonymous&gt; (/home/jacobd/healthboard/node_modules/chai-http/node_modules/superagent/lib/node/utils.js:108:12)
    at _stream_readable.js:944:16
  </code></pre>
  
  <p>I'm using Mocha, with the Chai should library and chai-http for requests.</p>
  
  <h1>My relevant code:</h1>
  
  <pre><code>models.forEach(function(model, i) {
  
      var url = '/api/v1/' + model;
      var list = lists[i];
  
      /****************************** API POST TESTS ******************************/
  
      describe(util.format('API: /%s POST', model), function() {
          var minArgsObj = {
              title: 'Test ' + model + ' Title'
          };
  
          // Initialize list at start
          before(function(done) {
              instances._init(function(err) {
                  if (!err) done();
              });
          });
  
          // Nuke list before each test
          beforeEach(function(done) {
              list.clear();
              done();
          });
  
          // Make sure POST single object works
          it('should create and add model on ' + url + ' with minimal arguments', function(done) {
              var req = {};
              req.options = _.clone(minArgsObj);
              chai.request('server')
                  .post(url)
                  .send(req)
                  .end(function(err, res) {
                      testPostSingle(res, minArgsObj);
                      list.list.length.should.equal(1);
                      res.body.should.eql(list.list[0]);
                      done();
                  });
          });
      });
  });
  
  
  function testPostSingle(res, ref) {
      res.should.have.status(200);
      ...
  }
  </code></pre>
  
  <p>When I put a log message in the <strong>POST</strong> route declaration, it doesn't show up, so that tells me that my request is getting stopped before even hitting my server. Maybe the route isn't getting mounted properly in Mocha? It works when I make the request outside of Mocha, but I can't figure out why it won't work in a test environment.</p>
  
  <p>Thanks in advance for your help, and let me know if you need any more info!</p>