Skip to content

Commit dd0087c

Browse files
author
nebarf
committed
Provide errors to jest done callback
1 parent 5a429d5 commit dd0087c

File tree

1 file changed

+62
-50
lines changed

1 file changed

+62
-50
lines changed

src/__tests__/use-http-event.spec.ts

Lines changed: 62 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,25 @@ describe('use-http-event', () => {
5050
renderHook(
5151
() =>
5252
useHttpEvent(RequestStartedEvent, (request: HttpRequest<void>) => {
53-
expect(request.url).toBe('https://phelony.com/comments');
54-
expect(request.baseUrl).toBe('https://phelony.com');
55-
expect(request.relativeUrl).toBe('comments');
56-
expect(request.body).toBeUndefined();
57-
expect(request.headers).toEqual(defaultHttpReqConfig.reqOptions.headers);
58-
expect(request.context).toBe(reqContext);
59-
expect(request.getContextValue(showGlobalLoader)).toBe(false);
60-
expect(request.credentials).toBeUndefined();
61-
expect(request.maxAge).toBe(0);
62-
expect(request.method).toBe(HttpMethod.Get);
63-
expect(request.queryParams).toBeUndefined();
64-
expect(request.serializedQueryParams).toBe('');
65-
expect(request.signal).toBeInstanceOf(AbortSignal);
66-
expect(request.urlWithParams).toBe('https://phelony.com/comments');
67-
done();
53+
try {
54+
expect(request.url).toBe('https://phelony.com/comments');
55+
expect(request.baseUrl).toBe('https://phelony.com');
56+
expect(request.relativeUrl).toBe('comments');
57+
expect(request.body).toBeUndefined();
58+
expect(request.headers).toEqual(defaultHttpReqConfig.reqOptions.headers);
59+
expect(request.context).toBe(reqContext);
60+
expect(request.getContextValue(showGlobalLoader)).toBe(false);
61+
expect(request.credentials).toBeUndefined();
62+
expect(request.maxAge).toBe(0);
63+
expect(request.method).toBe(HttpMethod.Get);
64+
expect(request.queryParams).toBeUndefined();
65+
expect(request.serializedQueryParams).toBe('');
66+
expect(request.signal).toBeInstanceOf(AbortSignal);
67+
expect(request.urlWithParams).toBe('https://phelony.com/comments');
68+
done();
69+
} catch (expectError) {
70+
done(expectError);
71+
}
6872
}),
6973
{
7074
wrapper: HttpClientProviderConfigFixture.create(),
@@ -102,25 +106,29 @@ describe('use-http-event', () => {
102106
renderHook(
103107
() =>
104108
useHttpEvent(RequestErroredEvent, (error: HttpError<FetchResponse, void>) => {
105-
expect(error.status).toBeUndefined();
106-
expect(error.statusText).toBeUndefined();
107-
expect(error.response).toBeUndefined();
108-
expect(error.nativeError).toBe(fetchError);
109-
expect(error.request?.url).toBe('https://phelony.com/comments');
110-
expect(error.request?.baseUrl).toBe('https://phelony.com');
111-
expect(error.request?.relativeUrl).toBe('comments');
112-
expect(error.request?.body).toBeUndefined();
113-
expect(error.request?.headers).toEqual(defaultHttpReqConfig.reqOptions.headers);
114-
expect(error.request?.context).toBe(reqContext);
115-
expect(error.request?.getContextValue(showGlobalLoader)).toBe(false);
116-
expect(error.request?.credentials).toBeUndefined();
117-
expect(error.request?.maxAge).toBe(0);
118-
expect(error.request?.method).toBe(HttpMethod.Get);
119-
expect(error.request?.queryParams).toBeUndefined();
120-
expect(error.request?.serializedQueryParams).toBe('');
121-
expect(error.request?.signal).toBeInstanceOf(AbortSignal);
122-
expect(error.request?.urlWithParams).toBe('https://phelony.com/comments');
123-
done();
109+
try {
110+
expect(error.status).toBeUndefined();
111+
expect(error.statusText).toBeUndefined();
112+
expect(error.response).toBeUndefined();
113+
expect(error.nativeError).toBe(fetchError);
114+
expect(error.request?.url).toBe('https://phelony.com/comments');
115+
expect(error.request?.baseUrl).toBe('https://phelony.com');
116+
expect(error.request?.relativeUrl).toBe('comments');
117+
expect(error.request?.body).toBeUndefined();
118+
expect(error.request?.headers).toEqual(defaultHttpReqConfig.reqOptions.headers);
119+
expect(error.request?.context).toBe(reqContext);
120+
expect(error.request?.getContextValue(showGlobalLoader)).toBe(false);
121+
expect(error.request?.credentials).toBeUndefined();
122+
expect(error.request?.maxAge).toBe(0);
123+
expect(error.request?.method).toBe(HttpMethod.Get);
124+
expect(error.request?.queryParams).toBeUndefined();
125+
expect(error.request?.serializedQueryParams).toBe('');
126+
expect(error.request?.signal).toBeInstanceOf(AbortSignal);
127+
expect(error.request?.urlWithParams).toBe('https://phelony.com/comments');
128+
done();
129+
} catch (expectError) {
130+
done(expectError);
131+
}
124132
}),
125133
{
126134
wrapper: HttpClientProviderConfigFixture.create(),
@@ -158,22 +166,26 @@ describe('use-http-event', () => {
158166
useHttpEvent(
159167
RequestSuccededEvent,
160168
({ request, response }: RequestSuccededEventPayload<FetchResponse, void>) => {
161-
expect(request.url).toBe('https://phelony.com/comments');
162-
expect(request.baseUrl).toBe('https://phelony.com');
163-
expect(request.relativeUrl).toBe('comments');
164-
expect(request.body).toBeUndefined();
165-
expect(request.headers).toEqual(defaultHttpReqConfig.reqOptions.headers);
166-
expect(request.context).toBe(reqContext);
167-
expect(request.getContextValue(showGlobalLoader)).toBe(false);
168-
expect(request.credentials).toBeUndefined();
169-
expect(request.maxAge).toBe(0);
170-
expect(request.method).toBe(HttpMethod.Get);
171-
expect(request.queryParams).toBeUndefined();
172-
expect(request.serializedQueryParams).toBe('');
173-
expect(request.signal).toBeInstanceOf(AbortSignal);
174-
expect(request.urlWithParams).toBe('https://phelony.com/comments');
175-
expect(response).toEqual(fetchResponse);
176-
done();
169+
try {
170+
expect(request.url).toBe('https://phelony.com/comments');
171+
expect(request.baseUrl).toBe('https://phelony.com');
172+
expect(request.relativeUrl).toBe('comments');
173+
expect(request.body).toBeUndefined();
174+
expect(request.headers).toEqual(defaultHttpReqConfig.reqOptions.headers);
175+
expect(request.context).toBe(reqContext);
176+
expect(request.getContextValue(showGlobalLoader)).toBe(false);
177+
expect(request.credentials).toBeUndefined();
178+
expect(request.maxAge).toBe(0);
179+
expect(request.method).toBe(HttpMethod.Get);
180+
expect(request.queryParams).toBeUndefined();
181+
expect(request.serializedQueryParams).toBe('');
182+
expect(request.signal).toBeInstanceOf(AbortSignal);
183+
expect(request.urlWithParams).toBe('https://phelony.com/comments');
184+
expect(response).toEqual(fetchResponse);
185+
done();
186+
} catch (expectError) {
187+
done(expectError);
188+
}
177189
}
178190
),
179191
{

0 commit comments

Comments
 (0)