Files
hermes-web-ui/tests/client/http-error.test.ts
2026-06-19 15:42:25 +08:00

26 lines
1018 B
TypeScript

import { describe, expect, it } from 'vitest'
import { responseErrorMessage } from '@/utils/http-error'
describe('responseErrorMessage', () => {
it('uses JSON error fields when available', async () => {
const response = new Response(JSON.stringify({ error: 'Profile access denied' }), {
status: 403,
headers: { 'content-type': 'application/json' },
})
await expect(responseErrorMessage(response, 'Upload failed')).resolves.toBe('Upload failed: 403 - Profile access denied')
})
it('falls back to text response bodies', async () => {
const response = new Response('Forbidden by policy', { status: 403 })
await expect(responseErrorMessage(response, 'Upload failed')).resolves.toBe('Upload failed: 403 - Forbidden by policy')
})
it('keeps the original status-only fallback when no body exists', async () => {
const response = new Response('', { status: 500 })
await expect(responseErrorMessage(response, 'Upload failed')).resolves.toBe('Upload failed: 500')
})
})