import { Response } from '@cloudpss/fetch'; import { RequestError, RequestResponseError } from '../dist/index.js'; describe('create request error', () => { it('simple error', () => { const init = {}; const error = new RequestError('xxx', init); expect(error.cause).toBeUndefined(); expect(error.message).toBe(''); expect(error.name).toBe('RequestError'); expect(error.requestInit).toBe(init); expect(error.requestUrl).toBe('xxx'); }); it('with cause', () => { const init = {}; const cause = new Error('cause message'); const error = new RequestError('xxx', init, cause); expect(error.cause).toBe(cause); expect(error.message).toBe('cause message'); expect(error.name).toBe('RequestError'); expect(error.requestInit).toBe(init); expect(error.requestUrl).toBe('xxx'); }); it('with message', () => { const init = {}; const error = new RequestError('xxx', init, undefined, 'message xx'); expect(error.cause).toBeUndefined(); expect(error.message).toBe('message xx'); expect(error.name).toBe('RequestError'); expect(error.requestInit).toBe(init); expect(error.requestUrl).toBe('xxx'); }); it('with cause & message', () => { const init = {}; const cause = new Error('cause message'); const error = new RequestError('xxx', init, cause, 'message xx'); expect(error.cause).toBe(cause); expect(error.message).toBe('message xx'); expect(error.name).toBe('RequestError'); expect(error.requestInit).toBe(init); expect(error.requestUrl).toBe('xxx'); }); }); describe('create request response error', () => { const init = {}; const response = new Response(undefined, { status: 354 }); const data = { requestUrl: 'xxx', requestInit: init, status: 354, response, data: undefined, }; it('simple error', () => { const error = new RequestResponseError(data); expect(error.cause).toBeUndefined(); expect(error.message).toBe('Server Error 354: '); expect(error.name).toBe('RequestResponseError'); expect(error.requestInit).toBe(init); expect(error.requestUrl).toBe('xxx'); expect(error.status).toBe(354); expect(error.response).toBe(response); }); it('with cause', () => { const cause = new Error('cause message'); const error = new RequestResponseError(data, cause); expect(error.cause).toBe(cause); expect(error.message).toBe('cause message'); expect(error.name).toBe('RequestResponseError'); expect(error.requestInit).toBe(init); expect(error.requestUrl).toBe('xxx'); expect(error.status).toBe(354); expect(error.response).toBe(response); }); it('with message', () => { const error = new RequestResponseError(data, undefined, 'message xx'); expect(error.cause).toBeUndefined(); expect(error.message).toBe('message xx'); expect(error.name).toBe('RequestResponseError'); expect(error.requestInit).toBe(init); expect(error.requestUrl).toBe('xxx'); expect(error.status).toBe(354); expect(error.response).toBe(response); }); it('with cause & message', () => { const cause = new Error('cause message'); const error = new RequestResponseError(data, cause, 'message xx'); expect(error.cause).toBe(cause); expect(error.message).toBe('message xx'); expect(error.name).toBe('RequestResponseError'); expect(error.requestInit).toBe(init); expect(error.requestUrl).toBe('xxx'); expect(error.status).toBe(354); expect(error.response).toBe(response); }); });