Files
workavia-calendar-front/__test__/features/websocket/api/fetchWebSocketTicket.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

47 lines
1.2 KiB
TypeScript

import { api } from '@/utils/apiUtils'
import { fetchWebSocketTicket } from '@/websocket/api/fetchWebSocketTicket'
jest.mock('@/utils/apiUtils')
describe('fetchWebSocketTicket', () => {
const mockTicket = {
clientAddress: '127.0.0.1',
value: 'test-ticket-123',
generatedOn: '2025-01-12T10:00:00Z',
validUntil: '2025-01-12T11:00:00Z',
username: 'testuser'
}
beforeEach(() => {
jest.clearAllMocks()
})
it('should fetch ticket successfully', async () => {
;(api.post as jest.Mock).mockResolvedValue({
ok: true,
json: async () => mockTicket
})
const ticket = await fetchWebSocketTicket()
expect(api.post).toHaveBeenCalledWith('ws/ticket')
expect(ticket).toEqual(mockTicket)
})
it('should throw error when response is not ok', async () => {
;(api.post as jest.Mock).mockResolvedValue({
ok: false
})
await expect(fetchWebSocketTicket()).rejects.toThrow(
'Failed to fetch WebSocket ticket'
)
})
it('should throw error when network fails', async () => {
;(api.post as jest.Mock).mockRejectedValue(new Error('Network error'))
await expect(fetchWebSocketTicket()).rejects.toThrow('Network error')
})
})