Skip to content

Commit ea42d12

Browse files
committed
Add tests for Async.Settled.
1 parent 3c88ad9 commit ea42d12

File tree

1 file changed

+39
-11
lines changed

1 file changed

+39
-11
lines changed

src/Async.spec.js

Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,15 @@ describe("Async", () => {
5151
})
5252
})
5353

54-
describe("Async.Resolved", () => {
54+
describe("Async.Fulfilled", () => {
5555
test("renders only after the promise is resolved", async () => {
5656
const promiseFn = () => resolveTo("ok")
5757
const deferFn = () => rejectTo("fail")
5858
const { getByText, queryByText } = render(
5959
<Async promiseFn={promiseFn} deferFn={deferFn}>
60-
<Async.Resolved>{(data, { run }) => <button onClick={run}>{data}</button>}</Async.Resolved>
60+
<Async.Fulfilled>
61+
{(data, { run }) => <button onClick={run}>{data}</button>}
62+
</Async.Fulfilled>
6163
<Async.Rejected>{error => error}</Async.Rejected>
6264
</Async>
6365
)
@@ -76,9 +78,9 @@ describe("Async.Resolved", () => {
7678
const deferFn = () => rejectTo("fail")
7779
const { getByText, queryByText } = render(
7880
<Async promiseFn={promiseFn} deferFn={deferFn}>
79-
<Async.Resolved persist>
81+
<Async.Fulfilled persist>
8082
{(data, { run }) => <button onClick={run}>{data}</button>}
81-
</Async.Resolved>
83+
</Async.Fulfilled>
8284
<Async.Rejected>{error => error}</Async.Rejected>
8385
</Async>
8486
)
@@ -92,19 +94,19 @@ describe("Async.Resolved", () => {
9294
expect(queryByText("fail")).toBeInTheDocument()
9395
})
9496

95-
test("Async.Resolved works also with nested Async", async () => {
97+
test("Async.Fulfilled works also with nested Async", async () => {
9698
const outer = () => resolveIn(0)("outer")
9799
const inner = () => resolveIn(100)("inner")
98100
const { getByText, queryByText } = render(
99101
<Async promiseFn={outer}>
100-
<Async.Resolved>
102+
<Async.Fulfilled>
101103
{outer => (
102104
<Async promiseFn={inner}>
103105
<Async.Pending>{outer} pending</Async.Pending>
104-
<Async.Resolved>{inner => outer + " " + inner}</Async.Resolved>
106+
<Async.Fulfilled>{inner => outer + " " + inner}</Async.Fulfilled>
105107
</Async>
106108
)}
107-
</Async.Resolved>
109+
</Async.Fulfilled>
108110
</Async>
109111
)
110112
expect(queryByText("outer pending")).toBeNull()
@@ -121,7 +123,7 @@ describe("Async.Pending", () => {
121123
const { getByText, queryByText } = render(
122124
<Async promiseFn={promiseFn}>
123125
<Async.Pending>pending</Async.Pending>
124-
<Async.Resolved>done</Async.Resolved>
126+
<Async.Fulfilled>done</Async.Fulfilled>
125127
</Async>
126128
)
127129
expect(queryByText("pending")).toBeInTheDocument()
@@ -137,7 +139,7 @@ describe("Async.Waiting", () => {
137139
<Async deferFn={deferFn}>
138140
<Async.Waiting>{({ run }) => <button onClick={run}>waiting</button>}</Async.Waiting>
139141
<Async.Pending>pending</Async.Pending>
140-
<Async.Resolved>done</Async.Resolved>
142+
<Async.Fulfilled>done</Async.Fulfilled>
141143
</Async>
142144
)
143145
expect(queryByText("waiting")).toBeInTheDocument()
@@ -163,6 +165,32 @@ describe("Async.Rejected", () => {
163165
})
164166
})
165167

168+
describe("Async.Settled", () => {
169+
test("renders after the promise is fulfilled", async () => {
170+
const promiseFn = () => resolveTo("value")
171+
const { getByText, queryByText } = render(
172+
<Async promiseFn={promiseFn}>
173+
<Async.Settled>{({ data }) => data}</Async.Settled>
174+
</Async>
175+
)
176+
expect(queryByText("value")).toBeNull()
177+
await waitForElement(() => getByText("value"))
178+
expect(queryByText("value")).toBeInTheDocument()
179+
})
180+
181+
test("renders after the promise is rejected", async () => {
182+
const promiseFn = () => rejectTo("err")
183+
const { getByText, queryByText } = render(
184+
<Async promiseFn={promiseFn}>
185+
<Async.Settled>{({ error }) => error}</Async.Settled>
186+
</Async>
187+
)
188+
expect(queryByText("err")).toBeNull()
189+
await waitForElement(() => getByText("err"))
190+
expect(queryByText("err")).toBeInTheDocument()
191+
})
192+
})
193+
166194
describe("createInstance", () => {
167195
test("allows setting default props", async () => {
168196
const promiseFn = () => resolveTo("done")
@@ -191,7 +219,7 @@ describe("createInstance", () => {
191219
const { getByText } = render(
192220
<CustomAsync>
193221
<CustomAsync.Pending>pending</CustomAsync.Pending>
194-
<CustomAsync.Resolved>resolved</CustomAsync.Resolved>
222+
<CustomAsync.Fulfilled>resolved</CustomAsync.Fulfilled>
195223
</CustomAsync>
196224
)
197225
await waitForElement(() => getByText("pending"))

0 commit comments

Comments
 (0)