Skip to content

Commit 775fbb2

Browse files
committed
Add types
1 parent bc4f7e5 commit 775fbb2

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

types/index.d.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,25 @@ export function render(
9090
options?: Omit<RenderOptions, 'queries'>,
9191
): RenderResult
9292

93+
// TODO JSDOC
94+
interface RenderHookResult<Result, Props> {
95+
rerender: (props?: Props) => void
96+
result: {current: Result}
97+
unmount: () => void
98+
}
99+
100+
// TODO JSDOC
101+
interface RenderHookOptions<Props> {
102+
initialProps?: Props
103+
wrapper?: React.ComponentType
104+
}
105+
106+
// TODO JSDOC
107+
export function renderHook<Result, Props>(
108+
render: (initialProps?: Props) => Result,
109+
options?: RenderHookOptions<Props>,
110+
): RenderHookResult<Result, Props>
111+
93112
/**
94113
* Unmounts React trees that were mounted with render.
95114
*/

types/test.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react'
2-
import {render, fireEvent, screen, waitFor} from '.'
2+
import {render, fireEvent, screen, waitFor, renderHook} from '.'
33
import * as pure from './pure'
44

55
export async function testRender() {
@@ -139,6 +139,17 @@ export function wrappedRenderC(
139139
}
140140

141141
return pure.render(ui, {wrapper: AppWrapperProps, ...options})
142+
143+
}
144+
145+
export function testRenderHook() {
146+
const {result, rerender, unmount} = renderHook(() => React.useState(2)[0])
147+
148+
expectType<number, typeof result.current>(result.current)
149+
150+
rerender()
151+
152+
unmount()
142153
}
143154

144155
/*

0 commit comments

Comments
 (0)