|
150 | 150 | server.stop(done); |
151 | 151 | }); |
152 | 152 |
|
153 | | - it("broadcasts mouse message from one client to another", function(done) { |
| 153 | + it("broadcasts mouse message from one client to all others", function(done) { |
154 | 154 | var EXPECTED_DATA = "mouse data"; |
| 155 | + var client1ReceivedMessage = false; |
| 156 | + var client2ReceivedMessage = false; |
155 | 157 |
|
156 | 158 | var emitterClient = createSocket(); |
157 | | - var receiverClient = createSocket(); |
| 159 | + var receiverClient1 = createSocket(); |
| 160 | + var receiverClient2 = createSocket(); |
158 | 161 |
|
159 | 162 | emitterClient.on("mouse", function() { |
160 | 163 | assert.fail("emitter should not receive its own events"); |
161 | 164 | }); |
162 | | - receiverClient.on("mouse", function(data) { |
163 | | - assert.equal(data, EXPECTED_DATA); |
164 | | - end(); |
| 165 | + receiverClient1.on("mouse", function(data) { |
| 166 | + assert.equal(data, EXPECTED_DATA, "receiver client 1"); |
| 167 | + client1ReceivedMessage = true; |
| 168 | + tryToEnd(); |
| 169 | + }); |
| 170 | + receiverClient2.on("mouse", function(data) { |
| 171 | + assert.equal(data, EXPECTED_DATA, "receiver client 2"); |
| 172 | + client2ReceivedMessage = true; |
| 173 | + tryToEnd(); |
165 | 174 | }); |
166 | 175 |
|
167 | 176 | emitterClient.emit("mouse", EXPECTED_DATA); |
168 | 177 |
|
169 | | - function end() { |
| 178 | + |
| 179 | + function tryToEnd() { |
| 180 | + if (!client1ReceivedMessage || !client2ReceivedMessage) return; |
| 181 | + |
170 | 182 | closeSocket(emitterClient, function() { |
171 | | - closeSocket(receiverClient, done); |
| 183 | + closeSocket(receiverClient1, function() { |
| 184 | + closeSocket(receiverClient2, done); |
| 185 | + }); |
172 | 186 | }); |
173 | 187 | } |
174 | 188 | }); |
|
0 commit comments