UNPKG

@yoroi/common

Version:

The Common package of Yoroi SDK

166 lines (152 loc) 4.04 kB
import {getApiError} from './getApiError' import {Api} from '@yoroi/types' describe('getApiError', () => { it('should throw NetworkError for -1 status', () => { expect(() => { const error = getApiError({ status: -1, message: 'Network error', responseData: null, }) throw error }).toThrow(Api.Errors.Network) }) it('should throw InvalidStateError for -2 status', () => { expect(() => { const error = getApiError({ status: -2, message: 'Invalid state', responseData: null, }) throw error }).toThrow(Api.Errors.InvalidState) }) it('should throw ResponseMalformed for -3 status', () => { expect(() => { const error = getApiError({ status: -3, message: 'Malformated response', responseData: null, }) throw error }).toThrow(Api.Errors.ResponseMalformed) }) it('should throw BadRequestError for 400 status', () => { expect(() => { const error = getApiError({ status: 400, message: 'Bad request', responseData: null, }) throw error }).toThrow(Api.Errors.BadRequest) }) it('should throw UnauthorizedError for 401 status', () => { expect(() => { const error = getApiError({ status: 401, message: 'Unauthorized', responseData: null, }) throw error }).toThrow(Api.Errors.Unauthorized) }) it('should throw ForbiddenError for 403 status', () => { expect(() => { const error = getApiError({ status: 403, message: 'Forbidden', responseData: null, }) throw error }).toThrow(Api.Errors.Forbidden) }) it('should throw NotFoundError for 404 status', () => { expect(() => { const error = getApiError({ status: 404, message: 'Not found', responseData: null, }) throw error }).toThrow(Api.Errors.NotFound) }) it('should throw ConflictError for 409 status', () => { expect(() => { const error = getApiError({ status: 409, message: 'Conflict', responseData: null, }) throw error }).toThrow(Api.Errors.Conflict) }) it('should throw GoneError for 410 status', () => { expect(() => { const error = getApiError({ status: 410, message: 'Gone', responseData: null, }) throw error }).toThrow(Api.Errors.Gone) }) it('should throw TooEarlyError for 425 status', () => { expect(() => { const error = getApiError({ status: 425, message: 'Too early', responseData: null, }) throw error }).toThrow(Api.Errors.TooEarly) }) it('should throw TooManyRequestsError for 429 status', () => { expect(() => { const error = getApiError({ status: 429, message: 'Too many requests', responseData: null, }) throw error }).toThrow(Api.Errors.TooManyRequests) }) it('should throw ServerSideError for 500 status', () => { expect(() => { const error = getApiError({ status: 500, message: 'Server error', responseData: null, }) throw error }).toThrow(Api.Errors.ServerSide) }) it('should throw ServerSideError for other 5xx status codes', () => { expect(() => { const error = getApiError({ status: 503, message: 'Service unavailable', responseData: null, }) throw error }).toThrow(Api.Errors.ServerSide) expect(() => { const error = getApiError({ status: 504, message: 'Gateway timeout', responseData: null, }) throw error }).toThrow(Api.Errors.ServerSide) }) it('should throw UnknownError for unhandled status codes', () => { expect(() => { const error = getApiError({ status: 999, message: 'Unknown error', responseData: null, }) throw error }).toThrow(Api.Errors.Unknown) }) })