Browse Source

Returning an array. Added docs and fixed tests

pull/11/head
Francisco Presencia 5 years ago
parent
commit
094a060d55
  1. 39
      README.md
  2. 2
      src/index.js
  3. 10
      test/react-jsdom.js

39
README.md

@ -20,31 +20,26 @@ npm install --save-dev react-jsdom
const React = require('react');
const ReactJSDOM = require('react-jsdom');
class Hi extends React.Component {
render() {
return (
<div>
<span>hi</span>
<span>{this.props.person}</span>
</div>
);
}
componentDidMount() {
console.log('I mounted!');
}
}
const elem = ReactJSDOM.render(<Hi person="mum"/>);
// console: 'I mounted!'
elem.constructor.name
const Hi = function ({ person }) {
console.log('Hello there');
return (
<div>
<span>hi</span>
<span>{person}</span>
</div>
);
};
const elems = ReactJSDOM.render(<Hi person="mum"/>);
// console: 'Hello there'
elems[0].constructor.name
// 'HTMLDivElement'
elem.nodeName;
elems[0].nodeName;
// 'DIV');
elem.querySelector('span:last-child').textContent;
elems[0].querySelector('span:last-child').textContent;
// 'mum'
elem.outerHTML;
elems[0].outerHTML;
// <div>
// <span>hi</span>
// <span>mum</span>

2
src/index.js

@ -26,7 +26,7 @@ const ReactJSDOM = {
global[prop] = origGlobals[prop];
});
return container.childNodes[0];
return [...container.childNodes];
}
};

10
test/react-jsdom.js

@ -30,13 +30,13 @@ test('ReactJSDOM cleans up globals', t => {
});
test('ReactJSDOM renders a React Component', t => {
const elem = ReactJSDOM.render(<TestComponent/>);
const [elem] = ReactJSDOM.render(<TestComponent/>);
t.is(elem.nodeName, 'DIV');
t.is(elem.textContent, 'hi');
});
test('ReactJSDOM renders a React Fragment', t => {
const elem = ReactJSDOM.render((
const [elem] = ReactJSDOM.render((
<React.Fragment><TestComponent/></React.Fragment>
));
t.is(elem.nodeName, 'DIV');
@ -44,20 +44,20 @@ test('ReactJSDOM renders a React Fragment', t => {
});
test('ReactJSDOM renders a Text String', t => {
const elem = ReactJSDOM.render('Hello world');
const [elem] = ReactJSDOM.render('Hello world');
t.is(elem.nodeName, '#text');
t.is(elem.textContent, 'Hello world');
});
test('ReactJSDOM renders a Fragment wrapping a text string', t => {
const elem = ReactJSDOM.render(<React.Fragment>Hello world</React.Fragment>);
const [elem] = ReactJSDOM.render(<React.Fragment>Hello world</React.Fragment>);
t.is(elem.nodeName, '#text');
t.is(elem.textContent, 'Hello world');
});
test('ReactJSDOM allows window instance to be passed in', t => {
const window = new Window();
const elem = ReactJSDOM.render(<TestComponent/>, window);
const [elem] = ReactJSDOM.render(<TestComponent/>, window);
t.is(elem, window.document.getElementById('root').children[0]);
t.is(elem.nodeName, 'DIV');
t.is(elem.textContent, 'hi');

Loading…
Cancel
Save