Skip to content

Commit 8ee80d1

Browse files
committed
Add test to variable-assignment case for object spread
This gives us more assurance that this code is working as expected.
1 parent 56a7de5 commit 8ee80d1

File tree

7 files changed

+45
-0
lines changed

7 files changed

+45
-0
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"@babel/generator": "7.0.0-beta.42",
3737
"@babel/plugin-external-helpers": "7.0.0-beta.42",
3838
"@babel/plugin-proposal-class-properties": "7.0.0-beta.42",
39+
"@babel/plugin-proposal-object-rest-spread": "^7.0.0-rc.1",
3940
"@babel/plugin-transform-flow-strip-types": "7.0.0-beta.42",
4041
"@babel/preset-env": "7.0.0-beta.42",
4142
"@babel/preset-flow": "7.0.0-beta.42",

test/fixtures.test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { transformFileSync } from '@babel/core'
99
import babelPluginSyntaxJsx from '@babel/plugin-syntax-jsx'
1010
import babelPluginExternalHelpers from '@babel/plugin-external-helpers'
1111
import babelPluginTransformClassProperties from '@babel/plugin-proposal-class-properties'
12+
import babelPluginProposalObjectRestSpread from '@babel/plugin-proposal-object-rest-spread'
1213
import babelPluginTransformReactRemovePropTypes from '../src/index'
1314
import { trim } from './utils'
1415

@@ -55,6 +56,7 @@ describe('fixtures', () => {
5556
babelConfig = {
5657
plugins: [
5758
babelPluginExternalHelpers,
59+
babelPluginProposalObjectRestSpread,
5860
[
5961
babelPluginTransformReactRemovePropTypes,
6062
{
@@ -70,6 +72,7 @@ describe('fixtures', () => {
7072
babelConfig = {
7173
plugins: [
7274
babelPluginExternalHelpers,
75+
babelPluginProposalObjectRestSpread,
7376
[
7477
babelPluginTransformReactRemovePropTypes,
7578
{
@@ -88,6 +91,7 @@ describe('fixtures', () => {
8891
babelPluginExternalHelpers,
8992
babelPluginSyntaxJsx,
9093
babelPluginTransformClassProperties,
94+
babelPluginProposalObjectRestSpread,
9195
[
9296
babelPluginTransformReactRemovePropTypes,
9397
{
@@ -106,6 +110,7 @@ describe('fixtures', () => {
106110
babelPluginExternalHelpers,
107111
babelPluginSyntaxJsx,
108112
babelPluginTransformClassProperties,
113+
babelPluginProposalObjectRestSpread,
109114
[
110115
babelPluginTransformReactRemovePropTypes,
111116
{
@@ -121,6 +126,7 @@ describe('fixtures', () => {
121126
babelConfig = {
122127
plugins: [
123128
babelPluginExternalHelpers,
129+
babelPluginProposalObjectRestSpread,
124130
[babelPluginTransformReactRemovePropTypes, options],
125131
],
126132
}

test/fixtures/variable-assignment/actual.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,18 @@ const FooExtraReference = () => (
2222

2323
FooExtraReference.propTypes = propTypesWithExtraReference;
2424

25+
const propTypesWithExtraReferenceSpread = {
26+
...extraReference,
27+
...({ foo: PropTypes.string }),
28+
bar: PropTypes.string
29+
};
30+
31+
const FooExtraReferenceSpread = () => (
32+
<div />
33+
);
34+
35+
FooExtraReferenceSpread.propTypes = propTypesWithExtraReferenceSpread;
36+
2537
const propTypesWrapped = {
2638
foo: PropTypes.string
2739
};

test/fixtures/variable-assignment/expected-remove-es5.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ var FooExtraReference = function FooExtraReference() {
1313
return React.createElement("div", null);
1414
};
1515

16+
var FooExtraReferenceSpread = function FooExtraReferenceSpread() {
17+
return React.createElement("div", null);
18+
};
19+
1620
var FooWrapped = function FooWrapped() {
1721
return React.createElement("div", null);
1822
};

test/fixtures/variable-assignment/expected-remove-es6.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ const FooBasic = () => <div />;
22

33
const FooExtraReference = () => <div />;
44

5+
const FooExtraReferenceSpread = () => <div />;
6+
57
const FooWrapped = () => <div />;
68

79
const propTypesReferenced = {

test/fixtures/variable-assignment/expected-wrap-es5.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,17 @@ var FooExtraReference = function FooExtraReference() {
2525
};
2626

2727
FooExtraReference.propTypes = process.env.NODE_ENV !== "production" ? propTypesWithExtraReference : {};
28+
var propTypesWithExtraReferenceSpread = process.env.NODE_ENV !== "production" ? babelHelpers.objectSpread({}, extraReference, {
29+
foo: PropTypes.string
30+
}, {
31+
bar: PropTypes.string
32+
}) : {};;
33+
34+
var FooExtraReferenceSpread = function FooExtraReferenceSpread() {
35+
return React.createElement("div", null);
36+
};
37+
38+
FooExtraReferenceSpread.propTypes = process.env.NODE_ENV !== "production" ? propTypesWithExtraReferenceSpread : {};
2839
var propTypesWrapped = process.env.NODE_ENV !== "production" ? {
2940
foo: PropTypes.string
3041
} : {};;

test/fixtures/variable-assignment/expected-wrap-es6.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,15 @@ const propTypesWithExtraReference = process.env.NODE_ENV !== "production" ? Obje
1515
const FooExtraReference = () => <div />;
1616

1717
FooExtraReference.propTypes = process.env.NODE_ENV !== "production" ? propTypesWithExtraReference : {};
18+
const propTypesWithExtraReferenceSpread = process.env.NODE_ENV !== "production" ? babelHelpers.objectSpread({}, extraReference, {
19+
foo: PropTypes.string
20+
}, {
21+
bar: PropTypes.string
22+
}) : {};;
23+
24+
const FooExtraReferenceSpread = () => <div />;
25+
26+
FooExtraReferenceSpread.propTypes = process.env.NODE_ENV !== "production" ? propTypesWithExtraReferenceSpread : {};
1827
const propTypesWrapped = process.env.NODE_ENV !== "production" ? {
1928
foo: PropTypes.string
2029
} : {};;

0 commit comments

Comments
 (0)