Enhance SocketUser tests to verify removal of all listeners during disconnection.
All checks were successful
farmcontrol/farmcontrol-ws/pipeline/head This commit looks good

- Added verification for `removeAllListeners` method in both SocketUser and UpdateManager to ensure proper cleanup of event listeners during disconnection handling.
This commit is contained in:
Tom Butcher 2026-07-04 16:54:55 +01:00
parent 516402d40d
commit 0d395d3cb0

View File

@ -33,7 +33,8 @@ jest.unstable_mockModule('../../updates/updatemanager.js', () => ({
subscribeToObjectUpdate: jest.fn(), subscribeToObjectUpdate: jest.fn(),
removeObjectNewListener: jest.fn(), removeObjectNewListener: jest.fn(),
removeObjectDeleteListener: jest.fn(), removeObjectDeleteListener: jest.fn(),
removeObjectUpdateListener: jest.fn() removeObjectUpdateListener: jest.fn(),
removeAllListeners: jest.fn()
})) }))
})); }));
@ -256,6 +257,7 @@ describe('SocketUser', () => {
await socketUser.handleDisconnect(); await socketUser.handleDisconnect();
expect(socketUser.actionManager.removeAllListeners).toHaveBeenCalled(); expect(socketUser.actionManager.removeAllListeners).toHaveBeenCalled();
expect(socketUser.updateManager.removeAllListeners).toHaveBeenCalled();
expect(socketUser.eventManager.removeAllListeners).toHaveBeenCalled(); expect(socketUser.eventManager.removeAllListeners).toHaveBeenCalled();
expect(socketUser.statsManager.removeAllListeners).toHaveBeenCalled(); expect(socketUser.statsManager.removeAllListeners).toHaveBeenCalled();
expect(socketUser.notificationManager.removeAllListeners).toHaveBeenCalled(); expect(socketUser.notificationManager.removeAllListeners).toHaveBeenCalled();