From 597a9108aef3d4e7045d87730ede227f388f6599 Mon Sep 17 00:00:00 2001 From: vvo Date: Fri, 16 Oct 2015 22:20:36 +0200 Subject: [PATCH] fix: handle arrays the right way --- index-test.js | 37 +++++++++++++++++++++++++++++++++++++ index.js | 4 ++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/index-test.js b/index-test.js index 593ddd33a..24b6de986 100644 --- a/index-test.js +++ b/index-test.js @@ -200,6 +200,7 @@ describe(`reactElementToJSXString(ReactElement)`, () => { ).toEqual(`
`); }); + it(`reactElementToJSXString(
)`, () => { expect( reactElementToJSXString(
) @@ -217,4 +218,40 @@ describe(`reactElementToJSXString(ReactElement)`, () => {
`); }); + + it(`reactElementToJSXString(
`, () => { + expect( + reactElementToJSXString(
) + ).toEqual(`
`); + }); + + it(`reactElementToJSXString(
`, () => { + expect( + reactElementToJSXString(
) + ).toEqual(`
`); + }); + + it(`reactElementToJSXString(
`, () => { + expect( + reactElementToJSXString(
) + ).toEqual(`
`); + }); + + it(`reactElementToJSXString(
`, () => { + expect( + reactElementToJSXString(
) + ).toEqual(`
`); + }); + + it(`reactElementToJSXString(
`, () => { + expect( + reactElementToJSXString(
) + ).toEqual(`
`); + }); + + it(`reactElementToJSXString(
]} />`, () => { + expect( + reactElementToJSXString(
]} />) + ).toEqual(`
]} />`); + }); }); diff --git a/index.js b/index.js index 48755e3c7..bcd8e4277 100644 --- a/index.js +++ b/index.js @@ -116,7 +116,7 @@ function formatValue(value) { return '<__reactElementToJSXString__Wrapper__>' + toJSXString({ReactElement: value, inline: true}) + ''; - } else if (isPlainObject(value)) { + } else if (isPlainObject(value) || Array.isArray(value)) { return '<__reactElementToJSXString__Wrapper__>' + stringifyObject(value) + ''; @@ -132,7 +132,7 @@ function recurse({lvl, inline}) { } function stringifyObject(obj) { - if (Object.keys(obj).length > 0) { + if (Object.keys(obj).length > 0 || obj.length > 0) { obj = traverse(obj).map(function(value) { if (isElement(value) || this.isLeaf) { this.update(formatValue(value));