@testing-library/react

  • Version 16.0.1
  • Published
  • 329 kB
  • 1 dependency
  • MIT license

Install

npm i @testing-library/react
yarn add @testing-library/react
pnpm add @testing-library/react

Overview

Simple and complete React DOM testing utilities that encourage good testing practices.

Index

Variables

variable act

const act: any;
  • Simply calls React.act(cb) If that's not available (older version of react) then it simply calls the deprecated version which is ReactTestUtils.act(cb)

Functions

function cleanup

cleanup: () => void;
  • Unmounts React trees that were mounted with render.

function configure

configure: (configDelta: ConfigFn | Partial<Config>) => void;

    function getConfig

    getConfig: () => Config;

      function render

      render: {
      <
      Q extends Queries = any,
      Container extends unknown = HTMLElement,
      BaseElement extends unknown = Container
      >(
      ui: React.ReactNode,
      options: RenderOptions<Q, Container, BaseElement>
      ): RenderResult<Q, Container, BaseElement>;
      (
      ui: React.ReactNode,
      options?: Omit<RenderOptions<any, HTMLElement, HTMLElement>, 'queries'>
      ): any;
      };
      • Render into a container which is appended to document.body. It should be used with cleanup.

      function renderHook

      renderHook: <
      Result,
      Props,
      Q extends Queries = any,
      Container extends unknown = HTMLElement,
      BaseElement extends unknown = Container
      >(
      render: (initialProps: Props) => Result,
      options?: RenderHookOptions<Props, Q, Container, BaseElement> | undefined
      ) => RenderHookResult<Result, Props>;
      • Allows you to render a hook within a test React component without having to create that component yourself.

      Interfaces

      interface ClientRenderHookOptions

      interface ClientRenderHookOptions<
      Props,
      Q extends Queries,
      Container extends Element | DocumentFragment,
      BaseElement extends Element | DocumentFragment = Container
      > extends BaseRenderHookOptions<Props, Q, Container, BaseElement> {}
      • Deprecated

      property hydrate

      hydrate?: false | undefined;
      • If hydrate is set to true, then it will render with ReactDOM.hydrate. This may be useful if you are using server-side rendering and use ReactDOM.hydrate to mount your components.

        See Also

        • https://testing-library.com/docs/react-testing-library/api/#hydrate)

      interface ClientRenderOptions

      interface ClientRenderOptions<
      Q extends Queries,
      Container extends RendererableContainer,
      BaseElement extends RendererableContainer = Container
      > extends BaseRenderOptions<Q, Container, BaseElement> {}
      • Deprecated

      property hydrate

      hydrate?: false | undefined;
      • If hydrate is set to true, then it will render with ReactDOM.hydrate. This may be useful if you are using server-side rendering and use ReactDOM.hydrate to mount your components.

        See Also

        • https://testing-library.com/docs/react-testing-library/api/#hydrate)

      interface Config

      interface Config extends ConfigDTL {}

        property reactStrictMode

        reactStrictMode: boolean;

          interface ConfigFn

          interface ConfigFn {}

            call signature

            (existingConfig: Config): Partial<Config>;

              interface HydrateHookOptions

              interface HydrateHookOptions<
              Props,
              Q extends Queries,
              Container extends Element | DocumentFragment,
              BaseElement extends Element | DocumentFragment = Container
              > extends BaseRenderHookOptions<Props, Q, Container, BaseElement> {}
              • Deprecated

              property hydrate

              hydrate: true;
              • If hydrate is set to true, then it will render with ReactDOM.hydrate. This may be useful if you are using server-side rendering and use ReactDOM.hydrate to mount your components.

                See Also

                • https://testing-library.com/docs/react-testing-library/api/#hydrate)

              interface HydrateOptions

              interface HydrateOptions<
              Q extends Queries,
              Container extends HydrateableContainer,
              BaseElement extends HydrateableContainer = Container
              > extends BaseRenderOptions<Q, Container, BaseElement> {}
              • Deprecated

              property hydrate

              hydrate: true;
              • If hydrate is set to true, then it will render with ReactDOM.hydrate. This may be useful if you are using server-side rendering and use ReactDOM.hydrate to mount your components.

                See Also

                • https://testing-library.com/docs/react-testing-library/api/#hydrate)

              interface RenderHookOptions

              interface RenderHookOptions<
              Props,
              Q extends Queries = typeof queries,
              Container extends RendererableContainer | HydrateableContainer = HTMLElement,
              BaseElement extends RendererableContainer | HydrateableContainer = Container
              > extends BaseRenderOptions<Q, Container, BaseElement> {}

                property initialProps

                initialProps?: Props | undefined;
                • The argument passed to the renderHook callback. Can be useful if you plan to use the rerender utility to change the values passed to your hook.

                interface RenderHookResult

                interface RenderHookResult<Result, Props> {}

                  property rerender

                  rerender: (props?: Props) => void;
                  • Triggers a re-render. The props will be passed to your renderHook callback.

                  property result

                  result: {
                  /**
                  * The value returned by your renderHook callback
                  */
                  current: Result;
                  };
                  • This is a stable reference to the latest value returned by your renderHook callback

                  property unmount

                  unmount: () => void;
                  • Unmounts the test component. This is useful for when you need to test any cleanup your useEffects have.

                  interface RenderOptions

                  interface RenderOptions<
                  Q extends Queries = typeof queries,
                  Container extends RendererableContainer | HydrateableContainer = HTMLElement,
                  BaseElement extends RendererableContainer | HydrateableContainer = Container
                  > {}

                    property baseElement

                    baseElement?: BaseElement | undefined;
                    • Defaults to the container if the container is specified. Otherwise document.body is used for the default. This is used as the base element for the queries as well as what is printed when you use debug().

                      See Also

                      • https://testing-library.com/docs/react-testing-library/api/#baseelement

                    property container

                    container?: Container | undefined;
                    • By default, React Testing Library will create a div and append that div to the document.body. Your React component will be rendered in the created div. If you provide your own HTMLElement container via this option, it will not be appended to the document.body automatically.

                      For example: If you are unit testing a <tbody> element, it cannot be a child of a div. In this case, you can specify a table as the render container.

                      See Also

                      • https://testing-library.com/docs/react-testing-library/api/#container

                    property hydrate

                    hydrate?: boolean | undefined;
                    • If hydrate is set to true, then it will render with ReactDOM.hydrate. This may be useful if you are using server-side rendering and use ReactDOM.hydrate to mount your components.

                      See Also

                      • https://testing-library.com/docs/react-testing-library/api/#hydrate)

                    property legacyRoot

                    legacyRoot?: boolean | undefined;
                    • Only works if used with React 18. Set to true if you want to force synchronous ReactDOM.render. Otherwise render will default to concurrent React if available.

                    property queries

                    queries?: Q | undefined;
                    • Queries to bind. Overrides the default set from DOM Testing Library unless merged.

                      See Also

                      • https://testing-library.com/docs/react-testing-library/api/#queries

                    property wrapper

                    wrapper?: React.JSXElementConstructor<{ children: React.ReactNode }> | undefined;
                    • Pass a React Component as the wrapper option to have it rendered around the inner element. This is most useful for creating reusable custom render functions for common data providers. See setup for examples.

                      See Also

                      • https://testing-library.com/docs/react-testing-library/api/#wrapper

                    Type Aliases

                    type BaseRenderHookOptions

                    type BaseRenderHookOptions<
                    Props,
                    Q extends Queries,
                    Container extends RendererableContainer | HydrateableContainer,
                    BaseElement extends Element | DocumentFragment
                    > = RenderHookOptions<Props, Q, Container, BaseElement>;
                    • Deprecated

                    type BaseRenderOptions

                    type BaseRenderOptions<
                    Q extends Queries,
                    Container extends RendererableContainer | HydrateableContainer,
                    BaseElement extends RendererableContainer | HydrateableContainer
                    > = RenderOptions<Q, Container, BaseElement>;
                    • Deprecated

                    type RenderResult

                    type RenderResult<
                    Q extends Queries = typeof queries,
                    Container extends RendererableContainer | HydrateableContainer = HTMLElement,
                    BaseElement extends RendererableContainer | HydrateableContainer = Container
                    > = {
                    container: Container;
                    baseElement: BaseElement;
                    debug: (
                    baseElement?:
                    | RendererableContainer
                    | HydrateableContainer
                    | Array<RendererableContainer | HydrateableContainer>
                    | undefined,
                    maxLength?: number | undefined,
                    options?: prettyFormat.OptionsReceived | undefined
                    ) => void;
                    rerender: (ui: React.ReactNode) => void;
                    unmount: () => void;
                    asFragment: () => DocumentFragment;
                    } & { [P in keyof Q]: BoundFunction<Q[P]> };

                      Package Files (1)

                      Dependencies (1)

                      Dev Dependencies (13)

                      Peer Dependencies (5)

                      Badge

                      To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                      You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@testing-library/react.

                      • Markdown
                        [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@testing-library/react)
                      • HTML
                        <a href="https://www.jsdocs.io/package/@testing-library/react"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>