diff --git a/test/__tests__/create-element-to-jsx-test.js b/test/__tests__/create-element-to-jsx-test.js index f28dcac5..218bdcab 100644 --- a/test/__tests__/create-element-to-jsx-test.js +++ b/test/__tests__/create-element-to-jsx-test.js @@ -34,6 +34,8 @@ describe('create-element-to-jsx', () => { test('create-element-to-jsx', 'create-element-to-jsx-spread-props'); test('create-element-to-jsx', 'create-element-to-jsx-no-react'); + + test('create-element-to-jsx', 'create-element-to-jsx-literal-prop'); }); }); diff --git a/test/create-element-to-jsx-literal-prop.js b/test/create-element-to-jsx-literal-prop.js new file mode 100644 index 00000000..6b74002b --- /dev/null +++ b/test/create-element-to-jsx-literal-prop.js @@ -0,0 +1,3 @@ +var React = require('React'); + +React.createElement(Foo, {'foo': 'bar'}); diff --git a/test/create-element-to-jsx-literal-prop.output.js b/test/create-element-to-jsx-literal-prop.output.js new file mode 100644 index 00000000..12408c00 --- /dev/null +++ b/test/create-element-to-jsx-literal-prop.output.js @@ -0,0 +1,3 @@ +var React = require('React'); + +; diff --git a/transforms/create-element-to-jsx.js b/transforms/create-element-to-jsx.js index 73393690..bc2462b2 100644 --- a/transforms/create-element-to-jsx.js +++ b/transforms/create-element-to-jsx.js @@ -25,8 +25,15 @@ module.exports = function(file, api, options) { value = j.jsxExpressionContainer(property.value); } + let propertyKeyName; + if (property.key.type === 'Literal') { + propertyKeyName = property.key.value; + } else { + propertyKeyName = property.key.name; + } + return j.jsxAttribute( - j.jsxIdentifier(property.key.name), + j.jsxIdentifier(propertyKeyName), value ); }