diff --git a/src/pure.ts b/src/pure.ts index 34e48f8d7..66a425c90 100644 --- a/src/pure.ts +++ b/src/pure.ts @@ -1,15 +1,15 @@ import act from './act'; import cleanup from './cleanup'; import fireEvent from './fireEvent'; -import render, { RenderResult } from './render'; +import render, { RenderResult, RenderOptions } from './render'; import waitFor from './waitFor'; import waitForElementToBeRemoved from './waitForElementToBeRemoved'; import { within, getQueriesForElement } from './within'; import { getDefaultNormalizer } from './matches'; -import { renderHook } from './renderHook'; +import { renderHook, RenderHookOptions, RenderHookResult } from './renderHook'; import { screen } from './screen'; -export type { RenderResult }; +export type { RenderOptions, RenderResult }; export type RenderAPI = RenderResult; export { act }; @@ -20,5 +20,5 @@ export { waitFor }; export { waitForElementToBeRemoved }; export { within, getQueriesForElement }; export { getDefaultNormalizer }; -export { renderHook }; +export { renderHook, RenderHookOptions, RenderHookResult }; export { screen }; diff --git a/src/render.tsx b/src/render.tsx index 7f8142c60..4333ba79a 100644 --- a/src/render.tsx +++ b/src/render.tsx @@ -8,7 +8,7 @@ import debugDeep from './helpers/debugDeep'; import { getQueriesForElement } from './within'; import { setRenderResult } from './screen'; -type Options = { +export type RenderOptions = { wrapper?: React.ComponentType; createNodeMock?: (element: React.ReactElement) => any; }; @@ -24,7 +24,7 @@ export type RenderResult = ReturnType; */ export default function render( component: React.ReactElement, - { wrapper: Wrapper, createNodeMock }: Options = {} + { wrapper: Wrapper, createNodeMock }: RenderOptions = {} ) { const wrap = (innerElement: React.ReactElement) => Wrapper ? {innerElement} : innerElement; diff --git a/src/renderHook.tsx b/src/renderHook.tsx index 35760384b..ce2695cd5 100644 --- a/src/renderHook.tsx +++ b/src/renderHook.tsx @@ -2,13 +2,17 @@ import React from 'react'; import type { ComponentType } from 'react'; import render from './render'; -interface RenderHookResult { +export interface RenderHookResult { rerender: (props: Props) => void; result: { current: Result }; unmount: () => void; } -type RenderHookOptions = Props extends object | string | number | boolean +export type RenderHookOptions = Props extends + | object + | string + | number + | boolean ? { initialProps: Props; wrapper?: ComponentType;