diff --git a/index-test.js b/index-test.js
index fe35497bd..593ddd33a 100644
--- a/index-test.js
+++ b/index-test.js
@@ -199,4 +199,22 @@ describe(`reactElementToJSXString(ReactElement)`, () => {
reactElementToJSXString(
)
).toEqual(``);
});
+
+ it(`reactElementToJSXString(
)`, () => {
+ expect(
+ reactElementToJSXString(
)
+ ).toEqual(`
+
+
+
`);
+ });
+
+ it(`reactElementToJSXString()`, () => {
+ expect(
+ reactElementToJSXString()
+ ).toEqual(``);
+ });
});
diff --git a/index.js b/index.js
index d1f0eb2e1..48755e3c7 100644
--- a/index.js
+++ b/index.js
@@ -11,8 +11,11 @@ export default function reactElementToJSXString(ReactElement) {
}
function toJSXString({ReactElement = null, lvl = 0, inline = false}) {
- if (!isElement(ReactElement)) {
- throw new Error('react-element-to-jsx-string: Expected a ReactElement');
+ if (typeof ReactElement === 'string') {
+ return ReactElement;
+ } else if (!isElement(ReactElement)) {
+ throw new Error('react-element-to-jsx-string: Expected a ReactElement, ' +
+ 'got `' + (typeof ReactElement) + '`');
}
let tagName;
@@ -58,7 +61,7 @@ function toJSXString({ReactElement = null, lvl = 0, inline = false}) {
.toArray(children)
.map(
recurse({lvl, inline})
- );
+ ).join('\n' + spacer(lvl));
}
if (!inline) {
out += `\n`;