/// import * as React from 'react'; import React__default from 'react'; import * as react_dom from 'react-dom'; interface UnmountArgs { log: boolean; boundComponentMessage?: string; } type MountOptions = Partial; interface MountReactComponentOptions { ReactDom: typeof react_dom; /** * Log the mounting command into Cypress Command Log, * true by default. */ log: boolean; /** * Render component in React [strict mode](https://reactjs.org/docs/strict-mode.html) * It activates additional checks and warnings for child components. */ strict: boolean; } interface InternalMountOptions { reactDom: typeof react_dom; render: (reactComponent: ReturnType, el: HTMLElement, reactDomToUse: typeof react_dom) => void; unmount: (options: UnmountArgs) => void; cleanup: () => boolean; } interface MountReturn { /** * The component that was rendered. */ component: React__default.ReactNode; /** * Rerenders the specified component with new props. This allows testing of components that store state (`setState`) * or have asynchronous updates (`useEffect`, `useLayoutEffect`). */ rerender: (component: React__default.ReactNode) => globalThis.Cypress.Chainable; /** * Removes the mounted component. * * Removed as of Cypress 11.0.0. * @see https://on.cypress.io/migration-11-0-0-component-testing-updates */ unmount: (payload: UnmountArgs) => void; } /** * Create an `mount` function. Performs all the non-React-version specific * behavior related to mounting. The React-version-specific code * is injected. This helps us to maintain a consistent public API * and handle breaking changes in React's rendering API. * * This is designed to be consumed by `npm/react{16,17,18}`, and other React adapters, * or people writing adapters for third-party, custom adapters. */ declare const makeMountFn: (type: 'mount' | 'rerender', jsx: React.ReactNode, options?: MountOptions, rerenderKey?: string, internalMountOptions?: InternalMountOptions) => globalThis.Cypress.Chainable; /** * Create an `unmount` function. Performs all the non-React-version specific * behavior related to unmounting. * * This is designed to be consumed by `npm/react{16,17,18}`, and other React adapters, * or people writing adapters for third-party, custom adapters. * * @param {UnmountArgs} options used during unmounting */ declare const makeUnmountFn: (options: UnmountArgs) => Cypress.Chainable; declare const createMount: (defaultOptions: MountOptions) => (element: React.ReactElement, options?: MountOptions) => Cypress.Chainable; /** * Gets the root element used to mount the component. * @returns {HTMLElement} The root element * @throws {Error} If the root element is not found */ declare const getContainerEl: () => HTMLElement; /** * Mounts a React component into the DOM. * @param jsx {React.ReactNode} The React component to mount. * @param options {MountOptions} [options={}] options to pass to the mount function. * @param rerenderKey {string} [rerenderKey] A key to use to force a rerender. * @see {@link https://on.cypress.io/mounting-react} for more details. * @example * import { mount } from '@cypress/react' * import { Stepper } from './Stepper' * * it('mounts', () => { * mount() * cy.get('[data-cy=increment]').click() * cy.get('[data-cy=counter]').should('have.text', '1') * } */ declare function mount(jsx: React__default.ReactNode, options?: MountOptions, rerenderKey?: string): Cypress.Chainable; /** * Removed as of Cypress 11.0.0. * @see https://on.cypress.io/migration-11-0-0-component-testing-updates */ declare function unmount(options?: { log: boolean; }): void; /** * Mounts a React hook function in a test component for testing. * Removed as of Cypress 11.0.0. * @see https://on.cypress.io/migration-11-0-0-component-testing-updates */ declare const mountHook: (hookFn: (...args: any[]) => T) => void; export { InternalMountOptions, MountOptions, MountReactComponentOptions, MountReturn, UnmountArgs, createMount, getContainerEl, makeMountFn, makeUnmountFn, mount, mountHook, unmount };