cadfa70e60
* #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>
58 lines
1.4 KiB
TypeScript
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()
|
|
})
|
|
})
|