Skip to content

Commit 0550990

Browse files
committed
Test that client pointer doesn't reappear after timeout with ClientRemovePointerMessage
1 parent 3f9b374 commit 0550990

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

src/server/_real_time_logic_test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
const RealTimeServer = require("./real_time_server.js");
77
const assert = require("_assert");
88
const ClientPointerMessage = require("../shared/client_pointer_message.js");
9+
const ClientRemovePointerMessage = require("../shared/client_remove_pointer_message.js");
910
const ServerRemovePointerMessage = require("../shared/server_remove_pointer_message.js");
1011
const ServerPointerMessage = require("../shared/server_pointer_message.js");
1112
const ClientDrawMessage = require("../shared/client_draw_message.js");
@@ -146,6 +147,24 @@
146147
]);
147148
});
148149

150+
it("does not redisplay ghost pointer when client receives pointer remove message after timeout", function() {
151+
const clientId = "my client ID";
152+
realTimeServer.connectNullClient(clientId);
153+
fakeClock.tick(RealTimeLogic.CLIENT_TIMEOUT);
154+
155+
const serverMessages = trackServerMessages();
156+
const clientMessage = new ClientRemovePointerMessage();
157+
realTimeServer.simulateClientMessage(clientId, clientMessage);
158+
159+
assert.deepEqual(serverMessages, [
160+
{
161+
message: clientMessage.toServerMessage(clientId),
162+
type: RealTimeServer.SEND_TYPE.ALL_CLIENTS_BUT_ONE,
163+
clientId,
164+
},
165+
]);
166+
});
167+
149168
it("when sending 'remove pointer' message after timeout, uses the correct client ID", function() {
150169
let correctId = "correct client ID";
151170
realTimeServer.connectNullClient(correctId);

0 commit comments

Comments
 (0)