test(pages): cover the page hooks, stores and the api client

This commit is contained in:
Maurice
2026-07-29 09:44:02 +02:00
committed by Maurice
parent bbb0f93af2
commit 1e66bcc701
90 changed files with 24168 additions and 13 deletions
+35
View File
@@ -0,0 +1,35 @@
// FE-W4UTL-001 to FE-W4UTL-006
import { describe, it, expect } from 'vitest'
import { getApiErrorMessage } from './apiError'
describe('getApiErrorMessage', () => {
it('FE-W4UTL-001: returns the server-provided error string', () => {
const err = { response: { data: { error: 'Places API (New) has not been used in project 42' } } }
expect(getApiErrorMessage(err, 'fallback')).toBe('Places API (New) has not been used in project 42')
})
it('FE-W4UTL-002: falls back when the error field is missing', () => {
expect(getApiErrorMessage({ response: { data: {} } }, 'fallback')).toBe('fallback')
expect(getApiErrorMessage({ response: {} }, 'fallback')).toBe('fallback')
expect(getApiErrorMessage({}, 'fallback')).toBe('fallback')
})
it('FE-W4UTL-003: falls back for null/undefined errors', () => {
expect(getApiErrorMessage(null, 'fallback')).toBe('fallback')
expect(getApiErrorMessage(undefined, 'fallback')).toBe('fallback')
})
it('FE-W4UTL-004: falls back for a whitespace-only server message', () => {
expect(getApiErrorMessage({ response: { data: { error: ' ' } } }, 'fallback')).toBe('fallback')
expect(getApiErrorMessage({ response: { data: { error: '' } } }, 'fallback')).toBe('fallback')
})
it('FE-W4UTL-005: falls back for a non-string server message', () => {
expect(getApiErrorMessage({ response: { data: { error: { code: 500 } } } }, 'fallback')).toBe('fallback')
expect(getApiErrorMessage({ response: { data: { error: 42 } } }, 'fallback')).toBe('fallback')
})
it('FE-W4UTL-006: keeps surrounding whitespace of a real message', () => {
expect(getApiErrorMessage({ response: { data: { error: ' boom ' } } }, 'fallback')).toBe(' boom ')
})
})