I am trying to create SelectColumn.test.js similar to Summary.test.js
But unfortunately not successful, I tried all solutions from code forums. But seems I am doing something wrong.
Result: failed
Expected result should be: passed
Error:
react-modal: No elements were found for selector #root.
180 |
181 | render() {
> 182 | ReactModal.setAppElement("#root");
| ^
183 | return (
184 | <ReactModal
185 | className="overlay"
Edited on 01.03.2020:
I added <div id="root"> which fixed error:
react-modal: No elements were found for selector #root.
but now new error is showing:
TypeError: parentInstance.children.indexOf is not a function
in code:
81 | .create(<Overview data={data} />)
82 | .getInstance();
> 83 | const component = renderer.create(component_func(overview));
| ^
84 |
85 | expect(component).toMatchSnapshot();
86 | });
I tried to move ReactModal.setAppElement to componentDidMount but it seems not to be the solution.
Edited on 04.03.2020:
Now I changed my code so it tests from the main component from App.js which works great, but I want to test just the child component SelectColumn. I tried with shallow and find but the snapshot is always exports[...] = null;
import React from "react";
import SelectColumn from "../App.js";
import { test_snapshot_of } from "./utils.js";
import Enzyme, { shallow } from "enzyme";
import Adapter from "enzyme-adapter-react-16";
Enzyme.configure({ adapter: new Adapter() });
// mock uniqid to have consistent names
// https://stackoverflow.com/a/44538270/396730
jest.mock("uniqid", () => i => i + "uniqid");
const wrapper = shallow(<SelectColumn />);
const rootElement = wrapper.find("#root");
test_snapshot_of("Render SelectColumn", overview => rootElement);