1

I'm fairly new to the Angular world and have been using the angular-fullstack generator + Yeoman to build out a project. I'm using Sublime (not Webstorm) and have been trying to figure out how to set up the project so that I can debug the mocha tests from the terminal, but am hitting a wall.

Here's the default things.spec.js that's generated with 'yo angular-fullstack' with a debugger statement added in.

var should = require('should');
var app = require('../../app');
var request = require('supertest');

describe('GET /api/things', function() {
   it('should respond with JSON array', function(done) {
       request(app)
          .get('/api/things')
          .expect(200)
          .expect('Content-Type', /json/)
          .end(function(err, res) {
              debugger;
              if (err) return done(err);
              res.body.should.be.instanceof(Array);
              done();
          });
   });
});

By combining advice from the grunt-mocha-test documentation and this SO answer, I've updated the test script in package.json as follows:

"scripts": {
    "test": "node-debug <PATH TO GRUNT-CLI>\\grunt test"
}

When I run 'npm test', node-inspector successfully boots up a browser instance and attaches the debug session to my test process. However, when I press "continue", the debugger breakpoint is NOT hit and the test fails with the following stack. Anyone have any clues as to what's causing this?

TypeError: Cannot read property '_host' of null
  at ClientRequest.http.ClientRequest.onSocket (eval at WRAPPED_BY_NODE_INSPECTOR (\node_modules\node-inspector\node_modules\v8-debug\v8-debug.js:95:15), <anonymous>:381:28)
  at new ClientRequest (http.js:1432:10)
  at Object.exports.request (http.js:1843:10)
  at Test.Request.request (\node_modules\supertest\node_modules\superagent\lib\node\index.js:615:28)
  at Test.Request.end (\node_modules\supertest\node_modules\superagent\lib\node\index.js:677:18)
  at Test.end (\node_modules\supertest\lib\test.js:123:7)
  at Context.<anonymous> (\server\api\thing\thing.spec.js:14:8)
  at Test.Runnable.run (\node_modules\grunt-mocha-test\node_modules\mocha\lib\runnable.js:196:15)
  at Runner.runTest (\node_modules\grunt-mocha-test\node_modules\mocha\lib\runner.js:374:10)
  at Runner.runTests.next (\node_modules\grunt-mocha-test\node_modules\mocha\lib\runner.js:452:12)
Community
  • 1
  • 1
djpark
  • 181
  • 1
  • 10
  • You should probably post to [supertest issue tracker](https://github.com/visionmedia/supertest/issues). – Vanuan Jul 21 '15 at 13:15
  • Actually, it breaks in node-inspector: https://github.com/node-inspector/node-inspector/blob/8a8bf6e07c641ce64d066f010a3e8f1d23134bbf/lib/Injections/NetworkAgent.js – Vanuan Jul 21 '15 at 13:53
  • As a workaround you can rollback to node-inspector v0.10.0 – Vanuan Jul 21 '15 at 15:47

1 Answers1

0

This looks like a bug in Node Inspector. https://github.com/node-inspector/node-inspector/issues/698

Vanuan
  • 31,770
  • 10
  • 98
  • 102