Skip to content

Commit 4c9ec45

Browse files
committed
moving utils of tests and fixing undefined key bug
1 parent 7a3c38a commit 4c9ec45

File tree

4 files changed

+53
-48
lines changed

4 files changed

+53
-48
lines changed

lib/in-memory.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ InMemory.prototype.subscribe = function (uri, client, callback) {
2727
}
2828

2929
InMemory.prototype.get = function (uri, callback) {
30-
return callback(null, this.subscribers[uri])
30+
return callback(null, this.subscribers[uri] || {})
3131
}

lib/server.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ WsServer.prototype.publish = function (uri, callback) {
6464
else return
6565
}
6666

67+
if (!subscribers) {
68+
subscribers = {}
69+
}
70+
6771
var tasks = Object.keys(subscribers)
6872
.map(function (uuid) {
6973
return function (cb) {

test/utils.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
exports.connectAll = connectAll
2+
exports.ackAll = ackAll
3+
exports.pubAll = pubAll
4+
5+
var parallel = require('run-parallel')
6+
7+
function connectAll(clients, url, done) {
8+
parallel(clients.map(function(client) {
9+
return function (cb) {
10+
client.on('open', function() {
11+
client.send('sub ' + url)
12+
cb()
13+
})
14+
}
15+
}), done)
16+
}
17+
18+
function ackAll(clients, done) {
19+
parallel(clients.map(function(client) {
20+
return function (cb) {
21+
client.on('message', function (msg) {
22+
if (msg.split(' ')[0] === 'ack') {
23+
cb()
24+
return;
25+
}
26+
})
27+
}
28+
}), done)
29+
}
30+
31+
function pubAll(clients, pubs, done) {
32+
parallel(clients.map(function(client) {
33+
return function (cb) {
34+
client.on('message', function (msg) {
35+
if (msg.split(' ')[0] === 'pub') {
36+
pubs.push(msg)
37+
cb()
38+
return;
39+
}
40+
})
41+
}
42+
}), done)
43+
}

test/websockets.js

Lines changed: 5 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var http = require('http')
44
var parallel = require('run-parallel')
55
var SolidWs = require('../')
66
var EventEmitter = require('events').EventEmitter
7+
var utils = require('./utils')
78

89
describe('Solid-ws', function() {
910
var server = http.createServer()
@@ -111,59 +112,16 @@ describe('Solid-ws', function() {
111112
})
112113

113114
var pubs = []
114-
var workflow = new EventEmitter()
115-
workflow.on('done', function () {
116-
assert.equal(pubs.length, users.length)
117-
done()
118-
})
119115

120-
connectAll(clients, function() {
121-
ackAll(clients, function() {
122-
pubAll(clients, function() {
116+
utils.connectAll(clients, url, function() {
117+
utils.ackAll(clients, function() {
118+
utils.pubAll(clients, pubs, function() {
119+
assert.equal(pubs.length, users.length)
123120
done()
124121
})
125122
pubsub.publish(url)
126123
})
127124
})
128-
129-
function connectAll(clients, done) {
130-
parallel(clients.map(function(client) {
131-
return function (cb) {
132-
client.on('open', function() {
133-
client.send('sub ' + url)
134-
cb()
135-
})
136-
}
137-
}), done)
138-
}
139-
140-
function ackAll(clients, done) {
141-
parallel(clients.map(function(client) {
142-
return function (cb) {
143-
client.on('message', function (msg) {
144-
if (msg.split(' ')[0] === 'ack') {
145-
cb()
146-
return;
147-
}
148-
})
149-
}
150-
}), done)
151-
}
152-
153-
function pubAll(clients, done) {
154-
parallel(clients.map(function(client) {
155-
return function (cb) {
156-
client.on('message', function (msg) {
157-
if (msg.split(' ')[0] === 'pub') {
158-
pubs.push(msg)
159-
cb()
160-
return;
161-
}
162-
})
163-
}
164-
}), done)
165-
}
166-
167125
})
168126
})
169127
})

0 commit comments

Comments
 (0)