import { describe, it, expect } from 'bun:test'; import { formatError, formatErrorMessage } from '@common/errors'; describe('errors', () => { describe('formatErrorMessage', () => { it('should extract message from Error objects', () => { const error = new Error('Test error message'); expect(formatErrorMessage(error)).toBe('Test error message'); }); it('should handle objects with message property', () => { const obj = { message: 'Custom error' }; expect(formatErrorMessage(obj)).toBe('Custom error'); }); it('should convert other values to string', () => { expect(formatErrorMessage('string error')).toBe('string error'); expect(formatErrorMessage(123)).toBe('123'); expect(formatErrorMessage(null)).toBe('Unknown error'); expect(formatErrorMessage(undefined)).toBe('Unknown error'); }); it('should handle plain objects without message', () => { expect(formatErrorMessage({ foo: 'bar' })).toBe('[object Object]'); }); }); describe('formatError', () => { it('should format error with custom message', () => { const error = new Error('Test error'); const result = formatError(error, 'Context'); expect(result).toContain('Context: Test error'); }); it('should format error without custom message', () => { const error = new Error('Test error'); const result = formatError(error); expect(result).toContain('Test error'); expect(result).toContain('Error: Test error'); }); it('should handle string errors', () => { const result = formatError('error string', 'Context'); expect(result).toBe('Context: error string'); }); it('should handle null/undefined errors', () => { expect(formatError(null, 'Context')).toBe('Context: Unknown error'); expect(formatError(undefined, 'Context')).toBe('Context: Unknown error'); }); it('should handle number errors', () => { expect(formatError(42, 'Context')).toBe('Context: 42'); }); }); });