import { registerToCalendars } from '@/websocket/operations/registerToCalendars' describe('registerToCalendars', () => { let mockSocket: any beforeEach(() => { mockSocket = { readyState: WebSocket.OPEN, send: jest.fn() } }) it('should send registration message with calendar URIs', () => { const calendarURIs = ['/calendars/cal1', '/calendars/cal2'] registerToCalendars(mockSocket, calendarURIs) expect(mockSocket.send).toHaveBeenCalledWith( JSON.stringify({ register: calendarURIs }) ) }) it('should throw error if socket is not open', () => { mockSocket.readyState = WebSocket.CONNECTING const calendarURIs = ['/calendars/cal1'] expect(() => registerToCalendars(mockSocket, calendarURIs)).toThrow( 'Cannot register: WebSocket is not open' ) }) it('should handle empty calendar list', () => { registerToCalendars(mockSocket, []) expect(mockSocket.send).toHaveBeenCalledWith( JSON.stringify({ register: [] }) ) }) it('should log registration', () => { const consoleInfoSpy = jest.spyOn(console, 'info').mockImplementation() const calendarURIs = ['/calendars/cal1', '/calendars/cal2'] registerToCalendars(mockSocket, calendarURIs) expect(consoleInfoSpy).toHaveBeenCalledWith( 'Registered to calendars', calendarURIs ) consoleInfoSpy.mockRestore() }) })