mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-09 13:51:57 -04:00
44 lines
1.5 KiB
TypeScript
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)
|
|
})
|
|
})
|
|
})
|