-
Notifications
You must be signed in to change notification settings - Fork 232
Open
@boaz-hwang
Description
react-hooks-testing-library
version: 7.0.1react
version: 17.0.2react-dom
version (if applicable): 17.0.2react-test-renderer
version (if applicable): 17.0.2node
version: 15.13.10npm
(oryarn
) version: 1.22.10(yarn)
Relevant code or config:
useCounter.ts
import React, { useState, useContext, useCallback } from 'react'; const CounterStepContext = React.createContext(1); export const CounterStepProvider = ({ step, children }: any) => ( <CounterStepContext.Provider value={step}> {children} </CounterStepContext.Provider> ); export function useCounter(initialValue = 0) { const [count, setCount] = useState(initialValue); const step = useContext(CounterStepContext); const increment = useCallback(() => setCount((x) => x + step), [step]); const reset = useCallback(() => setCount(initialValue), [initialValue]); return { count, increment, reset }; }
useCounter.test.ts
import { renderHook, act } from '@testing-library/react-hooks'; import { useCounter, CounterStepProvider } from './useCounter'; test('should use custom step when incrementing', () => { const { result } = renderHook(() => useCounter(), { wrapper: ({ children }) => ( <CounterStepProvider step={2}>{children}</CounterStepProvider> ), }); act(() => { result.current.increment(); }); expect(result.current.count).toBe(2); });
What you did:
I just follow the code in react testing library hooks docs.
and yarn test
What happened:
when yarn test, I got this error
FAIL src/test/useCounter.test.tsx ✕ should use custom step when incrementing (5 ms) ●くろまる should use custom step when incrementing Objects are not valid as a React child (found: object with keys {type, props, key, ref, __k, __, __b, __e, __d, __c, __h, constructor, __v, __source, __self}). If you meant to render a collection of children, use an array instead. 3 | 4 | test('should use custom step when incrementing', () => { > 5 | const { result } = renderHook(() => useCounter(), { | ^ 6 | wrapper: ({ children }) => ( 7 | <CounterStepProvider step={2}>{children}</CounterStepProvider> 8 | ), at throwOnInvalidObjectType (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:4537:15) at reconcileChildFibers (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:5439:7) at reconcileChildren (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:7984:28) at mountIndeterminateComponent (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8810:5) at beginWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:9966:16) at performUnitOfWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:13800:12) at workLoopSync (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:13728:5) at renderRootSync (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:13691:7) at performSyncWorkOnRoot (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:13404:18) at node_modules/react-test-renderer/cjs/react-test-renderer.development.js:2537:26 at unstable_runWithPriority (node_modules/scheduler/cjs/scheduler.development.js:468:12) at runWithPriority (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:2486:10) at flushSyncCallbackQueueImpl (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:2532:9) at flushSyncCallbackQueue (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:2519:3) at batchedUpdates (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:13459:7) at act (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:15280:14) at render (node_modules/@testing-library/react-hooks/lib/native/pure.js:73:34) at renderHook (node_modules/@testing-library/react-hooks/lib/core/index.js:114:5) at Object.<anonymous> (src/test/useCounter.test.tsx:5:22) Test Suites: 1 failed, 1 total Tests: 1 failed, 1 total Snapshots: 0 total Time: 0.337 s, estimated 1 s Ran all test suites.
Reproduction:
Problem description:
I could not move forward anymore.