import React = require("react");
import { act, create, ReactTestInstance } from "react-test-renderer";
import { createRenderer } from 'react-test-renderer/shallow';

class TestComponent extends React.Component { }

const renderer = create(React.createElement("div"), {
    createNodeMock: (el: React.ReactElement<any>) => {
        return {};
    }
});

const json = renderer.toJSON();
if (json) {
    json.type = "t";
    json.props = {
        prop1: "p",
    };
    json.children = [json];
}

const tree = renderer.toTree();
if (tree) {
    tree.type = "t";
    tree.props = {
        prop1: "p",
    };
    tree.children = [tree];
    tree.rendered = tree;
    tree.nodeType = "component";
    tree.nodeType = "host";
import * as React from "react";
import { create } from "react-test-renderer";
import { createRenderer } from 'react-test-renderer/shallow';

const tree = create(React.createElement("div"), {
    createNodeMock: (el: React.ReactElement<any>) => {
        return {};
    }
}).toJSON();

tree.type = "t";
tree.props = {
    prop1: "p",
};
tree.children = [tree];
tree.$$typeof = "t";

class TestComponent extends React.Component { }

const component = React.createElement(TestComponent);
const shallowRenderer = createRenderer();
shallowRenderer.render(component);
shallowRenderer.getRenderOutput();
export function safeCreate<TProps>(content: React.ReactElement<TProps>, callback: (wrapper: renderer.ReactTestRenderer) => void): void {
  const wrapper = renderer.create(content);

  callback(wrapper);
  wrapper.unmount();
}