hedgedoc/frontend/src/api/common/api-response.spec.ts
Tilman Vatteroth 49bbd32635
test(frontend): replace jest with vitest
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2025-04-26 16:13:11 +02:00

44 lines
1.5 KiB
TypeScript

/*
* SPDX-FileCopyrightText: 2023 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { ApiResponse } from './api-response'
import { Mock } from 'ts-mockery'
import { describe, expect, it, beforeAll, afterAll } from 'vitest'
describe('ApiResponse', () => {
it('getResponse returns input response', () => {
const mockResponse = Mock.of<Response>()
const responseObj = new ApiResponse(mockResponse)
expect(responseObj.getResponse()).toEqual(mockResponse)
})
describe('asParsedJsonObject with', () => {
it('invalid header', async () => {
const mockHeaders = new Headers()
mockHeaders.set('Content-Type', 'text/invalid')
const mockResponse = Mock.of<Response>({
headers: mockHeaders
})
const responseObj = new ApiResponse(mockResponse)
await expect(responseObj.asParsedJsonObject()).rejects.toThrow('Response body does not seem to be JSON encoded')
})
it('valid header', async () => {
const mockHeaders = new Headers()
mockHeaders.set('Content-Type', 'application/json')
const mockBody = {
Hedgy: '🦔'
}
const mockResponse = Mock.of<Response>({
headers: mockHeaders,
json(): Promise<typeof mockBody> {
return Promise.resolve(mockBody)
}
})
const responseObj = new ApiResponse(mockResponse)
await expect(responseObj.asParsedJsonObject()).resolves.toEqual(mockBody)
})
})
})