SEC_Warehouse/tests/unit/http/errors.spec.ts

26 lines
939 B
TypeScript

import { describe, it, expect } from 'vitest'
import { ApiError, BusinessError, AuthExpiredError } from '@/http/errors'
describe('HTTP 错误类型', () => {
it('BusinessError.code 接受字符串业务码(后端 Code 为字符串)', () => {
const err = new BusinessError('用户未登录', '401')
expect(err).toBeInstanceOf(BusinessError)
expect(err.code).toBe('401')
expect(err.message).toBe('用户未登录')
expect(err.name).toBe('BusinessError')
})
it('AuthExpiredError 是独立错误类型,可被 catch 分流', () => {
const err = new AuthExpiredError('登录已过期')
expect(err).toBeInstanceOf(AuthExpiredError)
expect(err).toBeInstanceOf(Error)
expect(err.name).toBe('AuthExpiredError')
expect(err.message).toBe('登录已过期')
})
it('ApiError 保留 statusCode', () => {
const err = new ApiError('HTTP 404', 404)
expect(err.statusCode).toBe(404)
})
})