diff --git a/test/server.js b/test/server.js index 0be028cc59..9a939f0147 100644 --- a/test/server.js +++ b/test/server.js @@ -12,6 +12,7 @@ var fs = require("fs"); var path = require("path"); var util = require("util"); var child = require("child_process"); +var WebSocket = require("ws"); var servers = {}; @@ -78,6 +79,14 @@ var makeBase = function(name, done) { }); }; +var wsOpen = function(done) { + var socket = new WebSocket(util.format("ws:://%s:%s", server.websocket_ip, server.websocket_port)); + + socket.on('open') { + done(); + }); +}; + // Prepare the working directory and spawn the server. exports.start = function(name, done) { makeBase(name, function (e) { @@ -86,7 +95,7 @@ exports.start = function(name, done) { } else { serverSpawnSync(name); - done(); + wsOpen(done); } }); }; diff --git a/test/utils.js b/test/utils.js index 0bf10b18ea..e15052294a 100644 --- a/test/utils.js +++ b/test/utils.js @@ -4,7 +4,7 @@ var path = require("path"); var filterErr = function(code, done) { return function (e) { - done(e.code !== code ? e : undefined); + done(e && e.code === code ? undefined : e); }; }; @@ -38,7 +38,7 @@ var mapOr = function(func, array, done) { // Make a directory and sub-directories. var mkPath = function(dirPath, mode, done) { fs.mkdir(dirPath, typeof mode === "string" ? parseInt(mode, 8) : mode, function (e) { - if (!e || e.code === "EEXIST") { + if (!e || e.code === "EEXIST") { // Created or already exists, done. done(); }