ReactTestUtils

@deprecated("Migrate to React 18 and ReactTestUtils2. This will be replaced by ReactTestUtils2 in scalajs-react 3.0.0.", "2.2.0 / React 18")
Companion:
object
Deprecated
class Object
trait Matchable
class Any
object ReactTestUtils.type

Type members

Types

type CompType = ComponentRaw { type Raw <: ComponentClassUntyped; }
type Mounted = MountedRaw
type MountedOutput = Mounted[Object, Object]
type Unmounted[M] = UnmountedSimple[_, M]

Value members

Concrete methods

def act[A](body: => A): A

When writing UI tests, tasks like rendering, user events, or data fetching can be considered as "units" of interaction with a user interface. React provides a helper called act() that makes sure all updates related to these "units" have been processed and applied to the DOM before you make any assertions:

When writing UI tests, tasks like rendering, user events, or data fetching can be considered as "units" of interaction with a user interface. React provides a helper called act() that makes sure all updates related to these "units" have been processed and applied to the DOM before you make any assertions:

 act {
   // render components
 }
 // make assertions

This helps make your tests run closer to what real users would experience when using your application.

def actAsync[F[_], A](body: F[A])(implicit F: Async[F]): F[A]

When writing UI tests, tasks like rendering, user events, or data fetching can be considered as "units" of interaction with a user interface. React provides a helper called act() that makes sure all updates related to these "units" have been processed and applied to the DOM before you make any assertions:

When writing UI tests, tasks like rendering, user events, or data fetching can be considered as "units" of interaction with a user interface. React provides a helper called act() that makes sure all updates related to these "units" have been processed and applied to the DOM before you make any assertions:

 await act(async () => {
   // render components
 });
 // make assertions

This helps make your tests run closer to what real users would experience when using your application.

def findAllInRenderedTree(tree: Mounted, test: MountedOutput => Boolean): Vector[MountedOutput]

Traverse all components in tree and accumulate all components where test(component) is true. This is not that useful on its own, but it's used as a primitive for other test utils.

Traverse all components in tree and accumulate all components where test(component) is true. This is not that useful on its own, but it's used as a primitive for other test utils.

Same as scryRenderedComponentsWithType but expects there to be one result and returns that one result, or throws exception if there is any other number of matches besides one.

Same as scryRenderedComponentsWithType but expects there to be one result and returns that one result, or throws exception if there is any other number of matches besides one.

Like scryRenderedDOMComponentsWithClass but expects there to be one result, and returns that one result, or throws exception if there is any other number of matches besides one.

Like scryRenderedDOMComponentsWithClass but expects there to be one result, and returns that one result, or throws exception if there is any other number of matches besides one.

Like scryRenderedDOMComponentsWithTag but expects there to be one result, and returns that one result, or throws exception if there is any other number of matches besides one.

Like scryRenderedDOMComponentsWithTag but expects there to be one result, and returns that one result, or throws exception if there is any other number of matches besides one.

def modifyProps[P, U <: UnmountedSimple[P, M], M <: MountedSimple[Id, Async, P, _]](c: ComponentSimple[P, Props, U], m: M)(f: P => P): M
def newBodyElement(): Element
def newDocumentElement(): Element
def removeNewBodyElement(e: Element): Unit
def removeNewDocumentElement(e: Element): Unit
def removeReactInternals(html: String): String

Turn &lt;div data-reactroot=""&gt;hello&lt/div&gt; into &lt;div&gt;hello&lt/div&gt;

Turn &lt;div data-reactroot=""&gt;hello&lt/div&gt; into &lt;div&gt;hello&lt/div&gt;

def renderIntoBody[M](u: Unmounted[M]): M

Renders a component into the document body via ReactDOM.render.

Renders a component into the document body via ReactDOM.render.

Unlike ReactTestUtils.renderIntoDocument, this allows DOM focus to work.

def renderIntoDocument[M](unmounted: Unmounted[M]): M

Render a component into a detached DOM node in the document. This function requires a DOM.

Render a component into a detached DOM node in the document. This function requires a DOM.

def renderIntoDocument(e: VdomElement): MountedOutput
def replaceProps[P, U <: UnmountedSimple[P, M], M <: MountedSimple[Id, Async, P, _]](c: ComponentSimple[P, Props, U], m: M)(p: P): M

Finds all instances of components with type equal to componentClass.

Finds all instances of components with type equal to componentClass.

def scryRenderedDOMComponentsWithClass(tree: Mounted, className: String): Vector[MountedOutput]

Finds all instance of components in the rendered tree that are DOM components with the class name matching className.

Finds all instance of components in the rendered tree that are DOM components with the class name matching className.

def scryRenderedDOMComponentsWithTag(tree: Mounted, tagName: String): Vector[MountedOutput]

Finds all instance of components in the rendered tree that are DOM components with the tag name matching tagName.

Finds all instance of components in the rendered tree that are DOM components with the tag name matching tagName.

def unmountRawComponent(c: ComponentUntyped | Null): Unit
def withNewBodyElement[A](use: Element => A): A
def withNewBodyElementAsync[F[_], A](use: Element => F[A])(implicit F: Async[F]): F[A]
def withNewBodyElementFuture[A](use: Element => Future[A])(implicit ec: ExecutionContext): Future[A]
def withNewDocumentElement[A](use: Element => A): A
def withNewDocumentElementAsync[F[_], A](use: Element => F[A])(implicit F: Async[F]): F[A]
def withNewDocumentElementFuture[A](use: Element => Future[A])(implicit ec: ExecutionContext): Future[A]
def withRendered[M](u: Unmounted[M], intoBody: Boolean): WithRenderedDsl[M, Element]

Renders a component then unmounts and cleans up after use.

Renders a component then unmounts and cleans up after use.

Value parameters:
intoBody

Whether to use renderIntoBody or ReactTestUtils.renderIntoDocument.

def withRenderedAsync[M](u: Unmounted[M], intoBody: Boolean): WithRenderedDslF[Async, M, Element]

Renders a component then unmounts and cleans up after use.

Renders a component then unmounts and cleans up after use.

Value parameters:
intoBody

Whether to use renderIntoBodyAsync() or renderIntoDocumentAsync().

def withRenderedFuture[M, A](u: Unmounted[M], intoBody: Boolean)(f: M => Future[A])(implicit ec: ExecutionContext): Future[A]

Renders a component then unmounts and cleans up after use.

Renders a component then unmounts and cleans up after use.

Value parameters:
intoBody

Whether to use renderIntoBodyFuture() or renderIntoDocumentFuture().

Renders a component into the document body via ReactDOM.render, then unmounts and cleans up after use.

Renders a component into the document body via ReactDOM.render, then unmounts and cleans up after use.

Unlike ReactTestUtils.renderIntoDocument, this allows DOM focus to work.

def withRenderedIntoBodyAsync[M](u: Unmounted[M]): WithRenderedDslF[Async, M, Element]

Renders a component into the document body via ReactDOM.render, and asynchronously waits for the Async to complete before unmounting.

Renders a component into the document body via ReactDOM.render, and asynchronously waits for the Async to complete before unmounting.

def withRenderedIntoBodyFuture[M, A](u: Unmounted[M])(f: M => Future[A])(implicit ec: ExecutionContext): Future[A]

Renders a component into the document body via ReactDOM.render, and asynchronously waits for the Future to complete before unmounting.

Renders a component into the document body via ReactDOM.render, and asynchronously waits for the Future to complete before unmounting.

Renders a component into detached DOM via ReactTestUtils.renderIntoDocument, then unmounts and cleans up after use.

Renders a component into detached DOM via ReactTestUtils.renderIntoDocument, then unmounts and cleans up after use.

def withRenderedIntoDocumentAsync[M](u: Unmounted[M]): WithRenderedDslF[Async, M, Element]

Renders a component into the document body via ReactDOM.render, and asynchronously waits for the Async to complete before unmounting.

Renders a component into the document body via ReactDOM.render, and asynchronously waits for the Async to complete before unmounting.

def withRenderedIntoDocumentFuture[M, A](u: Unmounted[M])(f: M => Future[A])(implicit ec: ExecutionContext): Future[A]

Renders a component into detached DOM via ReactTestUtils.renderIntoDocument, and asynchronously waits for the Future to complete before unmounting.

Renders a component into detached DOM via ReactTestUtils.renderIntoDocument, and asynchronously waits for the Future to complete before unmounting.

Implicits

Inherited implicits

final implicit def reactTestExtMountedImpure[A[_], P, S](m: MountedSimple[Id, A, P, S]): ReactTestExt_MountedSimple[Id, A, P, S]
final implicit def reactTestExtMountedSimple[F[_], A[_], P, S](m: MountedSimple[F, A, P, S]): ReactTestExt_MountedSimple[F, A, P, S]