MCPcopy
hub / github.com/testing-library/react-hooks-testing-library / resultContainer

Function resultContainer

src/core/index.ts:7–41  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

5import { suppressErrorOutput } from './console'
6
7function resultContainer<TValue>() {
8 const results: Array<{ value?: TValue; error?: Error }> = []
9 const resolvers: Array<() => void> = []
10
11 const result: RenderResult<TValue> = {
12 get all() {
13 return results.map(({ value, error }) => error ?? (value as TValue))
14 },
15 get current() {
16 const { value, error } = results[results.length - 1] ?? {}
17 if (error) {
18 throw error
19 }
20 return value as TValue
21 },
22 get error() {
23 const { error } = results[results.length - 1] ?? {}
24 return error
25 }
26 }
27
28 const updateResult = (value?: TValue, error?: Error) => {
29 results.push({ value, error })
30 resolvers.splice(0, resolvers.length).forEach((resolve) => resolve())
31 }
32
33 return {
34 result,
35 addResolver: (resolver: () => void) => {
36 resolvers.push(resolver)
37 },
38 setValue: (value: TValue) => updateResult(value),
39 setError: (error: Error) => updateResult(undefined, error)
40 }
41}
42
43function createRenderHook<
44 TProps,

Callers 1

renderHookFunction · 0.85

Calls 1

updateResultFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…