Skip to content

Commit

Permalink
Use done status to mark end of message seq
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuhta committed Dec 14, 2015
1 parent da17768 commit f8a1170
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 28 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
language: node_js
sudo: false

node_js:
- "0.10"
- "4.2"

before_script:
- wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
"license": "MIT",
"dependencies": {
"bencode": "~0.7.0",
"tree-kill": "~0.0.6"
"tree-kill": "~1.0.0"
},
"devDependencies": {
"async": "~0.9",
"nodeunit": "~0.8"
"q": "~1.4.1",
"nodeunit": "~0.9.1"
}
}
5 changes: 3 additions & 2 deletions src/nrepl-client.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,9 @@ function nreplSend(socket, messageStream, msgSpec, callback) {

function errHandler(err) { errors.push(err); }
function msgHandler(_messages) {
var done = _messages.some(function(msg) { return !!msg.status; });
// return msg.status && msg.status.indexOf("done") > -1; });
var done = _messages.some(function(msg) {
return msg.status && msg.status.indexOf("done") > -1;
});
messages = messages.concat(_messages);
if (!done) return;
messageStream.removeListener('error', errHandler);
Expand Down
50 changes: 27 additions & 23 deletions tests/tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

var nreplClient = require('../src/nrepl-client');
var nreplServer = require('../src/nrepl-server');
var async = require("async");
var Q = require('q');

var exec = require("child_process").exec;

Expand All @@ -22,21 +22,18 @@ function createTimeout(test) {
var tests = {

setUp: function (callback) {
async.waterfall([
function(next) { nreplServer.start(serverOpts, next); },
function(serverState, next) {
server = serverState;
client = nreplClient.connect({
port: serverState.port,
verbose: true
});
console.log("client connecting");
client.once('connect', function() {
console.log("client connected");
next();
});
}
], callback);
Q.ninvoke(nreplServer, 'start', serverOpts).then(function (serverState) {
server = serverState;
client = nreplClient.connect({
port: serverState.port,
verbose: true
});
console.log("client connecting");
return Q.ninvoke(client, 'once', 'connect');
}).then(function () {
console.log("client connected");
callback();
}).done();
},

tearDown: function (callback) {
Expand All @@ -52,16 +49,23 @@ var tests = {
client.end();
},

testSimpleEval: function (test) {
test.expect(3); createTimeout(test);
client.eval('(+ 3 4)', function(err, messages) {
console.log("in simple eval");
console.log(messages);
test.ok(!err, 'Got errors: ' + err);
testEval: function (test) {
createTimeout(test);
Q.ninvoke(client, 'eval', '(+ 3 4)').then(function(messages) {
test.equal(messages[0].value, '7');
test.deepEqual(messages[1].status, ['done']);
return Q.ninvoke(client, 'eval', '(throw (RuntimeException. "foo"))');
}).then(function (messages) {
test.equal(messages.length, 3);
test.equal(messages[0].ex, 'class java.lang.RuntimeException');
test.deepEqual(messages[0].status, ['eval-error']);
test.ok(/^RuntimeException foo/.test(messages[1].err));
test.deepEqual(messages[2].status, ['done']);
}).fail(function (err) {
test.ok(!err, 'Got errors: ' + err);
}).fin(function () {
test.done();
});
}).done();
}
};

Expand Down

0 comments on commit f8a1170

Please sign in to comment.