Skip to content

Instantly share code, notes, and snippets.

@badeball
Last active December 12, 2016 23:25
Show Gist options
  • Save badeball/da02773ccbc0e0b96a0c7ee4396a8ccd to your computer and use it in GitHub Desktop.
Save badeball/da02773ccbc0e0b96a0c7ee4396a8ccd to your computer and use it in GitHub Desktop.
Rendering virtual component tree
{
"scripts": {
"test": "mocha test.js"
},
"dependencies": {
"mocha": "^3.2.0",
"react": "^15.4.1",
"react-addons-test-utils": "^15.4.1",
"react-dom": "^15.4.1",
"react-test-renderer": "^15.4.1",
"xpath-evaluator": "^2.0.1",
"xpath-react": "^4.0.0"
}
}
var React = require("react");
var ReactTestUtils = require('react-addons-test-utils');
var ReactTestRenderer = require('react-test-renderer');
var getHostComponentFromComposite = require('react-test-renderer/lib/getHostComponentFromComposite');
var Assert = require("assert");
var XPathUtils = require("xpath-react/utils");
function Foo () {
return React.createElement(Bar);
}
function Bar () {
return React.createElement("span", {}, "Hello world!");
}
describe("ReactTestUtils", function () {
it("should not be able to render sub component", function () {
var renderer = ReactTestUtils.createRenderer();
renderer.render(React.createElement(Foo));
var output = renderer.getRenderOutput();
var result = XPathUtils.find(output, "count(.//span)");
Assert.equal(result, 0);
});
});
describe("ReactTestRenderer", function () {
it("should be able to render sub component", function () {
var renderer = renderer = ReactTestRenderer.create(
React.createElement(Foo));
var output = getHostComponentFromComposite(renderer._component)._currentElement;
var result = XPathUtils.find(output, "count(.//span)");
Assert.equal(result, 1);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment