Skip to content

Commit 08922dd

Browse files
committed
fix: Type for options in autodetected renderer was incorrectly inferring any passed type
Changed `renderHook` in `ReactHooksRenderer` type to not use a generic for options but rather the react specific `RendererOptions`. Moved `ReactHooksRenderer` into react specific types as all auto-detected renders are react renderers. All modules are currently exporting both the shared types and the react types so this a non-breaking change.
1 parent f6096ba commit 08922dd

File tree

5 files changed

+16
-14
lines changed

5 files changed

+16
-14
lines changed

Diff for: src/pure.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ReactHooksRenderer } from './types'
1+
import { ReactHooksRenderer } from './types/react'
22

33
const renderers = [
44
{ required: 'react-test-renderer', renderer: './native/pure' },

Diff for: src/types/index.ts

-11
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,6 @@ export type RenderHook<
4747
Omit<TRenderer, keyof Renderer<TProps>> &
4848
AsyncUtils
4949

50-
export interface ReactHooksRenderer {
51-
renderHook: <TProps, TResult, TOptions>(
52-
callback: (props: TProps) => TResult,
53-
options?: RenderHookOptions<TProps, TOptions>
54-
) => RenderHook<TProps, TResult>
55-
act: Act
56-
cleanup: () => void
57-
addCleanup: (callback: () => Promise<void> | void) => () => void
58-
removeCleanup: (callback: () => Promise<void> | void) => void
59-
}
60-
6150
export type RenderHookOptions<TProps, TOptions extends {}> = TOptions & {
6251
initialProps?: TProps
6352
}

Diff for: src/types/react.ts

+13
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
11
import { ComponentType } from 'react'
22

3+
import { RenderHook, RenderHookOptions, Act } from '.'
4+
35
export type WrapperComponent<TProps> = ComponentType<TProps>
46

57
export type RendererOptions<TProps> = {
68
wrapper?: WrapperComponent<TProps>
79
}
10+
11+
export interface ReactHooksRenderer {
12+
renderHook: <TProps, TResult>(
13+
callback: (props: TProps) => TResult,
14+
options?: RenderHookOptions<TProps, RendererOptions<TProps>>
15+
) => RenderHook<TProps, TResult>
16+
act: Act
17+
cleanup: () => void
18+
addCleanup: (callback: () => Promise<void> | void) => () => void
19+
removeCleanup: (callback: () => Promise<void> | void) => void
20+
}

Diff for: test/dom/autoCleanup.disabled.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useEffect } from 'react'
22

3-
import { ReactHooksRenderer } from 'types'
3+
import { ReactHooksRenderer } from 'types/react'
44

55
// This verifies that if RHTL_SKIP_AUTO_CLEANUP is set
66
// then we DON'T auto-wire up the afterEach for folks

Diff for: test/dom/autoCleanup.noAfterEach.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useEffect } from 'react'
22

3-
import { ReactHooksRenderer } from 'types'
3+
import { ReactHooksRenderer } from 'types/react'
44

55
// This verifies that if RHTL_SKIP_AUTO_CLEANUP is set
66
// then we DON'T auto-wire up the afterEach for folks

0 commit comments

Comments
 (0)