Skip to content

Commit 7614cd7

Browse files
committed
Consolidate tests.
1 parent e8aabe4 commit 7614cd7

File tree

1 file changed

+32
-46
lines changed

1 file changed

+32
-46
lines changed

src/spec.js

Lines changed: 32 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -266,15 +266,41 @@ test("can be nested", async () => {
266266
})
267267

268268
test("Async.Resolved renders only after the promise is resolved", async () => {
269-
const promiseFn = () => resolveTo("done")
269+
const promiseFn = () => resolveTo("ok")
270+
const deferFn = () => rejectTo("fail")
270271
const { getByText, queryByText } = render(
271-
<Async promiseFn={promiseFn}>
272-
<Async.Resolved>{data => data}</Async.Resolved>
272+
<Async promiseFn={promiseFn} deferFn={deferFn}>
273+
<Async.Resolved>{(data, { run }) => <button onClick={run}>{data}</button>}</Async.Resolved>
274+
<Async.Rejected>{error => error}</Async.Rejected>
273275
</Async>
274276
)
275-
expect(queryByText("done")).toBeNull()
276-
await waitForElement(() => getByText("done"))
277-
expect(queryByText("done")).toBeInTheDocument()
277+
expect(queryByText("ok")).toBeNull()
278+
await waitForElement(() => getByText("ok"))
279+
expect(queryByText("ok")).toBeInTheDocument()
280+
expect(queryByText("fail")).toBeNull()
281+
fireEvent.click(getByText("ok"))
282+
await waitForElement(() => getByText("fail"))
283+
expect(queryByText("ok")).toBeNull()
284+
expect(queryByText("fail")).toBeInTheDocument()
285+
})
286+
287+
test("Async.Resolved with persist renders old data on error", async () => {
288+
const promiseFn = () => resolveTo("ok")
289+
const deferFn = () => rejectTo("fail")
290+
const { getByText, queryByText } = render(
291+
<Async promiseFn={promiseFn} deferFn={deferFn}>
292+
<Async.Resolved persist>{(data, { run }) => <button onClick={run}>{data}</button>}</Async.Resolved>
293+
<Async.Rejected>{error => error}</Async.Rejected>
294+
</Async>
295+
)
296+
expect(queryByText("ok")).toBeNull()
297+
await waitForElement(() => getByText("ok"))
298+
expect(queryByText("ok")).toBeInTheDocument()
299+
expect(queryByText("fail")).toBeNull()
300+
fireEvent.click(getByText("ok"))
301+
await waitForElement(() => getByText("fail"))
302+
expect(queryByText("ok")).toBeInTheDocument()
303+
expect(queryByText("fail")).toBeInTheDocument()
278304
})
279305

280306
test("Async.Loading renders only while the promise is loading", async () => {
@@ -373,43 +399,3 @@ test("An unrelated change in props does not update the Context", async () => {
373399
)
374400
expect(one).toBe(two)
375401
})
376-
377-
test("Async.Resolved does not render after deferFn rejection", async () => {
378-
const promiseFn = () => resolveTo("ok")
379-
const deferFn = () => rejectTo("notok")
380-
const { getByText, queryByText } = render(
381-
<Async promiseFn={promiseFn} deferFn={deferFn}>
382-
<Async.Rejected>fail</Async.Rejected>
383-
<Async.Resolved>{(data, { run }) => <button onClick={run}>next</button>}</Async.Resolved>
384-
</Async>
385-
)
386-
387-
expect(queryByText("next")).toBeNull()
388-
await waitForElement(() => getByText("next"))
389-
expect(queryByText("next")).toBeInTheDocument()
390-
expect(queryByText("fail")).toBeNull()
391-
fireEvent.click(getByText("next"))
392-
await waitForElement(() => getByText("fail"))
393-
expect(queryByText("next")).toBeNull()
394-
expect(queryByText("fail")).toBeInTheDocument()
395-
})
396-
397-
test("Async.Resolved renders after deferFn rejection with persist", async () => {
398-
const promiseFn = () => resolveTo("ok")
399-
const deferFn = () => rejectTo("notok")
400-
const { getByText, queryByText } = render(
401-
<Async promiseFn={promiseFn} deferFn={deferFn}>
402-
<Async.Rejected>fail</Async.Rejected>
403-
<Async.Resolved persist>{(data, { run }) => <button onClick={run}>next</button>}</Async.Resolved>
404-
</Async>
405-
)
406-
407-
expect(queryByText("next")).toBeNull()
408-
await waitForElement(() => getByText("next"))
409-
expect(queryByText("next")).toBeInTheDocument()
410-
expect(queryByText("fail")).toBeNull()
411-
fireEvent.click(getByText("next"))
412-
await waitForElement(() => getByText("fail"))
413-
expect(queryByText("next")).toBeInTheDocument()
414-
expect(queryByText("fail")).toBeInTheDocument()
415-
})

0 commit comments

Comments
 (0)