Test utils - mountInEnzyme - support loading intrinsic elements

This commit is contained in:
2019-08-09 22:10:08 +05:30
parent fb23260efe
commit 2aa7a9bbf3
+11 -6
View File
@@ -1,7 +1,12 @@
import * as React from "react"; import * as React from "react";
import { mount } from "enzyme"; import { mount } from "enzyme";
import { FiberNode, FiberNodeForComponentClass } from "../../src/mocked-types"; import {
import { isConstructorFunctionComponent } from "../../src/utils"; FiberNode,
FiberNodeForComponentClass,
} from "../../src/mocked-types";
import {
isConstructorComponentClass
} from "../../src/utils";
import getWrappedComponent from "./getWrappedComponent"; import getWrappedComponent from "./getWrappedComponent";
export class RootNodeNotFoundError extends Error { export class RootNodeNotFoundError extends Error {
@@ -13,14 +18,14 @@ export class RootNodeNotFoundError extends Error {
} }
export function mountAndGetRootNode( export function mountAndGetRootNode(
SomeComponent: React.ComponentType, SomeComponent: React.ElementType,
container: HTMLElement container: HTMLElement
): FiberNode { ): FiberNode {
const rootRef = React.createRef<React.Component>(); const rootRef = React.createRef<React.Component>();
let ToMount = undefined; let ToMount: React.ComponentClass | undefined = undefined;
// Wrap function components in ComponentClass to be able to set ref // Wrap function components in ComponentClass to be able to set ref
if (isConstructorFunctionComponent(SomeComponent)) { if (!isConstructorComponentClass(SomeComponent)) {
ToMount = getWrappedComponent(SomeComponent); ToMount = getWrappedComponent(SomeComponent);
} else { } else {
ToMount = SomeComponent; ToMount = SomeComponent;
@@ -41,7 +46,7 @@ export function mountAndGetRootNode(
} }
// Unwrap function components to return expected root node // Unwrap function components to return expected root node
if (isConstructorFunctionComponent(SomeComponent)) { if (!isConstructorComponentClass(SomeComponent)) {
return (rootNode as FiberNodeForComponentClass).child as FiberNode; return (rootNode as FiberNodeForComponentClass).child as FiberNode;
} else { } else {
return rootNode; return rootNode;