Skip to content

Commit f38f67c

Browse files
committed
Errors should be actual Error instances.
1 parent b45ce49 commit f38f67c

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

Diff for: src/Async.spec.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ describe("Async.Fulfilled", () => {
6060
<Async.Fulfilled>
6161
{(data, { run }) => <button onClick={run}>{data}</button>}
6262
</Async.Fulfilled>
63-
<Async.Rejected>{error => error}</Async.Rejected>
63+
<Async.Rejected>{error => error.message}</Async.Rejected>
6464
</Async>
6565
)
6666
expect(queryByText("ok")).toBeNull()
@@ -81,7 +81,7 @@ describe("Async.Fulfilled", () => {
8181
<Async.Fulfilled persist>
8282
{(data, { run }) => <button onClick={run}>{data}</button>}
8383
</Async.Fulfilled>
84-
<Async.Rejected>{error => error}</Async.Rejected>
84+
<Async.Rejected>{error => error.message}</Async.Rejected>
8585
</Async>
8686
)
8787
expect(queryByText("ok")).toBeNull()
@@ -156,7 +156,7 @@ describe("Async.Rejected", () => {
156156
const promiseFn = () => rejectTo("err")
157157
const { getByText, queryByText } = render(
158158
<Async promiseFn={promiseFn}>
159-
<Async.Rejected>{err => err}</Async.Rejected>
159+
<Async.Rejected>{error => error.message}</Async.Rejected>
160160
</Async>
161161
)
162162
expect(queryByText("err")).toBeNull()
@@ -182,7 +182,7 @@ describe("Async.Settled", () => {
182182
const promiseFn = () => rejectTo("err")
183183
const { getByText, queryByText } = render(
184184
<Async promiseFn={promiseFn}>
185-
<Async.Settled>{({ error }) => error}</Async.Settled>
185+
<Async.Settled>{({ error }) => error.message}</Async.Settled>
186186
</Async>
187187
)
188188
expect(queryByText("err")).toBeNull()

Diff for: src/specs.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { render, fireEvent, waitForElement } from "react-testing-library"
66

77
export const resolveIn = ms => value => new Promise(resolve => setTimeout(resolve, ms, value))
88
export const resolveTo = resolveIn(0)
9-
export const rejectIn = ms => err => new Promise((resolve, reject) => setTimeout(reject, ms, err))
9+
export const rejectIn = ms => err =>
10+
new Promise((resolve, reject) => setTimeout(reject, ms, new Error(err)))
1011
export const rejectTo = rejectIn(0)
1112

1213
export const common = Async => () => {
@@ -65,7 +66,9 @@ export const withPromise = Async => () => {
6566

6667
test("passes rejection error to children as render prop", async () => {
6768
const promise = rejectTo("oops")
68-
const { getByText } = render(<Async promise={promise}>{({ error }) => error || null}</Async>)
69+
const { getByText } = render(
70+
<Async promise={promise}>{({ error }) => (error ? error.message : null)}</Async>
71+
)
6972
await waitForElement(() => getByText("oops"))
7073
})
7174

@@ -104,7 +107,7 @@ export const withPromise = Async => () => {
104107
const onReject = jest.fn()
105108
render(<Async promise={rejectTo("err")} onReject={onReject} />)
106109
await resolveTo()
107-
expect(onReject).toHaveBeenCalledWith("err")
110+
expect(onReject).toHaveBeenCalledWith(new Error("err"))
108111
})
109112

110113
test("cancels a pending promise when unmounted", async () => {
@@ -196,7 +199,7 @@ export const withPromiseFn = (Async, abortCtrl) => () => {
196199
const onReject = jest.fn()
197200
render(<Async promiseFn={() => rejectTo("err")} onReject={onReject} />)
198201
await resolveTo()
199-
expect(onReject).toHaveBeenCalledWith("err")
202+
expect(onReject).toHaveBeenCalledWith(new Error("err"))
200203
})
201204

202205
test("provides `reload` function that re-runs the promise", () => {

0 commit comments

Comments
 (0)