title: Mocha Test: Uncaught TypeError: Cannot read property 'status' of null
body: <p>Learning TDD and my first simple test for my "Hello World" server response is failing in Mocha.  I'm using Mocha.js, Superagent, &amp; Expect.js.</p>
  
  <p>When I <code>curl -i localhost:8080</code>, I get the correct response and status code.</p>
  
  <pre><code>HTTP/1.1 200 OK
  Content-Type: text/plain
  Date: Mon, 27 Apr 2015 17:55:36 GMT
  Connection: keep-alive
  Transfer-Encoding: chunked
  
  Hello World
  </code></pre>
  
  <p>Test code:</p>
  
  <pre><code>var request = require('superagent');
  var expect = require('expect.js');
  
  // Test structure
  describe('Suite one', function(){
      it("should get a response that contains World",function(done){
          request.get('localhost:8080').end(function(res){
              // TODO check that response is okay
              expect(res).to.exist;
              expect(res.status).to.equal(200);
              expect(res.body).to.contain('World');
              done();
          });
      });
  });
  </code></pre>
  
  <p>Server code:</p>
  
  <pre><code>var server = require('http').createServer(function(req, res){
      res.writeHead(200, {"Content-Type":"text/plain"});
      res.end('Hello World\n');
  });
  
  server.listen(8080, function(){
      console.log("Server listening at port 8080");
  });
  </code></pre>
  
  <p>Mocha output:</p>
  
  <pre><code>  Suite one
      1) should get a response that contains World
  
  
    0 passing (110ms)
    1 failing
  
    1) Suite one should get a response that contains World:
       Uncaught TypeError: Cannot read property 'status' of null
        at test.js:10:23
        at _stream_readable.js:908:16
  </code></pre>
  
  <p>I've tried googling this issue but no luck finding out what I'm doing wrong.</p>