Files
workavia-calendar-front/__test__/features/websocket/websocketAPI/registerToCalendars.test.tsx
T
lethemanh cadfa70e60 #708 apply strictier linting rules (#717)
* #708 apply strictier linting rules and fix simple eslint bugs

* #708 fix eslint errors relate to promise

* #708 fix eslint import/no-extraneous-dependencies

* #708 fix eslint errors of react-hook

* #708 enable eslint check for typescript

---------

Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-01 17:15:10 +02:00

58 lines
1.4 KiB
TypeScript

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()
})
})