Skip to content

Commit 24ed9d6

Browse files
committed
Fix: Mock channel cleanup errors, mock cleanup improvements and CRDT operation issues
1 parent 227c93a commit 24ed9d6

3 files changed

Lines changed: 21 additions & 12 deletions

File tree

client/src/__tests__/integration/crdt-webrtc.test.js

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ describe('CRDT + WebRTC Integration', () => {
101101
setTimeout(() => {
102102
bobManager.onMessage('alice', msg);
103103
}, 10);
104-
})
104+
}),
105+
close: jest.fn()
105106
};
106107

107108
bobPeer.channel = {
@@ -111,7 +112,8 @@ describe('CRDT + WebRTC Integration', () => {
111112
setTimeout(() => {
112113
aliceManager.onMessage('bob', msg);
113114
}, 10);
114-
})
115+
}),
116+
close: jest.fn()
115117
};
116118

117119
// Alice types "Hello"
@@ -177,14 +179,16 @@ describe('CRDT + WebRTC Integration', () => {
177179
readyState: 'open',
178180
send: jest.fn((msg) => {
179181
setTimeout(() => bobManager.onMessage('alice', msg), 10);
180-
})
182+
}),
183+
close: jest.fn()
181184
};
182185

183186
bobPeer.channel = {
184187
readyState: 'open',
185188
send: jest.fn((msg) => {
186189
setTimeout(() => aliceManager.onMessage('bob', msg), 10);
187-
})
190+
}),
191+
close: jest.fn()
188192
};
189193

190194
// Alice builds "ABC" sequentially
@@ -235,7 +239,8 @@ describe('CRDT + WebRTC Integration', () => {
235239
if (networkUp) {
236240
setTimeout(() => bobManager.onMessage('alice', msg), 10);
237241
}
238-
})
242+
}),
243+
close: jest.fn()
239244
};
240245

241246
bobPeer.channel = {
@@ -244,7 +249,8 @@ describe('CRDT + WebRTC Integration', () => {
244249
if (networkUp) {
245250
setTimeout(() => aliceManager.onMessage('bob', msg), 10);
246251
}
247-
})
252+
}),
253+
close: jest.fn()
248254
};
249255

250256
// Alice types while connected
@@ -313,7 +319,8 @@ describe('CRDT + WebRTC Integration', () => {
313319
if (messageCount % 2 === 0) {
314320
setTimeout(() => bobManager.onMessage('alice', msg), 10);
315321
}
316-
})
322+
}),
323+
close: jest.fn()
317324
};
318325

319326
// Send multiple operations - some at root to be independent
@@ -396,7 +403,8 @@ describe('CRDT + WebRTC Integration', () => {
396403
readyState: 'open',
397404
send: jest.fn((msg) => {
398405
setTimeout(() => broadcastToAll(manager, msg), 10);
399-
})
406+
}),
407+
close: jest.fn()
400408
};
401409
});
402410
});

client/src/__tests__/unit/crdt/crdt-validation.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ describe('CRDT Property Validation (Will Pass After Fix)', () => {
209209
test('handles empty operations gracefully', () => {
210210
const doc = new PeritextDocument('user1');
211211

212+
// This should trigger a console.warn for "Unknown operation type: undefined" - this is expected
212213
const invalidOp = {};
213214
const result = doc.applyOperation(invalidOp);
214215

client/src/__tests__/unit/webrtc/webrtc-manager.test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ describe('WebRTCManager - Basic Functionality', () => {
157157
// Mock data channels as open
158158
const peer1 = manager.peers.get('peer1');
159159
const peer2 = manager.peers.get('peer2');
160-
peer1.channel = { readyState: 'open', send: jest.fn() };
161-
peer2.channel = { readyState: 'open', send: jest.fn() };
160+
peer1.channel = { readyState: 'open', send: jest.fn(), close: jest.fn() };
161+
peer2.channel = { readyState: 'open', send: jest.fn(), close: jest.fn() };
162162

163163
const message = 'test message';
164164
manager.broadcastMessage(message);
@@ -173,8 +173,8 @@ describe('WebRTCManager - Basic Functionality', () => {
173173

174174
const peer1 = manager.peers.get('peer1');
175175
const peer2 = manager.peers.get('peer2');
176-
peer1.channel = { readyState: 'open', send: jest.fn() };
177-
peer2.channel = { readyState: 'closed', send: jest.fn() };
176+
peer1.channel = { readyState: 'open', send: jest.fn(), close: jest.fn() };
177+
peer2.channel = { readyState: 'closed', send: jest.fn(), close: jest.fn() };
178178

179179
manager.broadcastMessage('test');
180180

0 commit comments

Comments
 (0)