Skip to content

Commit fa51b64

Browse files
committed
Clean up 'redisplay ghost pointer after timeout' tests
1 parent 0e8cdd9 commit fa51b64

2 files changed

Lines changed: 23 additions & 53 deletions

File tree

src/server/_real_time_logic_test.js

Lines changed: 23 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
const ClientClearScreenMessage = require("../shared/client_clear_screen_message.js");
1111
const ServerRemovePointerMessage = require("../shared/server_remove_pointer_message.js");
1212
const ServerPointerMessage = require("../shared/server_pointer_message.js");
13+
const ServerClearScreenMessage = require("../shared/server_clear_screen_message.js");
14+
const ServerDrawMessage = require("../shared/server_draw_message.js");
1315
const ClientDrawMessage = require("../shared/client_draw_message.js");
1416
const Clock = require("./clock.js");
1517

@@ -107,81 +109,51 @@
107109
});
108110
});
109111

110-
it("redisplays ghost pointer when client receives draw message after timeout", function() {
112+
it("redisplays ghost pointer when client receives message after timeout", function() {
111113
const clientId = "my client ID";
112-
realTimeServer.connectNullClient(clientId);
113-
fakeClock.tick(RealTimeLogic.CLIENT_TIMEOUT);
114114

115-
const serverMessages = trackServerMessages();
116-
const clientMessage = new ClientDrawMessage(10, 20, 30, 40);
117-
realTimeServer.simulateClientMessage(clientId, clientMessage);
118-
119-
assert.deepEqual(serverMessages, [
115+
assert.deepEqual(simulateMessageAfterTimeout(new ClientDrawMessage(10, 20, 30, 40)), [
120116
{
121117
message: new ServerPointerMessage(clientId, 30, 40), // should appear in correct location
122118
type: RealTimeServer.SEND_TYPE.ALL_CLIENTS_BUT_ONE,
123119
clientId,
124120
},
125121
{
126-
message: clientMessage.toServerMessage(clientId),
122+
message: new ServerDrawMessage(10, 20, 30, 40),
127123
type: RealTimeServer.SEND_TYPE.ALL_CLIENTS_BUT_ONE,
128124
clientId,
129125
}
130-
]);
131-
});
132-
133-
it("redisplays ghost pointer when client receives pointer message after timeout", function() {
134-
const clientId = "my client ID";
135-
realTimeServer.connectNullClient(clientId);
136-
fakeClock.tick(RealTimeLogic.CLIENT_TIMEOUT);
137-
138-
const serverMessages = trackServerMessages();
139-
const clientMessage = new ClientPointerMessage(19, 20);
140-
realTimeServer.simulateClientMessage(clientId, clientMessage);
141-
142-
assert.deepEqual(serverMessages, [
126+
], "SHOULD redisplay ghost pointer after receiving draw message");
127+
assert.deepEqual(simulateMessageAfterTimeout(new ClientPointerMessage(19, 20)), [
143128
{
144129
message: new ServerPointerMessage(clientId, 19, 20), // should appear in correct location
145130
type: RealTimeServer.SEND_TYPE.ALL_CLIENTS_BUT_ONE,
146131
clientId,
147132
},
148-
]);
149-
});
150-
151-
it("does not redisplay ghost pointer when client receives pointer remove message after timeout", function() {
152-
const clientId = "my client ID";
153-
realTimeServer.connectNullClient(clientId);
154-
fakeClock.tick(RealTimeLogic.CLIENT_TIMEOUT);
155-
156-
const serverMessages = trackServerMessages();
157-
const clientMessage = new ClientRemovePointerMessage();
158-
realTimeServer.simulateClientMessage(clientId, clientMessage);
159-
160-
assert.deepEqual(serverMessages, [
133+
], "SHOULD redisplay ghost pointer after receiving pointer message");
134+
assert.deepEqual(simulateMessageAfterTimeout(new ClientRemovePointerMessage()), [
161135
{
162-
message: clientMessage.toServerMessage(clientId),
136+
message: new ServerRemovePointerMessage(clientId),
163137
type: RealTimeServer.SEND_TYPE.ALL_CLIENTS_BUT_ONE,
164138
clientId,
165139
},
166-
]);
167-
});
168-
169-
it("does not redisplay ghost pointer when client receives clear screen message after timeout", function() {
170-
const clientId = "my client ID";
171-
realTimeServer.connectNullClient(clientId);
172-
fakeClock.tick(RealTimeLogic.CLIENT_TIMEOUT);
173-
174-
const serverMessages = trackServerMessages();
175-
const clientMessage = new ClientClearScreenMessage();
176-
realTimeServer.simulateClientMessage(clientId, clientMessage);
177-
178-
assert.deepEqual(serverMessages, [
140+
], "SHOULD NOT redisplay ghost pointer after receiving remove pointer message");
141+
assert.deepEqual(simulateMessageAfterTimeout(new ClientClearScreenMessage()), [
179142
{
180-
message: clientMessage.toServerMessage(clientId),
143+
message: new ServerClearScreenMessage(clientId),
181144
type: RealTimeServer.SEND_TYPE.ALL_CLIENTS_BUT_ONE,
182145
clientId,
183146
},
184-
]);
147+
], "SHOULD NOT redisplay ghost pointer after receiving clear screen message");
148+
149+
function simulateMessageAfterTimeout(clientMessage) {
150+
realTimeServer.connectNullClient(clientId);
151+
fakeClock.tick(RealTimeLogic.CLIENT_TIMEOUT);
152+
153+
const serverMessages = trackServerMessages();
154+
realTimeServer.simulateClientMessage(clientId, clientMessage);
155+
return serverMessages;
156+
}
185157
});
186158

187159
it("when sending 'remove pointer' message after timeout, uses the correct client ID", function() {

todo.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,5 @@ Engineering Tasks:
5656
* When the user becomes active again, even if they don't move their mouse pointer, cause ghost pointer to reappear (e.g., if they click the mouse without moving it)
5757

5858
To Do on current task:
59-
* Make the pointer show up in the right spot
60-
- ClearScreenMessage
6159
- What's the best way to handle our ordering issues (currently we work around it by just calling trackClientTimeout() first)
6260
- Factor out code to track server messages

0 commit comments

Comments
 (0)