Skip to content

Commit

Permalink
fix: handle arrays the right way
Browse files Browse the repository at this point in the history
  • Loading branch information
vvo committed Oct 16, 2015
1 parent 63186f1 commit 597a910
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 2 deletions.
37 changes: 37 additions & 0 deletions index-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ describe(`reactElementToJSXString(ReactElement)`, () => {
).toEqual(`<div a={{}} />`);
});


it(`reactElementToJSXString(<div><span /><span /></div>)`, () => {
expect(
reactElementToJSXString(<div><span /><span /></div>)
Expand All @@ -217,4 +218,40 @@ describe(`reactElementToJSXString(ReactElement)`, () => {
<div />
</div>`);
});

it(`reactElementToJSXString(<div a={[1, 2, 3, 4]} />`, () => {
expect(
reactElementToJSXString(<div a={[1, 2, 3, 4]} />)
).toEqual(`<div a={[1, 2, 3, 4]} />`);
});

it(`reactElementToJSXString(<div a={[1, 2, 3, 4]} />`, () => {
expect(
reactElementToJSXString(<div a={[{Hello: ', world!'}]} />)
).toEqual(`<div a={[{Hello: ', world!'}]} />`);
});

it(`reactElementToJSXString(<div a={[{}]} />`, () => {
expect(
reactElementToJSXString(<div a={[{}]} />)
).toEqual(`<div a={[{}]} />`);
});

it(`reactElementToJSXString(<div a={[]} />`, () => {
expect(
reactElementToJSXString(<div a={[]} />)
).toEqual(`<div a={[]} />`);
});

it(`reactElementToJSXString(<div a={[]} />`, () => {
expect(
reactElementToJSXString(<div a={[]} />)
).toEqual(`<div a={[]} />`);
});

it(`reactElementToJSXString(<div a={[<div><span /></div>]} />`, () => {
expect(
reactElementToJSXString(<div a={[<div><span /></div>]} />)
).toEqual(`<div a={[<div><span /></div>]} />`);
});
});
4 changes: 2 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ function formatValue(value) {
return '<__reactElementToJSXString__Wrapper__>' +
toJSXString({ReactElement: value, inline: true}) +
'</__reactElementToJSXString__Wrapper__>';
} else if (isPlainObject(value)) {
} else if (isPlainObject(value) || Array.isArray(value)) {
return '<__reactElementToJSXString__Wrapper__>' +
stringifyObject(value) +
'</__reactElementToJSXString__Wrapper__>';
Expand All @@ -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));
Expand Down

0 comments on commit 597a910

Please sign in to comment.