@samitouri / QOS-React / commits / 48616e591f

react-dom: convert packages/react-dom/src/__tests__ (#11776)

Raphael Amorim committed Dec 5, 2017 at 16:29 UTC 48616e591fe23c0b89b0823c3ec99bae2d7b6853
58 files changed +1591 -1579
packages/react-dom/src/__tests__/CSSPropertyOperations-test.js
+30 -30
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactDOM = require('react-dom');
14 -var ReactDOMServer = require('react-dom/server');
12 +const React = require('react');
13 +const ReactDOM = require('react-dom');
14 +const ReactDOMServer = require('react-dom/server');
15
16 function normalizeCodeLocInfo(str) {
17 return str && str.replace(/at .+?:\d+/g, 'at **');
@@ -19,66 +19,66 @@ function normalizeCodeLocInfo(str) {
19
20 describe('CSSPropertyOperations', () => {
21 it('should automatically append `px` to relevant styles', () => {
22 - var styles = {
22 + const styles = {
23 left: 0,
24 margin: 16,
25 opacity: 0.5,
26 padding: '4px',
27 };
28 - var div = <div style={styles} />;
29 - var html = ReactDOMServer.renderToString(div);
28 + const div = <div style={styles} />;
29 + const html = ReactDOMServer.renderToString(div);
30 expect(html).toContain('"left:0;margin:16px;opacity:0.5;padding:4px"');
31 });
32
33 it('should trim values', () => {
34 - var styles = {
34 + const styles = {
35 left: '16 ',
36 opacity: 0.5,
37 right: ' 4 ',
38 };
39 - var div = <div style={styles} />;
40 - var html = ReactDOMServer.renderToString(div);
39 + const div = <div style={styles} />;
40 + const html = ReactDOMServer.renderToString(div);
41 expect(html).toContain('"left:16;opacity:0.5;right:4"');
42 });
43
44 it('should not append `px` to styles that might need a number', () => {
45 - var styles = {
45 + const styles = {
46 flex: 0,
47 opacity: 0.5,
48 };
49 - var div = <div style={styles} />;
50 - var html = ReactDOMServer.renderToString(div);
49 + const div = <div style={styles} />;
50 + const html = ReactDOMServer.renderToString(div);
51 expect(html).toContain('"flex:0;opacity:0.5"');
52 });
53
54 it('should create vendor-prefixed markup correctly', () => {
55 - var styles = {
55 + const styles = {
56 msTransition: 'none',
57 MozTransition: 'none',
58 };
59 - var div = <div style={styles} />;
60 - var html = ReactDOMServer.renderToString(div);
59 + const div = <div style={styles} />;
60 + const html = ReactDOMServer.renderToString(div);
61 expect(html).toContain('"-ms-transition:none;-moz-transition:none"');
62 });
63
64 it('should set style attribute when styles exist', () => {
65 - var styles = {
65 + const styles = {
66 backgroundColor: '#000',
67 display: 'none',
68 };
69 - var div = <div style={styles} />;
70 - var root = document.createElement('div');
69 + let div = <div style={styles} />;
70 + const root = document.createElement('div');
71 div = ReactDOM.render(div, root);
72 expect(/style=".*"/.test(root.innerHTML)).toBe(true);
73 });
74
75 it('should not set style attribute when no styles exist', () => {
76 - var styles = {
76 + const styles = {
77 backgroundColor: null,
78 display: null,
79 };
80 - var div = <div style={styles} />;
81 - var html = ReactDOMServer.renderToString(div);
80 + const div = <div style={styles} />;
81 + const html = ReactDOMServer.renderToString(div);
82 expect(/style=/.test(html)).toBe(false);
83 });
84
@@ -92,7 +92,7 @@ describe('CSSPropertyOperations', () => {
92 }
93
94 spyOnDev(console, 'error');
95 - var root = document.createElement('div');
95 + const root = document.createElement('div');
96 ReactDOM.render(<Comp />, root);
97 if (__DEV__) {
98 expect(console.error.calls.count()).toBe(1);
@@ -114,11 +114,11 @@ describe('CSSPropertyOperations', () => {
114 }
115
116 spyOnDev(console, 'error');
117 - var styles = {
117 + const styles = {
118 '-ms-transform': 'translate3d(0, 0, 0)',
119 '-webkit-transform': 'translate3d(0, 0, 0)',
120 };
121 - var root = document.createElement('div');
121 + const root = document.createElement('div');
122 ReactDOM.render(<Comp />, root);
123 ReactDOM.render(<Comp style={styles} />, root);
124
@@ -155,7 +155,7 @@ describe('CSSPropertyOperations', () => {
155 }
156
157 spyOnDev(console, 'error');
158 - var root = document.createElement('div');
158 + const root = document.createElement('div');
159 ReactDOM.render(<Comp />, root);
160 if (__DEV__) {
161 // msTransform is correct already and shouldn't warn
@@ -194,7 +194,7 @@ describe('CSSPropertyOperations', () => {
194 }
195
196 spyOnDev(console, 'error');
197 - var root = document.createElement('div');
197 + const root = document.createElement('div');
198 ReactDOM.render(<Comp />, root);
199 if (__DEV__) {
200 expect(console.error.calls.count()).toBe(2);
@@ -223,7 +223,7 @@ describe('CSSPropertyOperations', () => {
223 }
224
225 spyOnDev(console, 'error');
226 - var root = document.createElement('div');
226 + const root = document.createElement('div');
227 ReactDOM.render(<Comp />, root);
228
229 if (__DEV__) {
@@ -243,7 +243,7 @@ describe('CSSPropertyOperations', () => {
243 }
244 }
245
246 - var root = document.createElement('div');
246 + const root = document.createElement('div');
247 ReactDOM.render(<Comp />, root);
248 });
249
@@ -257,7 +257,7 @@ describe('CSSPropertyOperations', () => {
257 }
258
259 spyOnDev(console, 'error');
260 - var root = document.createElement('div');
260 + const root = document.createElement('div');
261 ReactDOM.render(<Comp />, root);
262
263 if (__DEV__) {
@@ -277,7 +277,7 @@ describe('CSSPropertyOperations', () => {
277 }
278 }
279
280 - var root = document.createElement('div');
280 + const root = document.createElement('div');
281 ReactDOM.render(<Comp />, root);
282
283 expect(root.children[0].style.Foo).toEqual('5');
packages/react-dom/src/__tests__/DOMPropertyOperations-test.js
+17 -17
@@ -10,8 +10,8 @@
10 'use strict';
11
12 describe('DOMPropertyOperations', () => {
13 - var React;
14 - var ReactDOM;
13 + let React;
14 + let ReactDOM;
15
16 beforeEach(() => {
17 jest.resetModules();
@@ -21,20 +21,20 @@ describe('DOMPropertyOperations', () => {
21
22 describe('setValueForProperty', () => {
23 it('should set values as properties by default', () => {
24 - var container = document.createElement('div');
24 + const container = document.createElement('div');
25 ReactDOM.render(<div title="Tip!" />, container);
26 expect(container.firstChild.title).toBe('Tip!');
27 });
28
29 it('should set values as attributes if necessary', () => {
30 - var container = document.createElement('div');
30 + const container = document.createElement('div');
31 ReactDOM.render(<div role="#" />, container);
32 expect(container.firstChild.getAttribute('role')).toBe('#');
33 expect(container.firstChild.role).toBeUndefined();
34 });
35
36 it('should set values as namespace attributes if necessary', () => {
37 - var container = document.createElement('svg');
37 + const container = document.createElement('svg');
38 ReactDOM.render(<image xlinkHref="about:blank" />, container);
39 expect(
40 container.firstChild.getAttributeNS(
@@ -45,7 +45,7 @@ describe('DOMPropertyOperations', () => {
45 });
46
47 it('should set values as boolean properties', () => {
48 - var container = document.createElement('div');
48 + const container = document.createElement('div');
49 ReactDOM.render(<div disabled="disabled" />, container);
50 expect(container.firstChild.getAttribute('disabled')).toBe('');
51 ReactDOM.render(<div disabled={true} />, container);
@@ -63,32 +63,32 @@ describe('DOMPropertyOperations', () => {
63 it('should convert attribute values to string first', () => {
64 // Browsers default to this behavior, but some test environments do not.
65 // This ensures that we have consistent behavior.
66 - var obj = {
66 + const obj = {
67 toString: function() {
68 return 'css-class';
69 },
70 };
71
72 - var container = document.createElement('div');
72 + const container = document.createElement('div');
73 ReactDOM.render(<div className={obj} />, container);
74 expect(container.firstChild.getAttribute('class')).toBe('css-class');
75 });
76
77 it('should not remove empty attributes for special properties', () => {
78 - var container = document.createElement('div');
78 + const container = document.createElement('div');
79 ReactDOM.render(<input value="" />, container);
80 expect(container.firstChild.getAttribute('value')).toBe('');
81 expect(container.firstChild.value).toBe('');
82 });
83
84 it('should remove for falsey boolean properties', () => {
85 - var container = document.createElement('div');
85 + const container = document.createElement('div');
86 ReactDOM.render(<div allowFullScreen={false} />, container);
87 expect(container.firstChild.hasAttribute('allowFullScreen')).toBe(false);
88 });
89
90 it('should remove when setting custom attr to null', () => {
91 - var container = document.createElement('div');
91 + const container = document.createElement('div');
92 ReactDOM.render(<div data-foo="bar" />, container);
93 expect(container.firstChild.hasAttribute('data-foo')).toBe(true);
94 ReactDOM.render(<div data-foo={null} />, container);
@@ -96,7 +96,7 @@ describe('DOMPropertyOperations', () => {
96 });
97
98 it('should set className to empty string instead of null', () => {
99 - var container = document.createElement('div');
99 + const container = document.createElement('div');
100 ReactDOM.render(<div className="selected" />, container);
101 expect(container.firstChild.className).toBe('selected');
102 ReactDOM.render(<div className={null} />, container);
@@ -107,7 +107,7 @@ describe('DOMPropertyOperations', () => {
107 });
108
109 it('should remove property properly for boolean properties', () => {
110 - var container = document.createElement('div');
110 + const container = document.createElement('div');
111 ReactDOM.render(<div hidden={true} />, container);
112 expect(container.firstChild.hasAttribute('hidden')).toBe(true);
113 ReactDOM.render(<div hidden={false} />, container);
@@ -117,7 +117,7 @@ describe('DOMPropertyOperations', () => {
117
118 describe('value mutation method', function() {
119 it('should update an empty attribute to zero', function() {
120 - var container = document.createElement('div');
120 + const container = document.createElement('div');
121 ReactDOM.render(
122 <input type="radio" value="" onChange={function() {}} />,
123 container,
@@ -131,7 +131,7 @@ describe('DOMPropertyOperations', () => {
131 });
132
133 it('should always assign the value attribute for non-inputs', function() {
134 - var container = document.createElement('div');
134 + const container = document.createElement('div');
135 ReactDOM.render(<progress />, container);
136 spyOnDevAndProd(container.firstChild, 'setAttribute');
137 ReactDOM.render(<progress value={30} />, container);
@@ -142,7 +142,7 @@ describe('DOMPropertyOperations', () => {
142
143 describe('deleteValueForProperty', () => {
144 it('should remove attributes for normal properties', () => {
145 - var container = document.createElement('div');
145 + const container = document.createElement('div');
146 ReactDOM.render(<div title="foo" />, container);
147 expect(container.firstChild.getAttribute('title')).toBe('foo');
148 ReactDOM.render(<div />, container);
@@ -150,7 +150,7 @@ describe('DOMPropertyOperations', () => {
150 });
151
152 it('should not remove attributes for special properties', () => {
153 - var container = document.createElement('div');
153 + const container = document.createElement('div');
154 spyOnDev(console, 'error');
155 ReactDOM.render(
156 <input type="text" value="foo" onChange={function() {}} />,
packages/react-dom/src/__tests__/EventPluginHub-test.js
+4 -4
@@ -12,8 +12,8 @@
12 jest.mock('../events/isEventSupported');
13
14 describe('EventPluginHub', () => {
15 - var React;
16 - var ReactTestUtils;
15 + let React;
16 + let ReactTestUtils;
17
18 beforeEach(() => {
19 jest.resetModules();
@@ -23,7 +23,7 @@ describe('EventPluginHub', () => {
23
24 it('should prevent non-function listeners, at dispatch', () => {
25 spyOnDev(console, 'error');
26 - var node = ReactTestUtils.renderIntoDocument(
26 + const node = ReactTestUtils.renderIntoDocument(
27 <div onClick="not a function" />,
28 );
29 expect(function() {
@@ -40,7 +40,7 @@ describe('EventPluginHub', () => {
40 });
41
42 it('should not prevent null listeners, at dispatch', () => {
43 - var node = ReactTestUtils.renderIntoDocument(<div onClick={null} />);
43 + const node = ReactTestUtils.renderIntoDocument(<div onClick={null} />);
44 expect(function() {
45 ReactTestUtils.SimulateNative.click(node);
46 }).not.toThrow();
packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.internal.js
+41 -41
@@ -9,42 +9,42 @@
9
10 'use strict';
11
12 -var EventPluginHub;
13 -var EventPluginRegistry;
14 -var React;
15 -var ReactDOM;
16 -var ReactDOMComponentTree;
17 -var ReactBrowserEventEmitter;
18 -var ReactTestUtils;
19 -
20 -var idCallOrder;
21 -var recordID = function(id) {
12 +let EventPluginHub;
13 +let EventPluginRegistry;
14 +let React;
15 +let ReactDOM;
16 +let ReactDOMComponentTree;
17 +let ReactBrowserEventEmitter;
18 +let ReactTestUtils;
19 +
20 +let idCallOrder;
21 +const recordID = function(id) {
22 idCallOrder.push(id);
23 };
24 -var recordIDAndStopPropagation = function(id, event) {
24 +const recordIDAndStopPropagation = function(id, event) {
25 recordID(id);
26 event.stopPropagation();
27 };
28 -var recordIDAndReturnFalse = function(id, event) {
28 +const recordIDAndReturnFalse = function(id, event) {
29 recordID(id);
30 return false;
31 };
32 -var LISTENER = jest.fn();
33 -var ON_CLICK_KEY = 'onClick';
34 -var ON_CHANGE_KEY = 'onChange';
35 -var ON_MOUSE_ENTER_KEY = 'onMouseEnter';
32 +const LISTENER = jest.fn();
33 +const ON_CLICK_KEY = 'onClick';
34 +const ON_CHANGE_KEY = 'onChange';
35 +const ON_MOUSE_ENTER_KEY = 'onMouseEnter';
36
37 -var GRANDPARENT;
38 -var PARENT;
39 -var CHILD;
37 +let GRANDPARENT;
38 +let PARENT;
39 +let CHILD;
40
41 -var getListener;
42 -var putListener;
43 -var deleteAllListeners;
41 +let getListener;
42 +let putListener;
43 +let deleteAllListeners;
44
45 function registerSimpleTestHandler() {
46 putListener(CHILD, ON_CLICK_KEY, LISTENER);
47 - var listener = getListener(CHILD, ON_CLICK_KEY);
47 + const listener = getListener(CHILD, ON_CLICK_KEY);
48 expect(listener).toEqual(LISTENER);
49 return getListener(CHILD, ON_CLICK_KEY);
50 }
@@ -63,11 +63,11 @@ describe('ReactBrowserEventEmitter', () => {
63 ReactBrowserEventEmitter = require('../events/ReactBrowserEventEmitter');
64 ReactTestUtils = require('react-dom/test-utils');
65
66 - var container = document.createElement('div');
66 + const container = document.createElement('div');
67
68 - var GRANDPARENT_PROPS = {};
69 - var PARENT_PROPS = {};
70 - var CHILD_PROPS = {};
68 + let GRANDPARENT_PROPS = {};
69 + let PARENT_PROPS = {};
70 + let CHILD_PROPS = {};
71
72 function Child(props) {
73 return <div ref={c => (CHILD = c)} {...props} />;
@@ -93,7 +93,7 @@ describe('ReactBrowserEventEmitter', () => {
93 renderTree();
94
95 getListener = function(node, eventName) {
96 - var inst = ReactDOMComponentTree.getInstanceFromNode(node);
96 + const inst = ReactDOMComponentTree.getInstanceFromNode(node);
97 return EventPluginHub.getListener(inst, eventName);
98 };
99 putListener = function(node, eventName, listener) {
@@ -131,20 +131,20 @@ describe('ReactBrowserEventEmitter', () => {
131
132 it('should store a listener correctly', () => {
133 registerSimpleTestHandler();
134 - var listener = getListener(CHILD, ON_CLICK_KEY);
134 + const listener = getListener(CHILD, ON_CLICK_KEY);
135 expect(listener).toBe(LISTENER);
136 });
137
138 it('should retrieve a listener correctly', () => {
139 registerSimpleTestHandler();
140 - var listener = getListener(CHILD, ON_CLICK_KEY);
140 + const listener = getListener(CHILD, ON_CLICK_KEY);
141 expect(listener).toEqual(LISTENER);
142 });
143
144 it('should clear all handlers when asked to', () => {
145 registerSimpleTestHandler();
146 deleteAllListeners(CHILD);
147 - var listener = getListener(CHILD, ON_CLICK_KEY);
147 + const listener = getListener(CHILD, ON_CLICK_KEY);
148 expect(listener).toBe(undefined);
149 });
150
@@ -298,8 +298,8 @@ describe('ReactBrowserEventEmitter', () => {
298 */
299
300 it('should invoke handlers that were removed while bubbling', () => {
301 - var handleParentClick = jest.fn();
302 - var handleChildClick = function(event) {
301 + const handleParentClick = jest.fn();
302 + const handleChildClick = function(event) {
303 deleteAllListeners(PARENT);
304 };
305 putListener(CHILD, ON_CLICK_KEY, handleChildClick);
@@ -309,8 +309,8 @@ describe('ReactBrowserEventEmitter', () => {
309 });
310
311 it('should not invoke newly inserted handlers while bubbling', () => {
312 - var handleParentClick = jest.fn();
313 - var handleChildClick = function(event) {
312 + const handleParentClick = jest.fn();
313 + const handleChildClick = function(event) {
314 putListener(PARENT, ON_CLICK_KEY, handleParentClick);
315 };
316 putListener(CHILD, ON_CLICK_KEY, handleChildClick);
@@ -347,17 +347,17 @@ describe('ReactBrowserEventEmitter', () => {
347
348 ReactBrowserEventEmitter.listenTo(ON_CHANGE_KEY, document);
349
350 - var setEventListeners = [];
351 - var listenCalls = EventTarget.prototype.addEventListener.calls.allArgs();
352 - for (var i = 0; i < listenCalls.length; i++) {
350 + const setEventListeners = [];
351 + const listenCalls = EventTarget.prototype.addEventListener.calls.allArgs();
352 + for (let i = 0; i < listenCalls.length; i++) {
353 setEventListeners.push(listenCalls[i][1]);
354 }
355
356 - var module = EventPluginRegistry.registrationNameModules[ON_CHANGE_KEY];
357 - var dependencies = module.eventTypes.change.dependencies;
356 + const module = EventPluginRegistry.registrationNameModules[ON_CHANGE_KEY];
357 + const dependencies = module.eventTypes.change.dependencies;
358 expect(setEventListeners.length).toEqual(dependencies.length);
359
360 - for (i = 0; i < setEventListeners.length; i++) {
360 + for (let i = 0; i < setEventListeners.length; i++) {
361 expect(dependencies.indexOf(setEventListeners[i])).toBeTruthy();
362 }
363 });
packages/react-dom/src/__tests__/ReactChildReconciler-test.js
+3 -3
@@ -12,8 +12,8 @@
12
13 'use strict';
14
15 -var React;
16 -var ReactTestUtils;
15 +let React;
16 +let ReactTestUtils;
17
18 describe('ReactChildReconciler', () => {
19 function normalizeCodeLocInfo(str) {
@@ -30,7 +30,7 @@ describe('ReactChildReconciler', () => {
30 function createIterable(array) {
31 return {
32 '@@iterator': function() {
33 - var i = 0;
33 + let i = 0;
34 return {
35 next() {
36 const next = {
packages/react-dom/src/__tests__/ReactComponent-test.js
+42 -42
@@ -9,10 +9,10 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactDOMServer;
15 -var ReactTestUtils;
12 +let React;
13 +let ReactDOM;
14 +let ReactDOMServer;
15 +let ReactTestUtils;
16
17 describe('ReactComponent', () => {
18 function normalizeCodeLocInfo(str) {
@@ -27,7 +27,7 @@ describe('ReactComponent', () => {
27 });
28
29 it('should throw on invalid render targets', () => {
30 - var container = document.createElement('div');
30 + const container = document.createElement('div');
31 // jQuery objects are basically arrays; people often pass them in by mistake
32 expect(function() {
33 ReactDOM.render(<div />, [container]);
@@ -39,7 +39,7 @@ describe('ReactComponent', () => {
39 });
40
41 it('should throw when supplying a ref outside of render method', () => {
42 - var instance = <div ref="badDiv" />;
42 + let instance = <div ref="badDiv" />;
43 expect(function() {
44 instance = ReactTestUtils.renderIntoDocument(instance);
45 }).toThrow();
@@ -108,8 +108,8 @@ describe('ReactComponent', () => {
108 });
109
110 it('should support refs on owned components', () => {
111 - var innerObj = {};
112 - var outerObj = {};
111 + const innerObj = {};
112 + const outerObj = {};
113
114 class Wrapper extends React.Component {
115 getObject = () => {
@@ -123,8 +123,8 @@ describe('ReactComponent', () => {
123
124 class Component extends React.Component {
125 render() {
126 - var inner = <Wrapper object={innerObj} ref="inner" />;
127 - var outer = (
126 + const inner = <Wrapper object={innerObj} ref="inner" />;
127 + const outer = (
128 <Wrapper object={outerObj} ref="outer">
129 {inner}
130 </Wrapper>
@@ -166,8 +166,8 @@ describe('ReactComponent', () => {
166 });
167
168 it('should support new-style refs', () => {
169 - var innerObj = {};
170 - var outerObj = {};
169 + const innerObj = {};
170 + const outerObj = {};
171
172 class Wrapper extends React.Component {
173 getObject = () => {
@@ -179,14 +179,14 @@ describe('ReactComponent', () => {
179 }
180 }
181
182 - var mounted = false;
182 + let mounted = false;
183
184 class Component extends React.Component {
185 render() {
186 - var inner = (
186 + const inner = (
187 <Wrapper object={innerObj} ref={c => (this.innerRef = c)} />
188 );
189 - var outer = (
189 + const outer = (
190 <Wrapper object={outerObj} ref={c => (this.outerRef = c)}>
191 {inner}
192 </Wrapper>
@@ -216,7 +216,7 @@ describe('ReactComponent', () => {
216 }
217 }
218
219 - var mounted = false;
219 + let mounted = false;
220
221 class Component extends React.Component {
222 getInner = () => {
@@ -248,7 +248,7 @@ describe('ReactComponent', () => {
248 });
249
250 it('should call refs at the correct time', () => {
251 - var log = [];
251 + const log = [];
252
253 class Inner extends React.Component {
254 render() {
@@ -303,7 +303,7 @@ describe('ReactComponent', () => {
303 }
304
305 // mount, update, unmount
306 - var el = document.createElement('div');
306 + const el = document.createElement('div');
307 log.push('start mount');
308 ReactDOM.render(<Outer />, el);
309 log.push('start update');
@@ -344,8 +344,8 @@ describe('ReactComponent', () => {
344 });
345
346 it('fires the callback after a component is rendered', () => {
347 - var callback = jest.fn();
348 - var container = document.createElement('div');
347 + const callback = jest.fn();
348 + const container = document.createElement('div');
349 ReactDOM.render(<div />, container, callback);
350 expect(callback.mock.calls.length).toBe(1);
351 ReactDOM.render(<div className="foo" />, container, callback);
@@ -357,7 +357,7 @@ describe('ReactComponent', () => {
357 it('throws usefully when rendering badly-typed elements', () => {
358 spyOnDev(console, 'error');
359
360 - var X = undefined;
360 + const X = undefined;
361 expect(() => ReactTestUtils.renderIntoDocument(<X />)).toThrowError(
362 'Element type is invalid: expected a string (for built-in components) ' +
363 'or a class/function (for composite components) but got: undefined.' +
@@ -367,7 +367,7 @@ describe('ReactComponent', () => {
367 : ''),
368 );
369
370 - var Y = null;
370 + const Y = null;
371 expect(() => ReactTestUtils.renderIntoDocument(<Y />)).toThrowError(
372 'Element type is invalid: expected a string (for built-in components) ' +
373 'or a class/function (for composite components) but got: null.',
@@ -382,7 +382,7 @@ describe('ReactComponent', () => {
382 it('includes owner name in the error about badly-typed elements', () => {
383 spyOnDev(console, 'error');
384
385 - var X = undefined;
385 + const X = undefined;
386
387 function Indirection(props) {
388 return <div>{props.children}</div>;
@@ -417,14 +417,14 @@ describe('ReactComponent', () => {
417 });
418
419 it('throws if a plain object is used as a child', () => {
420 - var children = {
420 + const children = {
421 x: <span />,
422 y: <span />,
423 z: <span />,
424 };
425 - var element = <div>{[children]}</div>;
426 - var container = document.createElement('div');
427 - var ex;
425 + const element = <div>{[children]}</div>;
426 + const container = document.createElement('div');
427 + let ex;
428 try {
429 ReactDOM.render(element, container);
430 } catch (e) {
@@ -444,7 +444,7 @@ describe('ReactComponent', () => {
444 it('throws if a plain object even if it is in an owner', () => {
445 class Foo extends React.Component {
446 render() {
447 - var children = {
447 + const children = {
448 a: <span />,
449 b: <span />,
450 c: <span />,
@@ -452,8 +452,8 @@ describe('ReactComponent', () => {
452 return <div>{[children]}</div>;
453 }
454 }
455 - var container = document.createElement('div');
456 - var ex;
455 + const container = document.createElement('div');
456 + let ex;
457 try {
458 ReactDOM.render(<Foo />, container);
459 } catch (e) {
@@ -472,13 +472,13 @@ describe('ReactComponent', () => {
472 });
473
474 it('throws if a plain object is used as a child when using SSR', async () => {
475 - var children = {
475 + const children = {
476 x: <span />,
477 y: <span />,
478 z: <span />,
479 };
480 - var element = <div>{[children]}</div>;
481 - var ex;
480 + const element = <div>{[children]}</div>;
481 + let ex;
482 try {
483 ReactDOMServer.renderToString(element);
484 } catch (e) {
@@ -498,7 +498,7 @@ describe('ReactComponent', () => {
498 it('throws if a plain object even if it is in an owner when using SSR', async () => {
499 class Foo extends React.Component {
500 render() {
501 - var children = {
501 + const children = {
502 a: <span />,
503 b: <span />,
504 c: <span />,
@@ -506,8 +506,8 @@ describe('ReactComponent', () => {
506 return <div>{[children]}</div>;
507 }
508 }
509 - var container = document.createElement('div');
510 - var ex;
509 + const container = document.createElement('div');
510 + let ex;
511 try {
512 ReactDOMServer.renderToString(<Foo />, container);
513 } catch (e) {
@@ -531,7 +531,7 @@ describe('ReactComponent', () => {
531 return Foo;
532 }
533 spyOnDev(console, 'error');
534 - var container = document.createElement('div');
534 + const container = document.createElement('div');
535 ReactDOM.render(<Foo />, container);
536 if (__DEV__) {
537 expect(console.error.calls.count()).toBe(1);
@@ -551,7 +551,7 @@ describe('ReactComponent', () => {
551 }
552 }
553 spyOnDev(console, 'error');
554 - var container = document.createElement('div');
554 + const container = document.createElement('div');
555 ReactDOM.render(<Foo />, container);
556 if (__DEV__) {
557 expect(console.error.calls.count()).toBe(1);
@@ -573,7 +573,7 @@ describe('ReactComponent', () => {
573 );
574 }
575 spyOnDev(console, 'error');
576 - var container = document.createElement('div');
576 + const container = document.createElement('div');
577 ReactDOM.render(<Foo />, container);
578 if (__DEV__) {
579 expect(console.error.calls.count()).toBe(1);
@@ -595,7 +595,7 @@ describe('ReactComponent', () => {
595 function Foo() {
596 return <Bar>{() => 'Hello'}</Bar>;
597 }
598 - var container = document.createElement('div');
598 + const container = document.createElement('div');
599 ReactDOM.render(<Foo />, container);
600 expect(container.innerHTML).toBe('Hello');
601 });
@@ -620,8 +620,8 @@ describe('ReactComponent', () => {
620 );
621 }
622 }
623 - var container = document.createElement('div');
624 - var component = ReactDOM.render(<Foo />, container);
623 + const container = document.createElement('div');
624 + const component = ReactDOM.render(<Foo />, container);
625 component.setState({type: 'portobello mushrooms'});
626 if (__DEV__) {
627 expect(console.error.calls.count()).toBe(2);
packages/react-dom/src/__tests__/ReactComponentLifeCycle-test.js
+33 -33
@@ -9,51 +9,51 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactTestUtils;
15 -var PropTypes;
12 +let React;
13 +let ReactDOM;
14 +let ReactTestUtils;
15 +let PropTypes;
16
17 -var clone = function(o) {
17 +const clone = function(o) {
18 return JSON.parse(JSON.stringify(o));
19 };
20
21 -var GET_INIT_STATE_RETURN_VAL = {
21 +const GET_INIT_STATE_RETURN_VAL = {
22 hasWillMountCompleted: false,
23 hasRenderCompleted: false,
24 hasDidMountCompleted: false,
25 hasWillUnmountCompleted: false,
26 };
27
28 -var INIT_RENDER_STATE = {
28 +const INIT_RENDER_STATE = {
29 hasWillMountCompleted: true,
30 hasRenderCompleted: false,
31 hasDidMountCompleted: false,
32 hasWillUnmountCompleted: false,
33 };
34
35 -var DID_MOUNT_STATE = {
35 +const DID_MOUNT_STATE = {
36 hasWillMountCompleted: true,
37 hasRenderCompleted: true,
38 hasDidMountCompleted: false,
39 hasWillUnmountCompleted: false,
40 };
41
42 -var NEXT_RENDER_STATE = {
42 +const NEXT_RENDER_STATE = {
43 hasWillMountCompleted: true,
44 hasRenderCompleted: true,
45 hasDidMountCompleted: true,
46 hasWillUnmountCompleted: false,
47 };
48
49 -var WILL_UNMOUNT_STATE = {
49 +const WILL_UNMOUNT_STATE = {
50 hasWillMountCompleted: true,
51 hasDidMountCompleted: true,
52 hasRenderCompleted: true,
53 hasWillUnmountCompleted: false,
54 };
55
56 -var POST_WILL_UNMOUNT_STATE = {
56 +const POST_WILL_UNMOUNT_STATE = {
57 hasWillMountCompleted: true,
58 hasDidMountCompleted: true,
59 hasRenderCompleted: true,
@@ -94,7 +94,7 @@ describe('ReactComponentLifeCycle', () => {
94 });
95
96 it('should not reuse an instance when it has been unmounted', () => {
97 - var container = document.createElement('div');
97 + const container = document.createElement('div');
98
99 class StatefulComponent extends React.Component {
100 state = {};
@@ -104,10 +104,10 @@ describe('ReactComponentLifeCycle', () => {
104 }
105 }
106
107 - var element = <StatefulComponent />;
108 - var firstInstance = ReactDOM.render(element, container);
107 + const element = <StatefulComponent />;
108 + const firstInstance = ReactDOM.render(element, container);
109 ReactDOM.unmountComponentAtNode(container);
110 - var secondInstance = ReactDOM.render(element, container);
110 + const secondInstance = ReactDOM.render(element, container);
111 expect(firstInstance).not.toBe(secondInstance);
112 });
113
@@ -116,7 +116,7 @@ describe('ReactComponentLifeCycle', () => {
116 * that second onDOMReady should not fail.
117 */
118 it('it should fire onDOMReady when already in onDOMReady', () => {
119 - var _testJournal = [];
119 + const _testJournal = [];
120
121 class Child extends React.Component {
122 componentDidMount() {
@@ -174,7 +174,7 @@ describe('ReactComponentLifeCycle', () => {
174 }
175 }
176
177 - var instance = <StatefulComponent />;
177 + let instance = <StatefulComponent />;
178 expect(function() {
179 instance = ReactTestUtils.renderIntoDocument(instance);
180 }).toThrow();
@@ -191,7 +191,7 @@ describe('ReactComponentLifeCycle', () => {
191 }
192 }
193
194 - var instance = <StatefulComponent />;
194 + let instance = <StatefulComponent />;
195 expect(function() {
196 instance = ReactTestUtils.renderIntoDocument(instance);
197 }).not.toThrow();
@@ -251,9 +251,9 @@ describe('ReactComponentLifeCycle', () => {
251 }
252 }
253
254 - var element = <Component />;
254 + const element = <Component />;
255
256 - var instance = ReactTestUtils.renderIntoDocument(element);
256 + const instance = ReactTestUtils.renderIntoDocument(element);
257 expect(instance._isMounted()).toBeTruthy();
258
259 if (__DEV__) {
@@ -284,9 +284,9 @@ describe('ReactComponentLifeCycle', () => {
284 }
285 }
286
287 - var element = <Component />;
287 + const element = <Component />;
288
289 - var instance = ReactTestUtils.renderIntoDocument(element);
289 + const instance = ReactTestUtils.renderIntoDocument(element);
290 expect(instance._isMounted()).toBeTruthy();
291
292 if (__DEV__) {
@@ -304,8 +304,8 @@ describe('ReactComponentLifeCycle', () => {
304 }
305 }
306
307 - var container = document.createElement('div');
308 - var instance = ReactDOM.render(<Component />, container);
307 + const container = document.createElement('div');
308 + const instance = ReactDOM.render(<Component />, container);
309
310 // No longer a public API, but we can test that it works internally by
311 // reaching into the updater.
@@ -347,7 +347,7 @@ describe('ReactComponentLifeCycle', () => {
347 constructor(props, context) {
348 super(props, context);
349 this._testJournal = {};
350 - var initState = {
350 + const initState = {
351 hasWillMountCompleted: false,
352 hasDidMountCompleted: false,
353 hasRenderCompleted: false,
@@ -373,7 +373,7 @@ describe('ReactComponentLifeCycle', () => {
373 }
374
375 render() {
376 - var isInitialRender = !this.state.hasRenderCompleted;
376 + const isInitialRender = !this.state.hasRenderCompleted;
377 if (isInitialRender) {
378 this._testJournal.stateInInitialRender = clone(this.state);
379 this._testJournal.lifeCycleInInitialRender = getLifeCycleState(this);
@@ -398,8 +398,8 @@ describe('ReactComponentLifeCycle', () => {
398 // A component that is merely "constructed" (as in "constructor") but not
399 // yet initialized, or rendered.
400 //
401 - var container = document.createElement('div');
402 - var instance = ReactDOM.render(<LifeCycleComponent />, container);
401 + const container = document.createElement('div');
402 + const instance = ReactDOM.render(<LifeCycleComponent />, container);
403
404 // getInitialState
405 expect(instance._testJournal.returnedFromGetInitialState).toEqual(
@@ -490,7 +490,7 @@ describe('ReactComponentLifeCycle', () => {
490 }
491 }
492
493 - var container = document.createElement('div');
493 + const container = document.createElement('div');
494 ReactDOM.render(<Component text="uno" tooltipText="one" />, container);
495
496 // Since `instance` is a root component, we can set its props. This also
@@ -516,7 +516,7 @@ describe('ReactComponentLifeCycle', () => {
516 }
517 }
518
519 - var instance = (
519 + let instance = (
520 <SetStateInComponentDidMount
521 valueToUseInitially="hello"
522 valueToUseInOnDOMReady="goodbye"
@@ -527,8 +527,8 @@ describe('ReactComponentLifeCycle', () => {
527 });
528
529 it('should call nested lifecycle methods in the right order', () => {
530 - var log;
531 - var logger = function(msg) {
530 + let log;
531 + const logger = function(msg) {
532 return function() {
533 // return true for shouldComponentUpdate
534 log.push(msg);
@@ -565,7 +565,7 @@ describe('ReactComponentLifeCycle', () => {
565 }
566 }
567
568 - var container = document.createElement('div');
568 + const container = document.createElement('div');
569 log = [];
570 ReactDOM.render(<Outer x={17} />, container);
571 expect(log).toEqual([
packages/react-dom/src/__tests__/ReactCompositeComponent-test.js
+101 -101
@@ -9,16 +9,16 @@
9
10 'use strict';
11
12 -var ChildUpdates;
13 -var MorphingComponent;
14 -var React;
15 -var ReactDOM;
16 -var ReactDOMServer;
17 -var ReactCurrentOwner;
18 -var ReactTestUtils;
19 -var PropTypes;
20 -var shallowEqual;
21 -var shallowCompare;
12 +let ChildUpdates;
13 +let MorphingComponent;
14 +let React;
15 +let ReactDOM;
16 +let ReactDOMServer;
17 +let ReactCurrentOwner;
18 +let ReactTestUtils;
19 +let PropTypes;
20 +let shallowEqual;
21 +let shallowCompare;
22
23 describe('ReactCompositeComponent', () => {
24 beforeEach(() => {
@@ -47,7 +47,7 @@ describe('ReactCompositeComponent', () => {
47 };
48
49 render() {
50 - var toggleActivatedState = this._toggleActivatedState;
50 + const toggleActivatedState = this._toggleActivatedState;
51 return !this.state.activated ? (
52 <a ref="x" onClick={toggleActivatedState} />
53 ) : (
@@ -66,7 +66,7 @@ describe('ReactCompositeComponent', () => {
66 };
67
68 render() {
69 - var className = this.props.anchorClassOn ? 'anchorClass' : '';
69 + const className = this.props.anchorClassOn ? 'anchorClass' : '';
70 return this.props.renderAnchor ? (
71 <a ref="anch" className={className} />
72 ) : (
@@ -85,15 +85,15 @@ describe('ReactCompositeComponent', () => {
85 };
86 }
87
88 - var el = document.createElement('div');
88 + const el = document.createElement('div');
89 ReactDOM.render(<Child test="test" />, el);
90
91 expect(el.textContent).toBe('test');
92 });
93
94 it('should support rendering to different child types over time', () => {
95 - var instance = ReactTestUtils.renderIntoDocument(<MorphingComponent />);
96 - var el = ReactDOM.findDOMNode(instance);
95 + const instance = ReactTestUtils.renderIntoDocument(<MorphingComponent />);
96 + let el = ReactDOM.findDOMNode(instance);
97 expect(el.tagName).toBe('A');
98
99 instance._toggleActivatedState();
@@ -123,10 +123,10 @@ describe('ReactCompositeComponent', () => {
123 }
124
125 spyOnDev(console, 'warn');
126 - var markup = ReactDOMServer.renderToString(<Parent />);
126 + const markup = ReactDOMServer.renderToString(<Parent />);
127
128 // Old API based on heuristic
129 - var container = document.createElement('div');
129 + let container = document.createElement('div');
130 container.innerHTML = markup;
131 ReactDOM.render(<Parent />, container);
132 if (__DEV__) {
@@ -148,8 +148,8 @@ describe('ReactCompositeComponent', () => {
148 });
149
150 it('should react to state changes from callbacks', () => {
151 - var instance = ReactTestUtils.renderIntoDocument(<MorphingComponent />);
152 - var el = ReactDOM.findDOMNode(instance);
151 + const instance = ReactTestUtils.renderIntoDocument(<MorphingComponent />);
152 + let el = ReactDOM.findDOMNode(instance);
153 expect(el.tagName).toBe('A');
154
155 ReactTestUtils.Simulate.click(el);
@@ -158,7 +158,7 @@ describe('ReactCompositeComponent', () => {
158 });
159
160 it('should rewire refs when rendering to different child types', () => {
161 - var instance = ReactTestUtils.renderIntoDocument(<MorphingComponent />);
161 + const instance = ReactTestUtils.renderIntoDocument(<MorphingComponent />);
162
163 expect(ReactDOM.findDOMNode(instance.refs.x).tagName).toBe('A');
164 instance._toggleActivatedState();
@@ -168,8 +168,8 @@ describe('ReactCompositeComponent', () => {
168 });
169
170 it('should not cache old DOM nodes when switching constructors', () => {
171 - var container = document.createElement('div');
172 - var instance = ReactDOM.render(
171 + const container = document.createElement('div');
172 + const instance = ReactDOM.render(
173 <ChildUpdates renderAnchor={true} anchorClassOn={false} />,
174 container,
175 );
@@ -200,15 +200,15 @@ describe('ReactCompositeComponent', () => {
200 }
201 }
202
203 - var instance1 = ReactTestUtils.renderIntoDocument(<Component />);
203 + const instance1 = ReactTestUtils.renderIntoDocument(<Component />);
204 expect(instance1.props).toEqual({prop: 'testKey'});
205
206 - var instance2 = ReactTestUtils.renderIntoDocument(
206 + const instance2 = ReactTestUtils.renderIntoDocument(
207 <Component prop={undefined} />,
208 );
209 expect(instance2.props).toEqual({prop: 'testKey'});
210
211 - var instance3 = ReactTestUtils.renderIntoDocument(
211 + const instance3 = ReactTestUtils.renderIntoDocument(
212 <Component prop={null} />,
213 );
214 expect(instance3.props).toEqual({prop: null});
@@ -223,8 +223,8 @@ describe('ReactCompositeComponent', () => {
223 }
224 }
225
226 - var inputProps = {};
227 - var instance1 = <Component {...inputProps} />;
226 + const inputProps = {};
227 + let instance1 = <Component {...inputProps} />;
228 instance1 = ReactTestUtils.renderIntoDocument(instance1);
229 expect(instance1.props.prop).toBe('testKey');
230
@@ -236,7 +236,7 @@ describe('ReactCompositeComponent', () => {
236 it('should warn about `forceUpdate` on unmounted components', () => {
237 spyOnDev(console, 'error');
238
239 - var container = document.createElement('div');
239 + const container = document.createElement('div');
240 document.body.appendChild(container);
241
242 class Component extends React.Component {
@@ -245,7 +245,7 @@ describe('ReactCompositeComponent', () => {
245 }
246 }
247
248 - var instance = <Component />;
248 + let instance = <Component />;
249 expect(instance.forceUpdate).not.toBeDefined();
250
251 instance = ReactDOM.render(instance, container);
@@ -277,10 +277,10 @@ describe('ReactCompositeComponent', () => {
277 it('should warn about `setState` on unmounted components', () => {
278 spyOnDev(console, 'error');
279
280 - var container = document.createElement('div');
280 + const container = document.createElement('div');
281 document.body.appendChild(container);
282
283 - var renders = 0;
283 + let renders = 0;
284
285 class Component extends React.Component {
286 state = {value: 0};
@@ -291,7 +291,7 @@ describe('ReactCompositeComponent', () => {
291 }
292 }
293
294 - var instance = <Component />;
294 + let instance = <Component />;
295 expect(instance.setState).not.toBeDefined();
296
297 instance = ReactDOM.render(instance, container);
@@ -323,8 +323,8 @@ describe('ReactCompositeComponent', () => {
323 });
324
325 it('should silently allow `setState`, not call cb on unmounting components', () => {
326 - var cbCalled = false;
327 - var container = document.createElement('div');
326 + let cbCalled = false;
327 + const container = document.createElement('div');
328 document.body.appendChild(container);
329
330 class Component extends React.Component {
@@ -343,7 +343,7 @@ describe('ReactCompositeComponent', () => {
343 }
344 }
345
346 - var instance = ReactDOM.render(<Component />, container);
346 + const instance = ReactDOM.render(<Component />, container);
347 instance.setState({value: 1});
348
349 ReactDOM.unmountComponentAtNode(container);
@@ -352,7 +352,7 @@ describe('ReactCompositeComponent', () => {
352
353 it('should warn when rendering a class with a render method that does not extend React.Component', () => {
354 spyOnDev(console, 'error');
355 - var container = document.createElement('div');
355 + const container = document.createElement('div');
356 class ClassWithRenderNotExtended {
357 render() {
358 return <div />;
@@ -377,10 +377,10 @@ describe('ReactCompositeComponent', () => {
377 it('should warn about `setState` in render', () => {
378 spyOnDev(console, 'error');
379
380 - var container = document.createElement('div');
380 + const container = document.createElement('div');
381
382 - var renderedState = -1;
383 - var renderPasses = 0;
382 + let renderedState = -1;
383 + let renderPasses = 0;
384
385 class Component extends React.Component {
386 state = {value: 0};
@@ -399,7 +399,7 @@ describe('ReactCompositeComponent', () => {
399 expect(console.error.calls.count()).toBe(0);
400 }
401
402 - var instance = ReactDOM.render(<Component />, container);
402 + const instance = ReactDOM.render(<Component />, container);
403
404 if (__DEV__) {
405 expect(console.error.calls.count()).toBe(1);
@@ -419,7 +419,7 @@ describe('ReactCompositeComponent', () => {
419 expect(instance.state.value).toBe(1);
420
421 // Forcing a rerender anywhere will cause the update to happen.
422 - var instance2 = ReactDOM.render(<Component prop={123} />, container);
422 + const instance2 = ReactDOM.render(<Component prop={123} />, container);
423 expect(instance).toBe(instance2);
424 expect(renderedState).toBe(1);
425 expect(instance2.state.value).toBe(1);
@@ -435,9 +435,9 @@ describe('ReactCompositeComponent', () => {
435 it('should warn about `setState` in getChildContext', () => {
436 spyOnDev(console, 'error');
437
438 - var container = document.createElement('div');
438 + const container = document.createElement('div');
439
440 - var renderPasses = 0;
440 + let renderPasses = 0;
441
442 class Component extends React.Component {
443 state = {value: 0};
@@ -458,7 +458,7 @@ describe('ReactCompositeComponent', () => {
458 if (__DEV__) {
459 expect(console.error.calls.count()).toBe(0);
460 }
461 - var instance = ReactDOM.render(<Component />, container);
461 + const instance = ReactDOM.render(<Component />, container);
462 expect(renderPasses).toBe(2);
463 expect(instance.state.value).toBe(1);
464 if (__DEV__) {
@@ -483,7 +483,7 @@ describe('ReactCompositeComponent', () => {
483 }
484 }
485
486 - var instance = <BadComponent />;
486 + let instance = <BadComponent />;
487
488 expect(ReactCurrentOwner.current).toBe(null);
489
@@ -495,8 +495,8 @@ describe('ReactCompositeComponent', () => {
495 });
496
497 it('should call componentWillUnmount before unmounting', () => {
498 - var container = document.createElement('div');
499 - var innerUnmounted = false;
498 + const container = document.createElement('div');
499 + let innerUnmounted = false;
500
501 class Component extends React.Component {
502 render() {
@@ -539,7 +539,7 @@ describe('ReactCompositeComponent', () => {
539 }
540 }
541
542 - var instance = ReactTestUtils.renderIntoDocument(<Component />);
542 + const instance = ReactTestUtils.renderIntoDocument(<Component />);
543 instance.setState({bogus: true});
544
545 if (__DEV__) {
@@ -661,7 +661,7 @@ describe('ReactCompositeComponent', () => {
661 }
662 }
663
664 - var component = ReactTestUtils.renderIntoDocument(<Parent />);
664 + const component = ReactTestUtils.renderIntoDocument(<Parent />);
665 expect(ReactDOM.findDOMNode(component).innerHTML).toBe('bar');
666 });
667
@@ -672,7 +672,7 @@ describe('ReactCompositeComponent', () => {
672 }
673 }
674
675 - var childRenders = 0;
675 + let childRenders = 0;
676
677 class Child extends React.Component {
678 render() {
@@ -681,8 +681,8 @@ describe('ReactCompositeComponent', () => {
681 }
682 }
683
684 - var container = document.createElement('div');
685 - var child = <Child />;
684 + const container = document.createElement('div');
685 + const child = <Child />;
686
687 ReactDOM.render(<Parent>{child}</Parent>, container);
688 ReactDOM.render(<Parent>{child}</Parent>, container);
@@ -690,8 +690,8 @@ describe('ReactCompositeComponent', () => {
690 });
691
692 it('should pass context when re-rendered for static child', () => {
693 - var parentInstance = null;
694 - var childInstance = null;
693 + let parentInstance = null;
694 + let childInstance = null;
695
696 class Parent extends React.Component {
697 static childContextTypes = {
@@ -790,7 +790,7 @@ describe('ReactCompositeComponent', () => {
790 }
791 }
792
793 - var wrapper = ReactTestUtils.renderIntoDocument(<Wrapper />);
793 + const wrapper = ReactTestUtils.renderIntoDocument(<Wrapper />);
794
795 expect(wrapper.refs.parent.state.flag).toEqual(true);
796 expect(wrapper.refs.child.context).toEqual({flag: true});
@@ -803,8 +803,8 @@ describe('ReactCompositeComponent', () => {
803 });
804
805 it('should pass context transitively', () => {
806 - var childInstance = null;
807 - var grandchildInstance = null;
806 + let childInstance = null;
807 + let grandchildInstance = null;
808
809 class Parent extends React.Component {
810 static childContextTypes = {
@@ -864,8 +864,8 @@ describe('ReactCompositeComponent', () => {
864 });
865
866 it('should pass context when re-rendered', () => {
867 - var parentInstance = null;
868 - var childInstance = null;
867 + let parentInstance = null;
868 + let childInstance = null;
869
870 class Parent extends React.Component {
871 static childContextTypes = {
@@ -885,7 +885,7 @@ describe('ReactCompositeComponent', () => {
885 }
886
887 render() {
888 - var output = <Child />;
888 + let output = <Child />;
889 if (!this.state.flag) {
890 output = <span>Child</span>;
891 }
@@ -968,7 +968,7 @@ describe('ReactCompositeComponent', () => {
968 }
969 }
970
971 - var div = document.createElement('div');
971 + const div = document.createElement('div');
972 ReactDOM.render(<Parent cntxt="noise" />, div);
973 expect(div.children[0].innerHTML).toBe('noise');
974 div.children[0].innerHTML = 'aliens';
@@ -981,8 +981,8 @@ describe('ReactCompositeComponent', () => {
981 });
982
983 it('should trigger componentWillReceiveProps for context changes', () => {
984 - var contextChanges = 0;
985 - var propChanges = 0;
984 + let contextChanges = 0;
985 + let propChanges = 0;
986
987 class GrandChild extends React.Component {
988 static contextTypes = {
@@ -1066,9 +1066,9 @@ describe('ReactCompositeComponent', () => {
1066 }
1067 }
1068
1069 - var div = document.createElement('div');
1069 + const div = document.createElement('div');
1070
1071 - var parentInstance = null;
1071 + let parentInstance = null;
1072 ReactDOM.render(
1073 <Parent ref={inst => (parentInstance = inst)}>
1074 <ChildWithoutContext>
@@ -1121,7 +1121,7 @@ describe('ReactCompositeComponent', () => {
1121 });
1122
1123 it('only renders once if updated in componentWillReceiveProps', () => {
1124 - var renders = 0;
1124 + let renders = 0;
1125
1126 class Component extends React.Component {
1127 state = {updated: false};
@@ -1139,8 +1139,8 @@ describe('ReactCompositeComponent', () => {
1139 }
1140 }
1141
1142 - var container = document.createElement('div');
1143 - var instance = ReactDOM.render(<Component update={0} />, container);
1142 + const container = document.createElement('div');
1143 + const instance = ReactDOM.render(<Component update={0} />, container);
1144 expect(renders).toBe(1);
1145 expect(instance.state.updated).toBe(false);
1146 ReactDOM.render(<Component update={1} />, container);
@@ -1149,7 +1149,7 @@ describe('ReactCompositeComponent', () => {
1149 });
1150
1151 it('only renders once if updated in componentWillReceiveProps when batching', () => {
1152 - var renders = 0;
1152 + let renders = 0;
1153
1154 class Component extends React.Component {
1155 state = {updated: false};
@@ -1167,8 +1167,8 @@ describe('ReactCompositeComponent', () => {
1167 }
1168 }
1169
1170 - var container = document.createElement('div');
1171 - var instance = ReactDOM.render(<Component update={0} />, container);
1170 + const container = document.createElement('div');
1171 + const instance = ReactDOM.render(<Component update={0} />, container);
1172 expect(renders).toBe(1);
1173 expect(instance.state.updated).toBe(false);
1174 ReactDOM.unstable_batchedUpdates(() => {
@@ -1217,8 +1217,8 @@ describe('ReactCompositeComponent', () => {
1217 }
1218 }
1219
1220 - var container = document.createElement('div');
1221 - var comp = ReactDOM.render(<Component flipped={false} />, container);
1220 + const container = document.createElement('div');
1221 + const comp = ReactDOM.render(<Component flipped={false} />, container);
1222 expect(ReactDOM.findDOMNode(comp.refs.static0).textContent).toBe('A');
1223 expect(ReactDOM.findDOMNode(comp.refs.static1).textContent).toBe('B');
1224
@@ -1230,8 +1230,8 @@ describe('ReactCompositeComponent', () => {
1230 });
1231
1232 it('should allow access to findDOMNode in componentWillUnmount', () => {
1233 - var a = null;
1234 - var b = null;
1233 + let a = null;
1234 + let b = null;
1235
1236 class Component extends React.Component {
1237 componentDidMount() {
@@ -1249,7 +1249,7 @@ describe('ReactCompositeComponent', () => {
1249 }
1250 }
1251
1252 - var container = document.createElement('div');
1252 + const container = document.createElement('div');
1253 expect(a).toBe(container.firstChild);
1254 ReactDOM.render(<Component />, container);
1255 ReactDOM.unmountComponentAtNode(container);
@@ -1283,7 +1283,7 @@ describe('ReactCompositeComponent', () => {
1283 }
1284 }
1285
1286 - var div = document.createElement('div');
1286 + const div = document.createElement('div');
1287 ReactDOM.render(
1288 <Parent>
1289 <Component />
@@ -1300,7 +1300,7 @@ describe('ReactCompositeComponent', () => {
1300 }
1301 }
1302
1303 - var moo = ReactTestUtils.renderIntoDocument(<Moo />);
1303 + const moo = ReactTestUtils.renderIntoDocument(<Moo />);
1304 // No longer a public API, but we can test that it works internally by
1305 // reaching into the updater.
1306 moo.updater.enqueueReplaceState(moo, {y: 2});
@@ -1309,7 +1309,7 @@ describe('ReactCompositeComponent', () => {
1309 });
1310
1311 it('should support objects with prototypes as state', () => {
1312 - var NotActuallyImmutable = function(str) {
1312 + const NotActuallyImmutable = function(str) {
1313 this.str = str;
1314 };
1315 NotActuallyImmutable.prototype.amIImmutable = function() {
@@ -1325,11 +1325,11 @@ describe('ReactCompositeComponent', () => {
1325 }
1326 }
1327
1328 - var moo = ReactTestUtils.renderIntoDocument(<Moo />);
1328 + const moo = ReactTestUtils.renderIntoDocument(<Moo />);
1329 expect(moo.state.str).toBe('first');
1330 expect(moo.state.amIImmutable()).toBe(true);
1331
1332 - var secondState = new NotActuallyImmutable('second');
1332 + const secondState = new NotActuallyImmutable('second');
1333 moo._replaceState(secondState);
1334 expect(moo.state.str).toBe('second');
1335 expect(moo.state.amIImmutable()).toBe(true);
@@ -1341,7 +1341,7 @@ describe('ReactCompositeComponent', () => {
1341 expect(moo.state.amIImmutable).toBe(undefined);
1342
1343 // When more than one state update is enqueued, we have the same behavior
1344 - var fifthState = new NotActuallyImmutable('fifth');
1344 + const fifthState = new NotActuallyImmutable('fifth');
1345 ReactDOM.unstable_batchedUpdates(function() {
1346 moo.setState({str: 'fourth'});
1347 moo._replaceState(fifthState);
@@ -1349,7 +1349,7 @@ describe('ReactCompositeComponent', () => {
1349 expect(moo.state).toBe(fifthState);
1350
1351 // When more than one state update is enqueued, we have the same behavior
1352 - var sixthState = new NotActuallyImmutable('sixth');
1352 + const sixthState = new NotActuallyImmutable('sixth');
1353 ReactDOM.unstable_batchedUpdates(function() {
1354 moo._replaceState(sixthState);
1355 moo.setState({str: 'seventh'});
@@ -1359,8 +1359,8 @@ describe('ReactCompositeComponent', () => {
1359 });
1360
1361 it('should not warn about unmounting during unmounting', () => {
1362 - var container = document.createElement('div');
1363 - var layer = document.createElement('div');
1362 + const container = document.createElement('div');
1363 + const layer = document.createElement('div');
1364
1365 class Component extends React.Component {
1366 componentDidMount() {
@@ -1394,11 +1394,11 @@ describe('ReactCompositeComponent', () => {
1394 it('should warn when mutated props are passed', () => {
1395 spyOnDev(console, 'error');
1396
1397 - var container = document.createElement('div');
1397 + const container = document.createElement('div');
1398
1399 class Foo extends React.Component {
1400 constructor(props) {
1401 - var _props = {idx: props.idx + '!'};
1401 + const _props = {idx: props.idx + '!'};
1402 super(_props);
1403 }
1404
@@ -1423,8 +1423,8 @@ describe('ReactCompositeComponent', () => {
1423 });
1424
1425 it('should only call componentWillUnmount once', () => {
1426 - var app;
1427 - var count = 0;
1426 + let app;
1427 + let count = 0;
1428
1429 class App extends React.Component {
1430 render() {
@@ -1448,9 +1448,9 @@ describe('ReactCompositeComponent', () => {
1448 }
1449 }
1450
1451 - var container = document.createElement('div');
1451 + const container = document.createElement('div');
1452
1453 - var setRef = ref => {
1453 + const setRef = ref => {
1454 if (ref) {
1455 app = ref;
1456 }
@@ -1464,7 +1464,7 @@ describe('ReactCompositeComponent', () => {
1464 });
1465
1466 it('prepares new child before unmounting old', () => {
1467 - var log = [];
1467 + const log = [];
1468
1469 class Spy extends React.Component {
1470 componentWillMount() {
@@ -1488,7 +1488,7 @@ describe('ReactCompositeComponent', () => {
1488 }
1489 }
1490
1491 - var container = document.createElement('div');
1491 + const container = document.createElement('div');
1492 ReactDOM.render(<Wrapper name="A" />, container);
1493 ReactDOM.render(<Wrapper name="B" />, container);
1494
@@ -1505,7 +1505,7 @@ describe('ReactCompositeComponent', () => {
1505 });
1506
1507 it('respects a shallow shouldComponentUpdate implementation', () => {
1508 - var renderCalls = 0;
1508 + let renderCalls = 0;
1509 class PlasticWrap extends React.Component {
1510 constructor(props, context) {
1511 super(props, context);
@@ -1548,8 +1548,8 @@ describe('ReactCompositeComponent', () => {
1548 }
1549 }
1550
1551 - var container = document.createElement('div');
1552 - var instance = ReactDOM.render(<PlasticWrap />, container);
1551 + const container = document.createElement('div');
1552 + const instance = ReactDOM.render(<PlasticWrap />, container);
1553 expect(renderCalls).toBe(1);
1554
1555 // Do not re-render based on props
@@ -1581,8 +1581,8 @@ describe('ReactCompositeComponent', () => {
1581 };
1582 }
1583
1584 - var renderCalls = 0;
1585 - var initialSettings = getInitialState();
1584 + let renderCalls = 0;
1585 + const initialSettings = getInitialState();
1586
1587 class Component extends React.Component {
1588 state = initialSettings;
@@ -1597,12 +1597,12 @@ describe('ReactCompositeComponent', () => {
1597 }
1598 }
1599
1600 - var container = document.createElement('div');
1601 - var instance = ReactDOM.render(<Component />, container);
1600 + const container = document.createElement('div');
1601 + const instance = ReactDOM.render(<Component />, container);
1602 expect(renderCalls).toBe(1);
1603
1604 // Do not re-render if state is equal
1605 - var settings = {
1605 + const settings = {
1606 foo: initialSettings.foo,
1607 bar: initialSettings.bar,
1608 };
packages/react-dom/src/__tests__/ReactCompositeComponentDOMMinimalism-test.js
+11 -11
@@ -10,15 +10,15 @@
10 'use strict';
11
12 // Requires
13 -var React;
14 -var ReactDOM;
15 -var ReactTestUtils;
13 +let React;
14 +let ReactDOM;
15 +let ReactTestUtils;
16
17 // Test components
18 -var LowerLevelComposite;
19 -var MyCompositeComponent;
18 +let LowerLevelComposite;
19 +let MyCompositeComponent;
20
21 -var expectSingleChildlessDiv;
21 +let expectSingleChildlessDiv;
22
23 /**
24 * Integration test, testing the combination of JSX with our unit of
@@ -44,20 +44,20 @@ describe('ReactCompositeComponentDOMMinimalism', () => {
44 };
45
46 expectSingleChildlessDiv = function(instance) {
47 - var el = ReactDOM.findDOMNode(instance);
47 + const el = ReactDOM.findDOMNode(instance);
48 expect(el.tagName).toBe('DIV');
49 expect(el.children.length).toBe(0);
50 };
51 });
52
53 it('should not render extra nodes for non-interpolated text', () => {
54 - var instance = <MyCompositeComponent>A string child</MyCompositeComponent>;
54 + let instance = <MyCompositeComponent>A string child</MyCompositeComponent>;
55 instance = ReactTestUtils.renderIntoDocument(instance);
56 expectSingleChildlessDiv(instance);
57 });
58
59 it('should not render extra nodes for non-interpolated text', () => {
60 - var instance = (
60 + let instance = (
61 <MyCompositeComponent>{'Interpolated String Child'}</MyCompositeComponent>
62 );
63 instance = ReactTestUtils.renderIntoDocument(instance);
@@ -65,13 +65,13 @@ describe('ReactCompositeComponentDOMMinimalism', () => {
65 });
66
67 it('should not render extra nodes for non-interpolated text', () => {
68 - var instance = (
68 + let instance = (
69 <MyCompositeComponent>
70 <ul>This text causes no children in ul, just innerHTML</ul>
71 </MyCompositeComponent>
72 );
73 instance = ReactTestUtils.renderIntoDocument(instance);
74 - var el = ReactDOM.findDOMNode(instance);
74 + const el = ReactDOM.findDOMNode(instance);
75 expect(el.tagName).toBe('DIV');
76 expect(el.children.length).toBe(1);
77 expect(el.children[0].tagName).toBe('UL');
packages/react-dom/src/__tests__/ReactCompositeComponentNestedState-test.js
+5 -5
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactTestUtils;
12 +let React;
13 +let ReactDOM;
14 +let ReactTestUtils;
15
16 describe('ReactCompositeComponentNestedState-state', () => {
17 beforeEach(() => {
@@ -94,10 +94,10 @@ describe('ReactCompositeComponentNestedState-state', () => {
94 }
95 }
96
97 - var container = document.createElement('div');
97 + const container = document.createElement('div');
98 document.body.appendChild(container);
99
100 - var logger = jest.fn();
100 + const logger = jest.fn();
101
102 void ReactDOM.render(<ParentComponent logger={logger} />, container);
103
packages/react-dom/src/__tests__/ReactCompositeComponentState-test.js
+14 -14
@@ -9,10 +9,10 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
12 +let React;
13 +let ReactDOM;
14
15 -var TestComponent;
15 +let TestComponent;
16
17 describe('ReactCompositeComponent-state', () => {
18 beforeEach(() => {
@@ -123,11 +123,11 @@ describe('ReactCompositeComponent-state', () => {
123 });
124
125 it('should support setting state', () => {
126 - var container = document.createElement('div');
126 + const container = document.createElement('div');
127 document.body.appendChild(container);
128
129 - var stateListener = jest.fn();
130 - var instance = ReactDOM.render(
129 + const stateListener = jest.fn();
130 + const instance = ReactDOM.render(
131 <TestComponent stateListener={stateListener} />,
132 container,
133 function peekAtInitialCallback() {
@@ -217,12 +217,12 @@ describe('ReactCompositeComponent-state', () => {
217 });
218
219 it('should call componentDidUpdate of children first', () => {
220 - var container = document.createElement('div');
220 + const container = document.createElement('div');
221
222 - var ops = [];
222 + let ops = [];
223
224 - var child = null;
225 - var parent = null;
224 + let child = null;
225 + let parent = null;
226
227 class Child extends React.Component {
228 state = {bar: false};
@@ -237,7 +237,7 @@ describe('ReactCompositeComponent-state', () => {
237 }
238 }
239
240 - var shouldUpdate = true;
240 + let shouldUpdate = true;
241
242 class Intermediate extends React.Component {
243 shouldComponentUpdate() {
@@ -284,7 +284,7 @@ describe('ReactCompositeComponent-state', () => {
284 });
285
286 it('should batch unmounts', () => {
287 - var outer;
287 + let outer;
288
289 class Inner extends React.Component {
290 render() {
@@ -306,7 +306,7 @@ describe('ReactCompositeComponent-state', () => {
306 }
307 }
308
309 - var container = document.createElement('div');
309 + const container = document.createElement('div');
310 outer = ReactDOM.render(<Outer />, container);
311 expect(() => {
312 ReactDOM.unmountComponentAtNode(container);
@@ -338,7 +338,7 @@ describe('ReactCompositeComponent-state', () => {
338 return <div>{this.props.value}</div>;
339 }
340 }
341 - var container = document.createElement('div');
341 + const container = document.createElement('div');
342 ReactDOM.render(<Parent />, container);
343 ReactDOM.render(<Parent />, container);
344 expect(log).toEqual([
packages/react-dom/src/__tests__/ReactDOM-test.js
+20 -20
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactDOM = require('react-dom');
14 -var ReactTestUtils = require('react-dom/test-utils');
12 +let React = require('react');
13 +let ReactDOM = require('react-dom');
14 +const ReactTestUtils = require('react-dom/test-utils');
15
16 describe('ReactDOM', () => {
17 // TODO: uncomment this test once we can run in phantom, which
@@ -44,24 +44,24 @@ describe('ReactDOM', () => {
44 */
45
46 it('allows a DOM element to be used with a string', () => {
47 - var element = React.createElement('div', {className: 'foo'});
48 - var instance = ReactTestUtils.renderIntoDocument(element);
47 + const element = React.createElement('div', {className: 'foo'});
48 + const instance = ReactTestUtils.renderIntoDocument(element);
49 expect(ReactDOM.findDOMNode(instance).tagName).toBe('DIV');
50 });
51
52 it('should allow children to be passed as an argument', () => {
53 - var argDiv = ReactTestUtils.renderIntoDocument(
53 + const argDiv = ReactTestUtils.renderIntoDocument(
54 React.createElement('div', null, 'child'),
55 );
56 - var argNode = ReactDOM.findDOMNode(argDiv);
56 + const argNode = ReactDOM.findDOMNode(argDiv);
57 expect(argNode.innerHTML).toBe('child');
58 });
59
60 it('should overwrite props.children with children argument', () => {
61 - var conflictDiv = ReactTestUtils.renderIntoDocument(
61 + const conflictDiv = ReactTestUtils.renderIntoDocument(
62 React.createElement('div', {children: 'fakechild'}, 'child'),
63 );
64 - var conflictNode = ReactDOM.findDOMNode(conflictDiv);
64 + const conflictNode = ReactDOM.findDOMNode(conflictDiv);
65 expect(conflictNode.innerHTML).toBe('child');
66 });
67
@@ -70,7 +70,7 @@ describe('ReactDOM', () => {
70 * DOM, instead of a stale cache.
71 */
72 it('should purge the DOM cache when removing nodes', () => {
73 - var myDiv = ReactTestUtils.renderIntoDocument(
73 + let myDiv = ReactTestUtils.renderIntoDocument(
74 <div>
75 <div key="theDog" className="dog" />,
76 <div key="theBird" className="bird" />
@@ -103,8 +103,8 @@ describe('ReactDOM', () => {
103 <div key="theBird" className="bird" />,
104 </div>,
105 );
106 - var root = ReactDOM.findDOMNode(myDiv);
107 - var dog = root.childNodes[0];
106 + const root = ReactDOM.findDOMNode(myDiv);
107 + const dog = root.childNodes[0];
108 expect(dog.className).toBe('bigdog');
109 });
110
@@ -124,7 +124,7 @@ describe('ReactDOM', () => {
124 }
125 }
126
127 - var myDiv = document.createElement('div');
127 + const myDiv = document.createElement('div');
128 expect(() => ReactDOM.render(<A />, myDiv, 'no')).toThrowError(
129 'Invalid argument passed as callback. Expected a function. Instead ' +
130 'received: no',
@@ -174,7 +174,7 @@ describe('ReactDOM', () => {
174 }
175 }
176
177 - var myDiv = document.createElement('div');
177 + const myDiv = document.createElement('div');
178 ReactDOM.render(<A />, myDiv);
179 expect(() => ReactDOM.render(<A />, myDiv, 'no')).toThrowError(
180 'Invalid argument passed as callback. Expected a function. Instead ' +
@@ -235,8 +235,8 @@ describe('ReactDOM', () => {
235 }
236 }
237
238 - var log = [];
239 - var container = document.createElement('div');
238 + const log = [];
239 + const container = document.createElement('div');
240 document.body.appendChild(container);
241 ReactDOM.render(<A showTwo={false} />, container);
242 input.focus();
@@ -245,9 +245,9 @@ describe('ReactDOM', () => {
245 // something that could happen when manipulating DOM nodes (but is hard to
246 // deterministically force without relying intensely on React DOM
247 // implementation details)
248 - var div = container.firstChild;
248 + const div = container.firstChild;
249 ['appendChild', 'insertBefore'].forEach(name => {
250 - var mutator = div[name];
250 + const mutator = div[name];
251 div[name] = function() {
252 if (input) {
253 input.blur();
@@ -305,7 +305,7 @@ describe('ReactDOM', () => {
305 const actual = [];
306
307 function click(node) {
308 - var fakeNativeEvent = function() {};
308 + const fakeNativeEvent = function() {};
309 fakeNativeEvent.target = node;
310 fakeNativeEvent.path = [node, container];
311 ReactTestUtils.simulateNativeEventOnNode(
@@ -341,7 +341,7 @@ describe('ReactDOM', () => {
341 }
342 }
343
344 - var container = document.createElement('div');
344 + const container = document.createElement('div');
345 ReactDOM.render(<Wrapper />, container);
346
347 const expected = [
packages/react-dom/src/__tests__/ReactDOMAttribute-test.js
+6 -6
@@ -10,8 +10,8 @@
10 'use strict';
11
12 describe('ReactDOM unknown attribute', () => {
13 - var React;
14 - var ReactDOM;
13 + let React;
14 + let ReactDOM;
15
16 beforeEach(() => {
17 jest.resetModules();
@@ -24,7 +24,7 @@ describe('ReactDOM unknown attribute', () => {
24 }
25
26 function testUnknownAttributeRemoval(givenValue) {
27 - var el = document.createElement('div');
27 + const el = document.createElement('div');
28 ReactDOM.render(<div unknown="something" />, el);
29 expect(el.firstChild.getAttribute('unknown')).toBe('something');
30 ReactDOM.render(<div unknown={givenValue} />, el);
@@ -32,7 +32,7 @@ describe('ReactDOM unknown attribute', () => {
32 }
33
34 function testUnknownAttributeAssignment(givenValue, expectedDOMValue) {
35 - var el = document.createElement('div');
35 + const el = document.createElement('div');
36 ReactDOM.render(<div unknown="something" />, el);
37 expect(el.firstChild.getAttribute('unknown')).toBe('something');
38 ReactDOM.render(<div unknown={givenValue} />, el);
@@ -63,7 +63,7 @@ describe('ReactDOM unknown attribute', () => {
63 });
64
65 it('removes unknown attributes that were rendered but are now missing', () => {
66 - var el = document.createElement('div');
66 + const el = document.createElement('div');
67 ReactDOM.render(<div unknown="something" />, el);
68 expect(el.firstChild.getAttribute('unknown')).toBe('something');
69 ReactDOM.render(<div />, el);
@@ -140,7 +140,7 @@ describe('ReactDOM unknown attribute', () => {
140 it('allows camelCase unknown attributes and warns', () => {
141 spyOnDev(console, 'error');
142
143 - var el = document.createElement('div');
143 + const el = document.createElement('div');
144 ReactDOM.render(<div helloWorld="something" />, el);
145 expect(el.firstChild.getAttribute('helloworld')).toBe('something');
146
packages/react-dom/src/__tests__/ReactDOMComponent-test.js
+169 -160
@@ -10,10 +10,10 @@
10 'use strict';
11
12 describe('ReactDOMComponent', () => {
13 - var React;
14 - var ReactTestUtils;
15 - var ReactDOM;
16 - var ReactDOMServer;
13 + let React;
14 + let ReactTestUtils;
15 + let ReactDOM;
16 + let ReactDOMServer;
17
18 function normalizeCodeLocInfo(str) {
19 return str && str.replace(/\(at .+?:\d+\)/g, '(at **)');
@@ -29,7 +29,7 @@ describe('ReactDOMComponent', () => {
29
30 describe('updateDOM', () => {
31 it('should handle className', () => {
32 - var container = document.createElement('div');
32 + const container = document.createElement('div');
33 ReactDOM.render(<div style={{}} />, container);
34
35 ReactDOM.render(<div className={'foo'} />, container);
@@ -41,12 +41,17 @@ describe('ReactDOMComponent', () => {
41 });
42
43 it('should gracefully handle various style value types', () => {
44 - var container = document.createElement('div');
44 + const container = document.createElement('div');
45 ReactDOM.render(<div style={{}} />, container);
46 - var stubStyle = container.firstChild.style;
46 + const stubStyle = container.firstChild.style;
47
48 // set initial style
49 - var setup = {display: 'block', left: '1px', top: 2, fontFamily: 'Arial'};
49 + const setup = {
50 + display: 'block',
51 + left: '1px',
52 + top: 2,
53 + fontFamily: 'Arial',
54 + };
55 ReactDOM.render(<div style={setup} />, container);
56 expect(stubStyle.display).toEqual('block');
57 expect(stubStyle.left).toEqual('1px');
@@ -54,7 +59,7 @@ describe('ReactDOMComponent', () => {
59 expect(stubStyle.fontFamily).toEqual('Arial');
60
61 // reset the style to their default state
57 - var reset = {display: '', left: null, top: false, fontFamily: true};
62 + const reset = {display: '', left: null, top: false, fontFamily: true};
63 ReactDOM.render(<div style={reset} />, container);
64 expect(stubStyle.display).toEqual('');
65 expect(stubStyle.left).toEqual('');
@@ -63,10 +68,14 @@ describe('ReactDOMComponent', () => {
68 });
69
70 it('should not update styles when mutating a proxy style object', () => {
66 - var styleStore = {display: 'none', fontFamily: 'Arial', lineHeight: 1.2};
71 + const styleStore = {
72 + display: 'none',
73 + fontFamily: 'Arial',
74 + lineHeight: 1.2,
75 + };
76 // We use a proxy style object so that we can mutate it even if it is
77 // frozen in DEV.
69 - var styles = {
78 + const styles = {
79 get display() {
80 return styleStore.display;
81 },
@@ -86,10 +95,10 @@ describe('ReactDOMComponent', () => {
95 styleStore.lineHeight = v;
96 },
97 };
89 - var container = document.createElement('div');
98 + const container = document.createElement('div');
99 ReactDOM.render(<div style={styles} />, container);
100
92 - var stubStyle = container.firstChild.style;
101 + const stubStyle = container.firstChild.style;
102 stubStyle.display = styles.display;
103 stubStyle.fontFamily = styles.fontFamily;
104
@@ -121,7 +130,7 @@ describe('ReactDOMComponent', () => {
130 });
131
132 it('should throw when mutating style objects', () => {
124 - var style = {border: '1px solid black'};
133 + const style = {border: '1px solid black'};
134
135 class App extends React.Component {
136 state = {style: style};
@@ -139,7 +148,7 @@ describe('ReactDOMComponent', () => {
148
149 it('should warn for unknown prop', () => {
150 spyOnDev(console, 'error');
142 - var container = document.createElement('div');
151 + const container = document.createElement('div');
152 ReactDOM.render(<div foo={() => {}} />, container);
153 if (__DEV__) {
154 expect(console.error.calls.count(0)).toBe(1);
@@ -154,7 +163,7 @@ describe('ReactDOMComponent', () => {
163
164 it('should group multiple unknown prop warnings together', () => {
165 spyOnDev(console, 'error');
157 - var container = document.createElement('div');
166 + const container = document.createElement('div');
167 ReactDOM.render(<div foo={() => {}} baz={() => {}} />, container);
168 if (__DEV__) {
169 expect(console.error.calls.count(0)).toBe(1);
@@ -169,7 +178,7 @@ describe('ReactDOMComponent', () => {
178
179 it('should warn for onDblClick prop', () => {
180 spyOnDev(console, 'error');
172 - var container = document.createElement('div');
181 + const container = document.createElement('div');
182 ReactDOM.render(<div onDblClick={() => {}} />, container);
183 if (__DEV__) {
184 expect(console.error.calls.count(0)).toBe(1);
@@ -181,7 +190,7 @@ describe('ReactDOMComponent', () => {
190
191 it('should warn for unknown string event handlers', () => {
192 spyOnDev(console, 'error');
184 - var container = document.createElement('div');
193 + const container = document.createElement('div');
194 ReactDOM.render(<div onUnknown="alert(&quot;hack&quot;)" />, container);
195 expect(container.firstChild.hasAttribute('onUnknown')).toBe(false);
196 expect(container.firstChild.onUnknown).toBe(undefined);
@@ -207,7 +216,7 @@ describe('ReactDOMComponent', () => {
216
217 it('should warn for unknown function event handlers', () => {
218 spyOnDev(console, 'error');
210 - var container = document.createElement('div');
219 + const container = document.createElement('div');
220 ReactDOM.render(<div onUnknown={function() {}} />, container);
221 expect(container.firstChild.hasAttribute('onUnknown')).toBe(false);
222 expect(container.firstChild.onUnknown).toBe(undefined);
@@ -233,7 +242,7 @@ describe('ReactDOMComponent', () => {
242
243 it('should warn for badly cased React attributes', () => {
244 spyOnDev(console, 'error');
236 - var container = document.createElement('div');
245 + const container = document.createElement('div');
246 ReactDOM.render(<div CHILDREN="5" />, container);
247 expect(container.firstChild.getAttribute('CHILDREN')).toBe('5');
248 if (__DEV__) {
@@ -257,8 +266,8 @@ describe('ReactDOMComponent', () => {
266 it('should warn nicely about NaN in style', () => {
267 spyOnDev(console, 'error');
268
260 - var style = {fontSize: NaN};
261 - var div = document.createElement('div');
269 + const style = {fontSize: NaN};
270 + const div = document.createElement('div');
271 ReactDOM.render(<span style={style} />, div);
272 ReactDOM.render(<span style={style} />, div);
273
@@ -272,11 +281,11 @@ describe('ReactDOMComponent', () => {
281 });
282
283 it('should update styles if initially null', () => {
275 - var styles = null;
276 - var container = document.createElement('div');
284 + let styles = null;
285 + const container = document.createElement('div');
286 ReactDOM.render(<div style={styles} />, container);
287
279 - var stubStyle = container.firstChild.style;
288 + const stubStyle = container.firstChild.style;
289
290 styles = {display: 'block'};
291
@@ -285,12 +294,12 @@ describe('ReactDOMComponent', () => {
294 });
295
296 it('should update styles if updated to null multiple times', () => {
288 - var styles = null;
289 - var container = document.createElement('div');
297 + let styles = null;
298 + const container = document.createElement('div');
299 ReactDOM.render(<div style={styles} />, container);
300
301 styles = {display: 'block'};
293 - var stubStyle = container.firstChild.style;
302 + const stubStyle = container.firstChild.style;
303
304 ReactDOM.render(<div style={styles} />, container);
305 expect(stubStyle.display).toEqual('block');
@@ -306,7 +315,7 @@ describe('ReactDOMComponent', () => {
315 });
316
317 it('should allow named slot projection on both web components and regular DOM elements', () => {
309 - var container = document.createElement('div');
318 + const container = document.createElement('div');
319
320 ReactDOM.render(
321 <my-component>
@@ -316,14 +325,14 @@ describe('ReactDOMComponent', () => {
325 container,
326 );
327
319 - var lightDOM = container.firstChild.childNodes;
328 + const lightDOM = container.firstChild.childNodes;
329
330 expect(lightDOM[0].getAttribute('slot')).toBe('first');
331 expect(lightDOM[1].getAttribute('slot')).toBe('second');
332 });
333
334 it('should skip reserved props on web components', () => {
326 - var container = document.createElement('div');
335 + const container = document.createElement('div');
336
337 ReactDOM.render(
338 <my-component
@@ -359,7 +368,7 @@ describe('ReactDOMComponent', () => {
368 });
369
370 it('should skip dangerouslySetInnerHTML on web components', () => {
362 - var container = document.createElement('div');
371 + const container = document.createElement('div');
372
373 ReactDOM.render(
374 <my-component dangerouslySetInnerHTML={{__html: 'hi'}} />,
@@ -379,7 +388,7 @@ describe('ReactDOMComponent', () => {
388 });
389
390 it('should render null and undefined as empty but print other falsy values', () => {
382 - var container = document.createElement('div');
391 + const container = document.createElement('div');
392
393 ReactDOM.render(
394 <div dangerouslySetInnerHTML={{__html: 'textContent'}} />,
@@ -416,7 +425,7 @@ describe('ReactDOMComponent', () => {
425 });
426
427 it('should remove attributes', () => {
419 - var container = document.createElement('div');
428 + const container = document.createElement('div');
429 ReactDOM.render(<img height="17" />, container);
430
431 expect(container.firstChild.hasAttribute('height')).toBe(true);
@@ -425,7 +434,7 @@ describe('ReactDOMComponent', () => {
434 });
435
436 it('should remove properties', () => {
428 - var container = document.createElement('div');
437 + const container = document.createElement('div');
438 ReactDOM.render(<div className="monkey" />, container);
439
440 expect(container.firstChild.className).toEqual('monkey');
@@ -434,20 +443,20 @@ describe('ReactDOMComponent', () => {
443 });
444
445 it('should properly update custom attributes on custom elements', () => {
437 - var container = document.createElement('div');
446 + const container = document.createElement('div');
447 ReactDOM.render(<some-custom-element foo="bar" />, container);
448 ReactDOM.render(<some-custom-element bar="buzz" />, container);
440 - var node = container.firstChild;
449 + const node = container.firstChild;
450 expect(node.hasAttribute('foo')).toBe(false);
451 expect(node.getAttribute('bar')).toBe('buzz');
452 });
453
454 it('should clear a single style prop when changing `style`', () => {
446 - var styles = {display: 'none', color: 'red'};
447 - var container = document.createElement('div');
455 + let styles = {display: 'none', color: 'red'};
456 + const container = document.createElement('div');
457 ReactDOM.render(<div style={styles} />, container);
458
450 - var stubStyle = container.firstChild.style;
459 + const stubStyle = container.firstChild.style;
460
461 styles = {color: 'green'};
462 ReactDOM.render(<div style={styles} />, container);
@@ -457,9 +466,9 @@ describe('ReactDOMComponent', () => {
466
467 it('should reject attribute key injection attack on markup', () => {
468 spyOnDev(console, 'error');
460 - for (var i = 0; i < 3; i++) {
461 - var container = document.createElement('div');
462 - var element = React.createElement(
469 + for (let i = 0; i < 3; i++) {
470 + const container = document.createElement('div');
471 + const element = React.createElement(
472 'x-foo-component',
473 {'blah" onclick="beevil" noise="hi': 'selected'},
474 null,
@@ -476,12 +485,12 @@ describe('ReactDOMComponent', () => {
485
486 it('should reject attribute key injection attack on update', () => {
487 spyOnDev(console, 'error');
479 - for (var i = 0; i < 3; i++) {
480 - var container = document.createElement('div');
481 - var beforeUpdate = React.createElement('x-foo-component', {}, null);
488 + for (let i = 0; i < 3; i++) {
489 + const container = document.createElement('div');
490 + const beforeUpdate = React.createElement('x-foo-component', {}, null);
491 ReactDOM.render(beforeUpdate, container);
492
484 - var afterUpdate = React.createElement(
493 + const afterUpdate = React.createElement(
494 'x-foo-component',
495 {'blah" onclick="beevil" noise="hi': 'selected'},
496 null,
@@ -497,23 +506,23 @@ describe('ReactDOMComponent', () => {
506 });
507
508 it('should update arbitrary attributes for tags containing dashes', () => {
500 - var container = document.createElement('div');
509 + const container = document.createElement('div');
510
502 - var beforeUpdate = React.createElement('x-foo-component', {}, null);
511 + const beforeUpdate = React.createElement('x-foo-component', {}, null);
512 ReactDOM.render(beforeUpdate, container);
513
505 - var afterUpdate = <x-foo-component myattr="myval" />;
514 + const afterUpdate = <x-foo-component myattr="myval" />;
515 ReactDOM.render(afterUpdate, container);
516
517 expect(container.childNodes[0].getAttribute('myattr')).toBe('myval');
518 });
519
520 it('should clear all the styles when removing `style`', () => {
512 - var styles = {display: 'none', color: 'red'};
513 - var container = document.createElement('div');
521 + const styles = {display: 'none', color: 'red'};
522 + const container = document.createElement('div');
523 ReactDOM.render(<div style={styles} />, container);
524
516 - var stubStyle = container.firstChild.style;
525 + const stubStyle = container.firstChild.style;
526
527 ReactDOM.render(<div />, container);
528 expect(stubStyle.display).toEqual('');
@@ -521,18 +530,18 @@ describe('ReactDOMComponent', () => {
530 });
531
532 it('should update styles when `style` changes from null to object', () => {
524 - var container = document.createElement('div');
525 - var styles = {color: 'red'};
533 + const container = document.createElement('div');
534 + const styles = {color: 'red'};
535 ReactDOM.render(<div style={styles} />, container);
536 ReactDOM.render(<div />, container);
537 ReactDOM.render(<div style={styles} />, container);
538
530 - var stubStyle = container.firstChild.style;
539 + const stubStyle = container.firstChild.style;
540 expect(stubStyle.color).toEqual('red');
541 });
542
543 it('should not reset innerHTML for when children is null', () => {
535 - var container = document.createElement('div');
544 + const container = document.createElement('div');
545 ReactDOM.render(<div />, container);
546 container.firstChild.innerHTML = 'bonjour';
547 expect(container.firstChild.innerHTML).toEqual('bonjour');
@@ -544,7 +553,7 @@ describe('ReactDOMComponent', () => {
553 it('should reset innerHTML when switching from a direct text child to an empty child', () => {
554 const transitionToValues = [null, undefined, false];
555 transitionToValues.forEach(transitionToValue => {
547 - var container = document.createElement('div');
556 + const container = document.createElement('div');
557 ReactDOM.render(<div>bonjour</div>, container);
558 expect(container.firstChild.innerHTML).toEqual('bonjour');
559
@@ -554,7 +563,7 @@ describe('ReactDOMComponent', () => {
563 });
564
565 it('should empty element when removing innerHTML', () => {
557 - var container = document.createElement('div');
566 + const container = document.createElement('div');
567 ReactDOM.render(
568 <div dangerouslySetInnerHTML={{__html: ':)'}} />,
569 container,
@@ -566,7 +575,7 @@ describe('ReactDOMComponent', () => {
575 });
576
577 it('should transition from string content to innerHTML', () => {
569 - var container = document.createElement('div');
578 + const container = document.createElement('div');
579 ReactDOM.render(<div>hello</div>, container);
580
581 expect(container.firstChild.innerHTML).toEqual('hello');
@@ -578,7 +587,7 @@ describe('ReactDOMComponent', () => {
587 });
588
589 it('should transition from innerHTML to string content', () => {
581 - var container = document.createElement('div');
590 + const container = document.createElement('div');
591 ReactDOM.render(
592 <div dangerouslySetInnerHTML={{__html: 'bonjour'}} />,
593 container,
@@ -590,7 +599,7 @@ describe('ReactDOMComponent', () => {
599 });
600
601 it('should transition from innerHTML to children in nested el', () => {
593 - var container = document.createElement('div');
602 + const container = document.createElement('div');
603 ReactDOM.render(
604 <div>
605 <div dangerouslySetInnerHTML={{__html: 'bonjour'}} />
@@ -611,7 +620,7 @@ describe('ReactDOMComponent', () => {
620 });
621
622 it('should transition from children to innerHTML in nested el', () => {
614 - var container = document.createElement('div');
623 + const container = document.createElement('div');
624 ReactDOM.render(
625 <div>
626 <div>
@@ -632,15 +641,15 @@ describe('ReactDOMComponent', () => {
641 });
642
643 it('should not incur unnecessary DOM mutations for attributes', () => {
635 - var container = document.createElement('div');
644 + const container = document.createElement('div');
645 ReactDOM.render(<div id="" />, container);
646
638 - var node = container.firstChild;
639 - var nodeSetAttribute = node.setAttribute;
647 + const node = container.firstChild;
648 + const nodeSetAttribute = node.setAttribute;
649 node.setAttribute = jest.fn();
650 node.setAttribute.mockImplementation(nodeSetAttribute);
651
643 - var nodeRemoveAttribute = node.removeAttribute;
652 + const nodeRemoveAttribute = node.removeAttribute;
653 node.removeAttribute = jest.fn();
654 node.removeAttribute.mockImplementation(nodeRemoveAttribute);
655
@@ -670,14 +679,14 @@ describe('ReactDOMComponent', () => {
679 });
680
681 it('should not incur unnecessary DOM mutations for string properties', () => {
673 - var container = document.createElement('div');
682 + const container = document.createElement('div');
683 ReactDOM.render(<div value="" />, container);
684
676 - var node = container.firstChild;
685 + const node = container.firstChild;
686
678 - var nodeValueSetter = jest.genMockFn();
687 + const nodeValueSetter = jest.genMockFn();
688
680 - var oldSetAttribute = node.setAttribute.bind(node);
689 + const oldSetAttribute = node.setAttribute.bind(node);
690 node.setAttribute = function(key, value) {
691 oldSetAttribute(key, value);
692 nodeValueSetter(key, value);
@@ -703,12 +712,12 @@ describe('ReactDOMComponent', () => {
712 });
713
714 it('should not incur unnecessary DOM mutations for boolean properties', () => {
706 - var container = document.createElement('div');
715 + const container = document.createElement('div');
716 ReactDOM.render(<div checked={true} />, container);
717
709 - var node = container.firstChild;
710 - var nodeValue = true;
711 - var nodeValueSetter = jest.fn();
718 + const node = container.firstChild;
719 + let nodeValue = true;
720 + const nodeValueSetter = jest.fn();
721 Object.defineProperty(node, 'checked', {
722 get: function() {
723 return nodeValue;
@@ -732,14 +741,14 @@ describe('ReactDOMComponent', () => {
741 });
742
743 it('should ignore attribute whitelist for elements with the "is" attribute', () => {
735 - var container = document.createElement('div');
744 + const container = document.createElement('div');
745 ReactDOM.render(<button is="test" cowabunga="chevynova" />, container);
746 expect(container.firstChild.hasAttribute('cowabunga')).toBe(true);
747 });
748
749 it('should warn about non-string "is" attribute', () => {
750 spyOnDev(console, 'error');
742 - var container = document.createElement('div');
751 + const container = document.createElement('div');
752 ReactDOM.render(<button is={function() {}} />, container);
753
754 if (__DEV__) {
@@ -752,10 +761,10 @@ describe('ReactDOMComponent', () => {
761 });
762
763 it('should not update when switching between null/undefined', () => {
755 - var container = document.createElement('div');
756 - var node = ReactDOM.render(<div />, container);
764 + const container = document.createElement('div');
765 + const node = ReactDOM.render(<div />, container);
766
758 - var setter = jest.fn();
767 + const setter = jest.fn();
768 node.setAttribute = setter;
769
770 ReactDOM.render(<div dir={null} />, container);
@@ -770,7 +779,7 @@ describe('ReactDOMComponent', () => {
779 // This test might look like it's just testing ReactMultiChild but the
780 // last bug in this was actually in DOMChildrenOperations so this test
781 // needs to be in some DOM-specific test file.
773 - var container = document.createElement('div');
782 + const container = document.createElement('div');
783
784 // ABCD
785 ReactDOM.render(
@@ -811,8 +820,8 @@ describe('ReactDOMComponent', () => {
820 }
821
822 function toHaveAttribute(actual, expected) {
814 - var [attr, value] = expected;
815 - var re = '(?:^|\\s)' + attr + '=[\\\'"]';
823 + const [attr, value] = expected;
824 + let re = '(?:^|\\s)' + attr + '=[\\\'"]';
825 if (typeof value !== 'undefined') {
826 re += quoteRegexp(value) + '[\\\'"]';
827 }
@@ -851,12 +860,12 @@ describe('ReactDOMComponent', () => {
860 }
861
862 function toHaveInnerhtml(actual, expected) {
854 - var re = '^' + quoteRegexp(expected) + '$';
863 + const re = '^' + quoteRegexp(expected) + '$';
864 return new RegExp(re).test(actual);
865 }
866
867 it('should handle dangerouslySetInnerHTML', () => {
859 - var innerHTML = {__html: 'testContent'};
868 + const innerHTML = {__html: 'testContent'};
869 expect(
870 toHaveInnerhtml(
871 genMarkup({dangerouslySetInnerHTML: innerHTML}),
@@ -867,18 +876,18 @@ describe('ReactDOMComponent', () => {
876 });
877
878 describe('mountComponent', () => {
870 - var mountComponent;
879 + let mountComponent;
880
881 beforeEach(() => {
882 mountComponent = function(props) {
874 - var container = document.createElement('div');
883 + const container = document.createElement('div');
884 ReactDOM.render(<div {...props} />, container);
885 };
886 });
887
888 it('should work error event on <source> element', () => {
889 spyOnDevAndProd(console, 'log');
881 - var container = document.createElement('div');
890 + const container = document.createElement('div');
891 ReactDOM.render(
892 <video>
893 <source
@@ -890,7 +899,7 @@ describe('ReactDOMComponent', () => {
899 container,
900 );
901
893 - var errorEvent = document.createEvent('Event');
902 + const errorEvent = document.createEvent('Event');
903 errorEvent.initEvent('error', false, false);
904 container.getElementsByTagName('source')[0].dispatchEvent(errorEvent);
905
@@ -908,7 +917,7 @@ describe('ReactDOMComponent', () => {
917 }
918 }
919
911 - var returnedValue = ReactDOMServer.renderToString(<Container />);
920 + const returnedValue = ReactDOMServer.renderToString(<Container />);
921 expect(returnedValue).not.toContain('</BR>');
922 if (__DEV__) {
923 expect(console.error.calls.count()).toBe(1);
@@ -1041,11 +1050,11 @@ describe('ReactDOMComponent', () => {
1050 it('should emit a warning once for a named custom component using shady DOM', () => {
1051 spyOnDev(console, 'error');
1052
1044 - var defaultCreateElement = document.createElement.bind(document);
1053 + const defaultCreateElement = document.createElement.bind(document);
1054
1055 try {
1056 document.createElement = element => {
1048 - var container = defaultCreateElement(element);
1057 + const container = defaultCreateElement(element);
1058 container.shadyRoot = {};
1059 return container;
1060 };
@@ -1054,7 +1063,7 @@ describe('ReactDOMComponent', () => {
1063 return <polymer-component />;
1064 }
1065 }
1057 - var node = document.createElement('div');
1066 + const node = document.createElement('div');
1067 ReactDOM.render(<ShadyComponent />, node);
1068 if (__DEV__) {
1069 expect(console.error.calls.count()).toBe(1);
@@ -1075,11 +1084,11 @@ describe('ReactDOMComponent', () => {
1084 it('should emit a warning once for an unnamed custom component using shady DOM', () => {
1085 spyOnDev(console, 'error');
1086
1078 - var defaultCreateElement = document.createElement.bind(document);
1087 + const defaultCreateElement = document.createElement.bind(document);
1088
1089 try {
1090 document.createElement = element => {
1082 - var container = defaultCreateElement(element);
1091 + const container = defaultCreateElement(element);
1092 container.shadyRoot = {};
1093 return container;
1094 };
@@ -1105,9 +1114,9 @@ describe('ReactDOMComponent', () => {
1114 it('should treat menuitem as a void element but still create the closing tag', () => {
1115 // menuitem is not implemented in jsdom, so this triggers the unknown warning error
1116 spyOnDev(console, 'error');
1108 - var container = document.createElement('div');
1117 + const container = document.createElement('div');
1118
1110 - var returnedValue = ReactDOMServer.renderToString(
1119 + const returnedValue = ReactDOMServer.renderToString(
1120 <menu>
1121 <menuitem />
1122 </menu>,
@@ -1238,7 +1247,7 @@ describe('ReactDOMComponent', () => {
1247 });
1248
1249 it('should support custom elements which extend native elements', () => {
1241 - var container = document.createElement('div');
1250 + const container = document.createElement('div');
1251 spyOnDevAndProd(document, 'createElement').and.callThrough();
1252 ReactDOM.render(<div is="custom-div" />, container);
1253 expect(document.createElement).toHaveBeenCalledWith('div', {
@@ -1248,7 +1257,7 @@ describe('ReactDOMComponent', () => {
1257
1258 it('should work load and error events on <image> element in SVG', () => {
1259 spyOnDevAndProd(console, 'log');
1251 - var container = document.createElement('div');
1260 + const container = document.createElement('div');
1261 ReactDOM.render(
1262 <svg>
1263 <image
@@ -1260,8 +1269,8 @@ describe('ReactDOMComponent', () => {
1269 container,
1270 );
1271
1263 - var loadEvent = document.createEvent('Event');
1264 - var errorEvent = document.createEvent('Event');
1272 + const loadEvent = document.createEvent('Event');
1273 + const errorEvent = document.createEvent('Event');
1274
1275 loadEvent.initEvent('load', false, false);
1276 errorEvent.initEvent('error', false, false);
@@ -1278,7 +1287,7 @@ describe('ReactDOMComponent', () => {
1287 });
1288
1289 describe('updateComponent', () => {
1281 - var container;
1290 + let container;
1291
1292 beforeEach(() => {
1293 container = document.createElement('div');
@@ -1406,7 +1415,7 @@ describe('ReactDOMComponent', () => {
1415 }
1416 }
1417
1409 - var container = document.createElement('div');
1418 + const container = document.createElement('div');
1419 ReactDOM.render(
1420 <div>
1421 <Inner />
@@ -1419,26 +1428,26 @@ describe('ReactDOMComponent', () => {
1428
1429 describe('tag sanitization', () => {
1430 it('should throw when an invalid tag name is used server-side', () => {
1422 - var hackzor = React.createElement('script tag');
1431 + const hackzor = React.createElement('script tag');
1432 expect(() => ReactDOMServer.renderToString(hackzor)).toThrowError(
1433 'Invalid tag: script tag',
1434 );
1435 });
1436
1437 it('should throw when an attack vector is used server-side', () => {
1429 - var hackzor = React.createElement('div><img /><div');
1438 + const hackzor = React.createElement('div><img /><div');
1439 expect(() => ReactDOMServer.renderToString(hackzor)).toThrowError(
1440 'Invalid tag: div><img /><div',
1441 );
1442 });
1443
1444 it('should throw when an invalid tag name is used', () => {
1436 - var hackzor = React.createElement('script tag');
1445 + const hackzor = React.createElement('script tag');
1446 expect(() => ReactTestUtils.renderIntoDocument(hackzor)).toThrow();
1447 });
1448
1449 it('should throw when an attack vector is used', () => {
1441 - var hackzor = React.createElement('div><img /><div');
1450 + const hackzor = React.createElement('div><img /><div');
1451 expect(() => ReactTestUtils.renderIntoDocument(hackzor)).toThrow();
1452 });
1453 });
@@ -1472,7 +1481,7 @@ describe('ReactDOMComponent', () => {
1481
1482 it('warns on invalid nesting at root', () => {
1483 spyOnDev(console, 'error');
1475 - var p = document.createElement('p');
1484 + const p = document.createElement('p');
1485 ReactDOM.render(
1486 <span>
1487 <p />
@@ -1890,7 +1899,7 @@ describe('ReactDOMComponent', () => {
1899
1900 it('gives source code refs for unknown prop warning for update render', () => {
1901 spyOnDev(console, 'error');
1893 - var container = document.createElement('div');
1902 + const container = document.createElement('div');
1903
1904 ReactTestUtils.renderIntoDocument(<div className="paladin" />, container);
1905 if (__DEV__) {
@@ -1923,14 +1932,14 @@ describe('ReactDOMComponent', () => {
1932 expect(console.error.calls.count()).toBe(2);
1933
1934 expect(console.error.calls.argsFor(0)[0]).toContain('className');
1926 - var matches = console.error.calls
1935 + let matches = console.error.calls
1936 .argsFor(0)[0]
1937 .match(/.*\(.*:(\d+)\).*/);
1929 - var previousLine = matches[1];
1938 + const previousLine = matches[1];
1939
1940 expect(console.error.calls.argsFor(1)[0]).toContain('onClick');
1941 matches = console.error.calls.argsFor(1)[0].match(/.*\(.*:(\d+)\).*/);
1933 - var currentLine = matches[1];
1942 + const currentLine = matches[1];
1943
1944 //verify line number has a proper relative difference,
1945 //since hard coding the line number would make test too brittle
@@ -1955,15 +1964,15 @@ describe('ReactDOMComponent', () => {
1964 expect(console.error.calls.count()).toBe(2);
1965
1966 expect(console.error.calls.argsFor(0)[0]).toContain('className');
1958 - var matches = console.error.calls
1967 + let matches = console.error.calls
1968 .argsFor(0)[0]
1969 .match(/.*\(.*:(\d+)\).*/);
1961 - var previousLine = (matches || [])[1];
1970 + const previousLine = (matches || [])[1];
1971
1972 expect(console.error.calls.argsFor(1)[0]).toContain('onClick');
1973 matches =
1974 console.error.calls.argsFor(1)[0].match(/.*\(.*:(\d+)\).*/) || {};
1966 - var currentLine = (matches || [])[1];
1975 + const currentLine = (matches || [])[1];
1976
1977 //verify line number has a proper relative difference,
1978 //since hard coding the line number would make test too brittle
@@ -1973,7 +1982,7 @@ describe('ReactDOMComponent', () => {
1982
1983 it('gives source code refs for unknown prop warning for exact elements in composition', () => {
1984 spyOnDev(console, 'error');
1976 - var container = document.createElement('div');
1985 + const container = document.createElement('div');
1986
1987 class Parent extends React.Component {
1988 render() {
@@ -2018,14 +2027,14 @@ describe('ReactDOMComponent', () => {
2027 expect(console.error.calls.count()).toBe(2);
2028
2029 expect(console.error.calls.argsFor(0)[0]).toContain('className');
2021 - var matches = console.error.calls
2030 + let matches = console.error.calls
2031 .argsFor(0)[0]
2032 .match(/.*\(.*:(\d+)\).*/);
2024 - var previousLine = (matches || [])[1];
2033 + const previousLine = (matches || [])[1];
2034
2035 expect(console.error.calls.argsFor(1)[0]).toContain('onClick');
2036 matches = console.error.calls.argsFor(1)[0].match(/.*\(.*:(\d+)\).*/);
2028 - var currentLine = (matches || [])[1];
2037 + const currentLine = (matches || [])[1];
2038
2039 //verify line number has a proper relative difference,
2040 //since hard coding the line number would make test too brittle
@@ -2035,7 +2044,7 @@ describe('ReactDOMComponent', () => {
2044
2045 it('gives source code refs for unknown prop warning for exact elements in composition (ssr)', () => {
2046 spyOnDev(console, 'error');
2038 - var container = document.createElement('div');
2047 + const container = document.createElement('div');
2048
2049 class Parent extends React.Component {
2050 render() {
@@ -2080,14 +2089,14 @@ describe('ReactDOMComponent', () => {
2089 expect(console.error.calls.count()).toBe(2);
2090
2091 expect(console.error.calls.argsFor(0)[0]).toContain('className');
2083 - var matches = console.error.calls
2092 + let matches = console.error.calls
2093 .argsFor(0)[0]
2094 .match(/.*\(.*:(\d+)\).*/);
2086 - var previousLine = (matches || [])[1];
2095 + const previousLine = (matches || [])[1];
2096
2097 expect(console.error.calls.argsFor(1)[0]).toContain('onClick');
2098 matches = console.error.calls.argsFor(1)[0].match(/.*\(.*:(\d+)\).*/);
2090 - var currentLine = (matches || [])[1];
2099 + const currentLine = (matches || [])[1];
2100
2101 //verify line number has a proper relative difference,
2102 //since hard coding the line number would make test too brittle
@@ -2170,7 +2179,7 @@ describe('ReactDOMComponent', () => {
2179 it('sets aliased attributes on HTML attributes', function() {
2180 spyOnDev(console, 'error');
2181
2173 - var el = ReactTestUtils.renderIntoDocument(<div class="test" />);
2182 + const el = ReactTestUtils.renderIntoDocument(<div class="test" />);
2183
2184 expect(el.className).toBe('test');
2185
@@ -2184,7 +2193,7 @@ describe('ReactDOMComponent', () => {
2193 it('sets incorrectly cased aliased attributes on HTML attributes with a warning', function() {
2194 spyOnDev(console, 'error');
2195
2187 - var el = ReactTestUtils.renderIntoDocument(<div cLASS="test" />);
2196 + const el = ReactTestUtils.renderIntoDocument(<div cLASS="test" />);
2197
2198 expect(el.className).toBe('test');
2199
@@ -2198,12 +2207,12 @@ describe('ReactDOMComponent', () => {
2207 it('sets aliased attributes on SVG elements with a warning', function() {
2208 spyOnDev(console, 'error');
2209
2201 - var el = ReactTestUtils.renderIntoDocument(
2210 + const el = ReactTestUtils.renderIntoDocument(
2211 <svg>
2212 <text arabic-form="initial" />
2213 </svg>,
2214 );
2206 - var text = el.querySelector('text');
2215 + const text = el.querySelector('text');
2216
2217 expect(text.hasAttribute('arabic-form')).toBe(true);
2218
@@ -2215,7 +2224,7 @@ describe('ReactDOMComponent', () => {
2224 });
2225
2226 it('sets aliased attributes on custom elements', function() {
2218 - var el = ReactTestUtils.renderIntoDocument(
2227 + const el = ReactTestUtils.renderIntoDocument(
2228 <div is="custom-element" class="test" />,
2229 );
2230
@@ -2223,7 +2232,7 @@ describe('ReactDOMComponent', () => {
2232 });
2233
2234 it('aliased attributes on custom elements with bad casing', function() {
2226 - var el = ReactTestUtils.renderIntoDocument(
2235 + const el = ReactTestUtils.renderIntoDocument(
2236 <div is="custom-element" claSS="test" />,
2237 );
2238
@@ -2231,7 +2240,7 @@ describe('ReactDOMComponent', () => {
2240 });
2241
2242 it('updates aliased attributes on custom elements', function() {
2234 - var container = document.createElement('div');
2243 + const container = document.createElement('div');
2244 ReactDOM.render(<div is="custom-element" class="foo" />, container);
2245 ReactDOM.render(<div is="custom-element" class="bar" />, container);
2246
@@ -2241,7 +2250,7 @@ describe('ReactDOMComponent', () => {
2250
2251 describe('Custom attributes', function() {
2252 it('allows assignment of custom attributes with string values', function() {
2244 - var el = ReactTestUtils.renderIntoDocument(<div whatever="30" />);
2253 + const el = ReactTestUtils.renderIntoDocument(<div whatever="30" />);
2254
2255 expect(el.getAttribute('whatever')).toBe('30');
2256 });
@@ -2260,7 +2269,7 @@ describe('ReactDOMComponent', () => {
2269 it('does not assign a boolean custom attributes as a string', function() {
2270 spyOnDev(console, 'error');
2271
2263 - var el = ReactTestUtils.renderIntoDocument(<div whatever={true} />);
2272 + const el = ReactTestUtils.renderIntoDocument(<div whatever={true} />);
2273
2274 expect(el.hasAttribute('whatever')).toBe(false);
2275
@@ -2277,7 +2286,7 @@ describe('ReactDOMComponent', () => {
2286 spyOnDev(console, 'error');
2287
2288 // eslint-disable-next-line react/jsx-boolean-value
2280 - var el = ReactTestUtils.renderIntoDocument(<div whatever />);
2289 + const el = ReactTestUtils.renderIntoDocument(<div whatever />);
2290
2291 expect(el.hasAttribute('whatever')).toBe(false);
2292
@@ -2291,7 +2300,7 @@ describe('ReactDOMComponent', () => {
2300 });
2301
2302 it('assigns a numeric custom attributes as a string', function() {
2294 - var el = ReactTestUtils.renderIntoDocument(<div whatever={3} />);
2303 + const el = ReactTestUtils.renderIntoDocument(<div whatever={3} />);
2304
2305 expect(el.getAttribute('whatever')).toBe('3');
2306 });
@@ -2299,7 +2308,7 @@ describe('ReactDOMComponent', () => {
2308 it('will not assign a function custom attributes', function() {
2309 spyOnDev(console, 'error');
2310
2302 - var el = ReactTestUtils.renderIntoDocument(<div whatever={() => {}} />);
2311 + const el = ReactTestUtils.renderIntoDocument(<div whatever={() => {}} />);
2312
2313 expect(el.hasAttribute('whatever')).toBe(false);
2314
@@ -2311,14 +2320,14 @@ describe('ReactDOMComponent', () => {
2320 });
2321
2322 it('will assign an object custom attributes', function() {
2314 - var el = ReactTestUtils.renderIntoDocument(<div whatever={{}} />);
2323 + const el = ReactTestUtils.renderIntoDocument(<div whatever={{}} />);
2324 expect(el.getAttribute('whatever')).toBe('[object Object]');
2325 });
2326
2327 it('allows cased data attributes', function() {
2328 spyOnDev(console, 'error');
2329
2321 - var el = ReactTestUtils.renderIntoDocument(<div data-fooBar="true" />);
2330 + const el = ReactTestUtils.renderIntoDocument(<div data-fooBar="true" />);
2331 expect(el.getAttribute('data-foobar')).toBe('true');
2332
2333 if (__DEV__) {
@@ -2337,7 +2346,7 @@ describe('ReactDOMComponent', () => {
2346 it('allows cased custom attributes', function() {
2347 spyOnDev(console, 'error');
2348
2340 - var el = ReactTestUtils.renderIntoDocument(<div fooBar="true" />);
2349 + const el = ReactTestUtils.renderIntoDocument(<div fooBar="true" />);
2350 expect(el.getAttribute('foobar')).toBe('true');
2351
2352 if (__DEV__) {
@@ -2356,7 +2365,7 @@ describe('ReactDOMComponent', () => {
2365 it('warns on NaN attributes', function() {
2366 spyOnDev(console, 'error');
2367
2359 - var el = ReactTestUtils.renderIntoDocument(<div whatever={NaN} />);
2368 + const el = ReactTestUtils.renderIntoDocument(<div whatever={NaN} />);
2369
2370 expect(el.getAttribute('whatever')).toBe('NaN');
2371
@@ -2371,10 +2380,10 @@ describe('ReactDOMComponent', () => {
2380 it('removes a property when it becomes invalid', function() {
2381 spyOnDev(console, 'error');
2382
2374 - var container = document.createElement('div');
2383 + const container = document.createElement('div');
2384 ReactDOM.render(<div whatever={0} />, container);
2385 ReactDOM.render(<div whatever={() => {}} />, container);
2377 - var el = container.firstChild;
2386 + const el = container.firstChild;
2387
2388 expect(el.hasAttribute('whatever')).toBe(false);
2389
@@ -2388,7 +2397,7 @@ describe('ReactDOMComponent', () => {
2397 it('warns on bad casing of known HTML attributes', function() {
2398 spyOnDev(console, 'error');
2399
2391 - var el = ReactTestUtils.renderIntoDocument(<div SiZe="30" />);
2400 + const el = ReactTestUtils.renderIntoDocument(<div SiZe="30" />);
2401
2402 expect(el.getAttribute('size')).toBe('30');
2403
@@ -2402,17 +2411,17 @@ describe('ReactDOMComponent', () => {
2411
2412 describe('Object stringification', function() {
2413 it('allows objects on known properties', function() {
2405 - var el = ReactTestUtils.renderIntoDocument(<div acceptCharset={{}} />);
2414 + const el = ReactTestUtils.renderIntoDocument(<div acceptCharset={{}} />);
2415 expect(el.getAttribute('accept-charset')).toBe('[object Object]');
2416 });
2417
2418 it('should pass objects as attributes if they define toString', () => {
2410 - var obj = {
2419 + const obj = {
2420 toString() {
2421 return 'hello';
2422 },
2423 };
2415 - var container = document.createElement('div');
2424 + const container = document.createElement('div');
2425
2426 ReactDOM.render(<img src={obj} />, container);
2427 expect(container.firstChild.src).toBe('hello');
@@ -2425,8 +2434,8 @@ describe('ReactDOMComponent', () => {
2434 });
2435
2436 it('passes objects on known SVG attributes if they do not define toString', () => {
2428 - var obj = {};
2429 - var container = document.createElement('div');
2437 + const obj = {};
2438 + const container = document.createElement('div');
2439
2440 ReactDOM.render(<svg arabicForm={obj} />, container);
2441 expect(container.firstChild.getAttribute('arabic-form')).toBe(
@@ -2435,8 +2444,8 @@ describe('ReactDOMComponent', () => {
2444 });
2445
2446 it('passes objects on custom attributes if they do not define toString', () => {
2438 - var obj = {};
2439 - var container = document.createElement('div');
2447 + const obj = {};
2448 + const container = document.createElement('div');
2449
2450 ReactDOM.render(<div unknown={obj} />, container);
2451 expect(container.firstChild.getAttribute('unknown')).toBe(
@@ -2445,16 +2454,16 @@ describe('ReactDOMComponent', () => {
2454 });
2455
2456 it('allows objects that inherit a custom toString method', function() {
2448 - var parent = {toString: () => 'hello.jpg'};
2449 - var child = Object.create(parent);
2450 - var el = ReactTestUtils.renderIntoDocument(<img src={child} />);
2457 + const parent = {toString: () => 'hello.jpg'};
2458 + const child = Object.create(parent);
2459 + const el = ReactTestUtils.renderIntoDocument(<img src={child} />);
2460
2461 expect(el.src).toBe('hello.jpg');
2462 });
2463
2464 it('assigns ajaxify (an important internal FB attribute)', function() {
2456 - var options = {toString: () => 'ajaxy'};
2457 - var el = ReactTestUtils.renderIntoDocument(<div ajaxify={options} />);
2465 + const options = {toString: () => 'ajaxy'};
2466 + const el = ReactTestUtils.renderIntoDocument(<div ajaxify={options} />);
2467
2468 expect(el.getAttribute('ajaxify')).toBe('ajaxy');
2469 });
@@ -2464,7 +2473,7 @@ describe('ReactDOMComponent', () => {
2473 it('does not assign string boolean attributes for custom attributes', function() {
2474 spyOnDev(console, 'error');
2475
2467 - var el = ReactTestUtils.renderIntoDocument(<div whatever={true} />);
2476 + const el = ReactTestUtils.renderIntoDocument(<div whatever={true} />);
2477
2478 expect(el.hasAttribute('whatever')).toBe(false);
2479
@@ -2478,20 +2487,20 @@ describe('ReactDOMComponent', () => {
2487 });
2488
2489 it('stringifies the boolean true for allowed attributes', function() {
2481 - var el = ReactTestUtils.renderIntoDocument(<div spellCheck={true} />);
2490 + const el = ReactTestUtils.renderIntoDocument(<div spellCheck={true} />);
2491
2492 expect(el.getAttribute('spellCheck')).toBe('true');
2493 });
2494
2495 it('stringifies the boolean false for allowed attributes', function() {
2487 - var el = ReactTestUtils.renderIntoDocument(<div spellCheck={false} />);
2496 + const el = ReactTestUtils.renderIntoDocument(<div spellCheck={false} />);
2497
2498 expect(el.getAttribute('spellCheck')).toBe('false');
2499 });
2500
2501 it('stringifies implicit booleans for allowed attributes', function() {
2502 // eslint-disable-next-line react/jsx-boolean-value
2494 - var el = ReactTestUtils.renderIntoDocument(<div spellCheck />);
2503 + const el = ReactTestUtils.renderIntoDocument(<div spellCheck />);
2504
2505 expect(el.getAttribute('spellCheck')).toBe('true');
2506 });
@@ -2500,7 +2509,7 @@ describe('ReactDOMComponent', () => {
2509 describe('Hyphenated SVG elements', function() {
2510 it('the font-face element is not a custom element', function() {
2511 spyOnDev(console, 'error');
2503 - var el = ReactTestUtils.renderIntoDocument(
2512 + const el = ReactTestUtils.renderIntoDocument(
2513 <svg>
2514 <font-face x-height={false} />
2515 </svg>,
@@ -2520,7 +2529,7 @@ describe('ReactDOMComponent', () => {
2529
2530 it('the font-face element does not allow unknown boolean values', function() {
2531 spyOnDev(console, 'error');
2523 - var el = ReactTestUtils.renderIntoDocument(
2532 + const el = ReactTestUtils.renderIntoDocument(
2533 <svg>
2534 <font-face whatever={false} />
2535 </svg>,
packages/react-dom/src/__tests__/ReactDOMEventListener-test.js
+37 -37
@@ -10,8 +10,8 @@
10 'use strict';
11
12 describe('ReactDOMEventListener', () => {
13 - var React;
14 - var ReactDOM;
13 + let React;
14 + let ReactDOM;
15
16 beforeEach(() => {
17 jest.resetModules();
@@ -20,11 +20,11 @@ describe('ReactDOMEventListener', () => {
20 });
21
22 it('should dispatch events from outside React tree', () => {
23 - var mock = jest.fn();
23 + const mock = jest.fn();
24
25 - var container = document.createElement('div');
26 - var node = ReactDOM.render(<div onMouseEnter={mock} />, container);
27 - var otherNode = document.createElement('h1');
25 + const container = document.createElement('div');
26 + const node = ReactDOM.render(<div onMouseEnter={mock} />, container);
27 + const otherNode = document.createElement('h1');
28 document.body.appendChild(container);
29 document.body.appendChild(otherNode);
30
@@ -40,23 +40,23 @@ describe('ReactDOMEventListener', () => {
40
41 describe('Propagation', () => {
42 it('should propagate events one level down', () => {
43 - var mouseOut = jest.fn();
44 - var onMouseOut = event => mouseOut(event.currentTarget);
43 + const mouseOut = jest.fn();
44 + const onMouseOut = event => mouseOut(event.currentTarget);
45
46 - var childContainer = document.createElement('div');
47 - var parentContainer = document.createElement('div');
48 - var childNode = ReactDOM.render(
46 + const childContainer = document.createElement('div');
47 + const parentContainer = document.createElement('div');
48 + const childNode = ReactDOM.render(
49 <div onMouseOut={onMouseOut}>Child</div>,
50 childContainer,
51 );
52 - var parentNode = ReactDOM.render(
52 + const parentNode = ReactDOM.render(
53 <div onMouseOut={onMouseOut}>div</div>,
54 parentContainer,
55 );
56 parentNode.appendChild(childContainer);
57 document.body.appendChild(parentContainer);
58
59 - var nativeEvent = document.createEvent('Event');
59 + const nativeEvent = document.createEvent('Event');
60 nativeEvent.initEvent('mouseout', true, true);
61 childNode.dispatchEvent(nativeEvent);
62
@@ -69,21 +69,21 @@ describe('ReactDOMEventListener', () => {
69 });
70
71 it('should propagate events two levels down', () => {
72 - var mouseOut = jest.fn();
73 - var onMouseOut = event => mouseOut(event.currentTarget);
72 + const mouseOut = jest.fn();
73 + const onMouseOut = event => mouseOut(event.currentTarget);
74
75 - var childContainer = document.createElement('div');
76 - var parentContainer = document.createElement('div');
77 - var grandParentContainer = document.createElement('div');
78 - var childNode = ReactDOM.render(
75 + const childContainer = document.createElement('div');
76 + const parentContainer = document.createElement('div');
77 + const grandParentContainer = document.createElement('div');
78 + const childNode = ReactDOM.render(
79 <div onMouseOut={onMouseOut}>Child</div>,
80 childContainer,
81 );
82 - var parentNode = ReactDOM.render(
82 + const parentNode = ReactDOM.render(
83 <div onMouseOut={onMouseOut}>Parent</div>,
84 parentContainer,
85 );
86 - var grandParentNode = ReactDOM.render(
86 + const grandParentNode = ReactDOM.render(
87 <div onMouseOut={onMouseOut}>Parent</div>,
88 grandParentContainer,
89 );
@@ -92,7 +92,7 @@ describe('ReactDOMEventListener', () => {
92
93 document.body.appendChild(grandParentContainer);
94
95 - var nativeEvent = document.createEvent('Event');
95 + const nativeEvent = document.createEvent('Event');
96 nativeEvent.initEvent('mouseout', true, true);
97 childNode.dispatchEvent(nativeEvent);
98
@@ -107,7 +107,7 @@ describe('ReactDOMEventListener', () => {
107
108 // Regression test for https://github.com/facebook/react/issues/1105
109 it('should not get confused by disappearing elements', () => {
110 - var container = document.createElement('div');
110 + const container = document.createElement('div');
111 document.body.appendChild(container);
112 class MyComponent extends React.Component {
113 state = {clicked: false};
@@ -139,32 +139,32 @@ describe('ReactDOMEventListener', () => {
139 });
140
141 it('should batch between handlers from different roots', () => {
142 - var mock = jest.fn();
142 + const mock = jest.fn();
143
144 - var childContainer = document.createElement('div');
145 - var handleChildMouseOut = () => {
144 + const childContainer = document.createElement('div');
145 + const handleChildMouseOut = () => {
146 ReactDOM.render(<div>1</div>, childContainer);
147 mock(childNode.textContent);
148 };
149
150 - var parentContainer = document.createElement('div');
151 - var handleParentMouseOut = () => {
150 + const parentContainer = document.createElement('div');
151 + const handleParentMouseOut = () => {
152 ReactDOM.render(<div>2</div>, childContainer);
153 mock(childNode.textContent);
154 };
155
156 - var childNode = ReactDOM.render(
156 + const childNode = ReactDOM.render(
157 <div onMouseOut={handleChildMouseOut}>Child</div>,
158 childContainer,
159 );
160 - var parentNode = ReactDOM.render(
160 + const parentNode = ReactDOM.render(
161 <div onMouseOut={handleParentMouseOut}>Parent</div>,
162 parentContainer,
163 );
164 parentNode.appendChild(childContainer);
165 document.body.appendChild(parentContainer);
166
167 - var nativeEvent = document.createEvent('Event');
167 + const nativeEvent = document.createEvent('Event');
168 nativeEvent.initEvent('mouseout', true, true);
169 childNode.dispatchEvent(nativeEvent);
170
@@ -183,8 +183,8 @@ describe('ReactDOMEventListener', () => {
183 });
184
185 it('should not fire duplicate events for a React DOM tree', () => {
186 - var mouseOut = jest.fn();
187 - var onMouseOut = event => mouseOut(event.target);
186 + const mouseOut = jest.fn();
187 + const onMouseOut = event => mouseOut(event.target);
188
189 class Wrapper extends React.Component {
190 getInner = () => {
@@ -192,7 +192,7 @@ describe('ReactDOMEventListener', () => {
192 };
193
194 render() {
195 - var inner = <div ref="inner">Inner</div>;
195 + const inner = <div ref="inner">Inner</div>;
196 return (
197 <div>
198 <div onMouseOut={onMouseOut} id="outer">
@@ -203,12 +203,12 @@ describe('ReactDOMEventListener', () => {
203 }
204 }
205
206 - var container = document.createElement('div');
207 - var instance = ReactDOM.render(<Wrapper />, container);
206 + const container = document.createElement('div');
207 + const instance = ReactDOM.render(<Wrapper />, container);
208
209 document.body.appendChild(container);
210
211 - var nativeEvent = document.createEvent('Event');
211 + const nativeEvent = document.createEvent('Event');
212 nativeEvent.initEvent('mouseout', true, true);
213 instance.getInner().dispatchEvent(nativeEvent);
214
packages/react-dom/src/__tests__/ReactDOMFiber-test.js
+45 -45
@@ -9,17 +9,17 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactDOM = require('react-dom');
14 -var ReactTestUtils = require('react-dom/test-utils');
15 -var PropTypes = require('prop-types');
12 +const React = require('react');
13 +const ReactDOM = require('react-dom');
14 +const ReactTestUtils = require('react-dom/test-utils');
15 +const PropTypes = require('prop-types');
16
17 describe('ReactDOMFiber', () => {
18 function normalizeCodeLocInfo(str) {
19 return str && str.replace(/\(at .+?:\d+\)/g, '(at **)');
20 }
21
22 - var container;
22 + let container;
23
24 beforeEach(() => {
25 container = document.createElement('div');
@@ -175,16 +175,16 @@ describe('ReactDOMFiber', () => {
175 expect(firstNode.tagName).toBe('DIV');
176 });
177
178 - var svgEls, htmlEls, mathEls;
179 - var expectSVG = {ref: el => svgEls.push(el)};
180 - var expectHTML = {ref: el => htmlEls.push(el)};
181 - var expectMath = {ref: el => mathEls.push(el)};
178 + let svgEls, htmlEls, mathEls;
179 + const expectSVG = {ref: el => svgEls.push(el)};
180 + const expectHTML = {ref: el => htmlEls.push(el)};
181 + const expectMath = {ref: el => mathEls.push(el)};
182
183 - var usePortal = function(tree) {
183 + const usePortal = function(tree) {
184 return ReactDOM.createPortal(tree, document.createElement('div'));
185 };
186
187 - var assertNamespacesMatch = function(tree) {
187 + const assertNamespacesMatch = function(tree) {
188 container = document.createElement('div');
189 svgEls = [];
190 htmlEls = [];
@@ -206,7 +206,7 @@ describe('ReactDOMFiber', () => {
206 };
207
208 it('should render one portal', () => {
209 - var portalContainer = document.createElement('div');
209 + const portalContainer = document.createElement('div');
210
211 ReactDOM.render(
212 <div>{ReactDOM.createPortal(<div>portal</div>, portalContainer)}</div>,
@@ -222,7 +222,7 @@ describe('ReactDOMFiber', () => {
222
223 // TODO: remove in React 17
224 it('should support unstable_createPortal alias', () => {
225 - var portalContainer = document.createElement('div');
225 + const portalContainer = document.createElement('div');
226
227 ReactDOM.render(
228 <div>
@@ -239,10 +239,10 @@ describe('ReactDOMFiber', () => {
239 });
240
241 it('should render many portals', () => {
242 - var portalContainer1 = document.createElement('div');
243 - var portalContainer2 = document.createElement('div');
242 + const portalContainer1 = document.createElement('div');
243 + const portalContainer2 = document.createElement('div');
244
245 - var ops = [];
245 + const ops = [];
246 class Child extends React.Component {
247 componentDidMount() {
248 ops.push(`${this.props.name} componentDidMount`);
@@ -339,9 +339,9 @@ describe('ReactDOMFiber', () => {
339 });
340
341 it('should render nested portals', () => {
342 - var portalContainer1 = document.createElement('div');
343 - var portalContainer2 = document.createElement('div');
344 - var portalContainer3 = document.createElement('div');
342 + const portalContainer1 = document.createElement('div');
343 + const portalContainer2 = document.createElement('div');
344 + const portalContainer3 = document.createElement('div');
345
346 ReactDOM.render(
347 [
@@ -382,7 +382,7 @@ describe('ReactDOMFiber', () => {
382 });
383
384 it('should reconcile portal children', () => {
385 - var portalContainer = document.createElement('div');
385 + const portalContainer = document.createElement('div');
386
387 ReactDOM.render(
388 <div>{ReactDOM.createPortal(<div>portal:1</div>, portalContainer)}</div>,
@@ -676,7 +676,7 @@ describe('ReactDOMFiber', () => {
676 });
677
678 it('should pass portal context when rendering subtree elsewhere', () => {
679 - var portalContainer = document.createElement('div');
679 + const portalContainer = document.createElement('div');
680
681 class Component extends React.Component {
682 static contextTypes = {
@@ -710,7 +710,7 @@ describe('ReactDOMFiber', () => {
710 });
711
712 it('should update portal context if it changes due to setState', () => {
713 - var portalContainer = document.createElement('div');
713 + const portalContainer = document.createElement('div');
714
715 class Component extends React.Component {
716 static contextTypes = {
@@ -745,7 +745,7 @@ describe('ReactDOMFiber', () => {
745 }
746 }
747
748 - var instance = ReactDOM.render(<Parent />, container);
748 + const instance = ReactDOM.render(<Parent />, container);
749 expect(portalContainer.innerHTML).toBe('<div>initial-initial</div>');
750 expect(container.innerHTML).toBe('');
751 instance.setState({bar: 'changed'});
@@ -754,7 +754,7 @@ describe('ReactDOMFiber', () => {
754 });
755
756 it('should update portal context if it changes due to re-render', () => {
757 - var portalContainer = document.createElement('div');
757 + const portalContainer = document.createElement('div');
758
759 class Component extends React.Component {
760 static contextTypes = {
@@ -802,22 +802,22 @@ describe('ReactDOMFiber', () => {
802 }
803 }
804
805 - var myNodeA = ReactDOM.render(<MyNode />, container);
806 - var a = ReactDOM.findDOMNode(myNodeA);
805 + const myNodeA = ReactDOM.render(<MyNode />, container);
806 + const a = ReactDOM.findDOMNode(myNodeA);
807 expect(a.tagName).toBe('DIV');
808
809 - var myNodeB = ReactDOM.render(<MyNode flag={true} />, container);
809 + const myNodeB = ReactDOM.render(<MyNode flag={true} />, container);
810 expect(myNodeA === myNodeB).toBe(true);
811
812 - var b = ReactDOM.findDOMNode(myNodeB);
812 + const b = ReactDOM.findDOMNode(myNodeB);
813 expect(b.tagName).toBe('SPAN');
814 });
815
816 it('should bubble events from the portal to the parent', () => {
817 - var portalContainer = document.createElement('div');
817 + const portalContainer = document.createElement('div');
818
819 - var ops = [];
820 - var portal = null;
819 + const ops = [];
820 + let portal = null;
821
822 ReactDOM.render(
823 <div onClick={() => ops.push('parent clicked')}>
@@ -835,7 +835,7 @@ describe('ReactDOMFiber', () => {
835
836 expect(portal.tagName).toBe('DIV');
837
838 - var fakeNativeEvent = {};
838 + const fakeNativeEvent = {};
839 ReactTestUtils.simulateNativeEventOnNode(
840 'topClick',
841 portal,
@@ -846,12 +846,12 @@ describe('ReactDOMFiber', () => {
846 });
847
848 it('should not onMouseLeave when staying in the portal', () => {
849 - var portalContainer = document.createElement('div');
849 + const portalContainer = document.createElement('div');
850
851 - var ops = [];
852 - var firstTarget = null;
853 - var secondTarget = null;
854 - var thirdTarget = null;
851 + let ops = [];
852 + let firstTarget = null;
853 + let secondTarget = null;
854 + let thirdTarget = null;
855
856 function simulateMouseMove(from, to) {
857 if (from) {
@@ -990,7 +990,7 @@ describe('ReactDOMFiber', () => {
990 expect(node.tagName).toEqual('DIV');
991
992 function click(target) {
993 - var fakeNativeEvent = {};
993 + const fakeNativeEvent = {};
994 ReactTestUtils.simulateNativeEventOnNode(
995 'topClick',
996 target,
@@ -1136,18 +1136,18 @@ describe('ReactDOMFiber', () => {
1136 // 1. Create a new document through the use of iframe
1137 // 2. Set up the spy to make asserts when a text component
1138 // is rendered inside the iframe container
1139 - var textContent = 'Hello world';
1140 - var iframe = document.createElement('iframe');
1139 + const textContent = 'Hello world';
1140 + const iframe = document.createElement('iframe');
1141 document.body.appendChild(iframe);
1142 - var iframeDocument = iframe.contentDocument;
1142 + const iframeDocument = iframe.contentDocument;
1143 iframeDocument.write(
1144 '<!DOCTYPE html><html><head></head><body><div></div></body></html>',
1145 );
1146 iframeDocument.close();
1147 - var iframeContainer = iframeDocument.body.firstChild;
1147 + const iframeContainer = iframeDocument.body.firstChild;
1148
1149 - var actualDocument;
1150 - var textNode;
1149 + let actualDocument;
1150 + let textNode;
1151
1152 spyOnDevAndProd(iframeContainer, 'appendChild').and.callFake(node => {
1153 actualDocument = node.ownerDocument;
@@ -1163,7 +1163,7 @@ describe('ReactDOMFiber', () => {
1163 });
1164
1165 it('should mount into a document fragment', () => {
1166 - var fragment = document.createDocumentFragment();
1166 + const fragment = document.createDocumentFragment();
1167 ReactDOM.render(<div>foo</div>, fragment);
1168 expect(container.innerHTML).toBe('');
1169 container.appendChild(fragment);
packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.internal.js
+6 -6
@@ -9,15 +9,15 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactFeatureFlags = require('shared/ReactFeatureFlags');
12 +const React = require('react');
13 +let ReactFeatureFlags = require('shared/ReactFeatureFlags');
14
15 -var ReactDOM;
15 +let ReactDOM;
16
17 -var AsyncComponent = React.unstable_AsyncComponent;
17 +const AsyncComponent = React.unstable_AsyncComponent;
18
19 describe('ReactDOMFiberAsync', () => {
20 - var container;
20 + let container;
21
22 beforeEach(() => {
23 container = document.createElement('div');
@@ -25,7 +25,7 @@ describe('ReactDOMFiberAsync', () => {
25 });
26
27 it('renders synchronously by default', () => {
28 - var ops = [];
28 + const ops = [];
29 ReactDOM.render(<div>Hi</div>, container, () => {
30 ops.push(container.textContent);
31 });
packages/react-dom/src/__tests__/ReactDOMIframe-test.js
+6 -6
@@ -10,9 +10,9 @@
10 'use strict';
11
12 describe('ReactDOMIframe', () => {
13 - var React;
14 - var ReactDOM;
15 - var ReactTestUtils;
13 + let React;
14 + let ReactDOM;
15 + let ReactTestUtils;
16
17 beforeEach(() => {
18 React = require('react');
@@ -21,11 +21,11 @@ describe('ReactDOMIframe', () => {
21 });
22
23 it('should trigger load events', () => {
24 - var onLoadSpy = jasmine.createSpy();
25 - var iframe = React.createElement('iframe', {onLoad: onLoadSpy});
24 + const onLoadSpy = jasmine.createSpy();
25 + let iframe = React.createElement('iframe', {onLoad: onLoadSpy});
26 iframe = ReactTestUtils.renderIntoDocument(iframe);
27
28 - var loadEvent = document.createEvent('Event');
28 + const loadEvent = document.createEvent('Event');
29 loadEvent.initEvent('load', false, false);
30
31 ReactDOM.findDOMNode(iframe).dispatchEvent(loadEvent);
packages/react-dom/src/__tests__/ReactDOMInput-test.js
+175 -175
@@ -9,14 +9,14 @@
9
10 'use strict';
11
12 -var emptyFunction = require('fbjs/lib/emptyFunction');
12 +const emptyFunction = require('fbjs/lib/emptyFunction');
13
14 describe('ReactDOMInput', () => {
15 - var React;
16 - var ReactDOM;
17 - var ReactDOMServer;
18 - var ReactTestUtils;
19 - var setUntrackedValue;
15 + let React;
16 + let ReactDOM;
17 + let ReactDOMServer;
18 + let ReactTestUtils;
19 + let setUntrackedValue;
20
21 function normalizeCodeLocInfo(str) {
22 return str && str.replace(/\(at .+?:\d+\)/g, '(at **)');
@@ -42,12 +42,12 @@ describe('ReactDOMInput', () => {
42
43 it('should properly control a value even if no event listener exists', () => {
44 spyOnDev(console, 'error');
45 - var container = document.createElement('div');
46 - var stub = ReactDOM.render(<input type="text" value="lion" />, container);
45 + const container = document.createElement('div');
46 + const stub = ReactDOM.render(<input type="text" value="lion" />, container);
47
48 document.body.appendChild(container);
49
50 - var node = ReactDOM.findDOMNode(stub);
50 + const node = ReactDOM.findDOMNode(stub);
51 if (__DEV__) {
52 expect(console.error.calls.count()).toBe(1);
53 }
@@ -99,8 +99,8 @@ describe('ReactDOMInput', () => {
99 }
100 }
101
102 - var container = document.createElement('div');
103 - var instance = ReactDOM.render(<ControlledInputs />, container);
102 + const container = document.createElement('div');
103 + const instance = ReactDOM.render(<ControlledInputs />, container);
104
105 // We need it to be in the body to test native event dispatching.
106 document.body.appendChild(container);
@@ -152,8 +152,8 @@ describe('ReactDOMInput', () => {
152 }
153 }
154
155 - var container = document.createElement('div');
156 - var instance = ReactDOM.render(<ControlledInputs />, container);
155 + const container = document.createElement('div');
156 + const instance = ReactDOM.render(<ControlledInputs />, container);
157
158 // We need it to be in the body to test native event dispatching.
159 document.body.appendChild(container);
@@ -171,9 +171,9 @@ describe('ReactDOMInput', () => {
171
172 describe('switching text inputs between numeric and string numbers', () => {
173 it('does change the number 2 to "2.0" with no change handler', () => {
174 - var stub = <input type="text" value={2} onChange={jest.fn()} />;
174 + let stub = <input type="text" value={2} onChange={jest.fn()} />;
175 stub = ReactTestUtils.renderIntoDocument(stub);
176 - var node = ReactDOM.findDOMNode(stub);
176 + const node = ReactDOM.findDOMNode(stub);
177
178 node.value = '2.0';
179
@@ -184,9 +184,9 @@ describe('ReactDOMInput', () => {
184 });
185
186 it('does change the string "2" to "2.0" with no change handler', () => {
187 - var stub = <input type="text" value={'2'} onChange={jest.fn()} />;
187 + let stub = <input type="text" value={'2'} onChange={jest.fn()} />;
188 stub = ReactTestUtils.renderIntoDocument(stub);
189 - var node = ReactDOM.findDOMNode(stub);
189 + const node = ReactDOM.findDOMNode(stub);
190
191 node.value = '2.0';
192
@@ -211,8 +211,8 @@ describe('ReactDOMInput', () => {
211 }
212 }
213
214 - var stub = ReactTestUtils.renderIntoDocument(<Stub />);
215 - var node = ReactDOM.findDOMNode(stub);
214 + const stub = ReactTestUtils.renderIntoDocument(<Stub />);
215 + const node = ReactDOM.findDOMNode(stub);
216
217 node.value = '2.0';
218
@@ -234,8 +234,8 @@ describe('ReactDOMInput', () => {
234 }
235 }
236
237 - var stub = ReactTestUtils.renderIntoDocument(<Stub />);
238 - var node = ReactDOM.findDOMNode(stub);
237 + const stub = ReactTestUtils.renderIntoDocument(<Stub />);
238 + const node = ReactDOM.findDOMNode(stub);
239 stub.setState({value: '0.98'});
240
241 expect(node.value).toEqual('0.98');
@@ -276,8 +276,8 @@ describe('ReactDOMInput', () => {
276 }
277 }
278
279 - var stub = ReactTestUtils.renderIntoDocument(<Stub />);
280 - var node = ReactDOM.findDOMNode(stub);
279 + const stub = ReactTestUtils.renderIntoDocument(<Stub />);
280 + const node = ReactDOM.findDOMNode(stub);
281 stub.setState({value: '3'});
282
283 expect(node.value).toEqual('3');
@@ -291,9 +291,9 @@ describe('ReactDOMInput', () => {
291 });
292
293 it('should display `defaultValue` of number 0', () => {
294 - var stub = <input type="text" defaultValue={0} />;
294 + let stub = <input type="text" defaultValue={0} />;
295 stub = ReactTestUtils.renderIntoDocument(stub);
296 - var node = ReactDOM.findDOMNode(stub);
296 + const node = ReactDOM.findDOMNode(stub);
297
298 expect(node.getAttribute('value')).toBe('0');
299 expect(node.value).toBe('0');
@@ -306,8 +306,8 @@ describe('ReactDOMInput', () => {
306 }
307 }
308
309 - var component = ReactTestUtils.renderIntoDocument(<Test />);
310 - var node = ReactDOM.findDOMNode(component);
309 + const component = ReactTestUtils.renderIntoDocument(<Test />);
310 + const node = ReactDOM.findDOMNode(component);
311
312 Object.defineProperty(node, 'defaultValue', {
313 get() {
@@ -324,25 +324,25 @@ describe('ReactDOMInput', () => {
324 });
325
326 it('should display "true" for `defaultValue` of `true`', () => {
327 - var stub = <input type="text" defaultValue={true} />;
327 + let stub = <input type="text" defaultValue={true} />;
328 stub = ReactTestUtils.renderIntoDocument(stub);
329 - var node = ReactDOM.findDOMNode(stub);
329 + const node = ReactDOM.findDOMNode(stub);
330
331 expect(node.value).toBe('true');
332 });
333
334 it('should display "false" for `defaultValue` of `false`', () => {
335 - var stub = <input type="text" defaultValue={false} />;
335 + let stub = <input type="text" defaultValue={false} />;
336 stub = ReactTestUtils.renderIntoDocument(stub);
337 - var node = ReactDOM.findDOMNode(stub);
337 + const node = ReactDOM.findDOMNode(stub);
338
339 expect(node.value).toBe('false');
340 });
341
342 it('should update `defaultValue` for uncontrolled input', () => {
343 - var container = document.createElement('div');
343 + const container = document.createElement('div');
344
345 - var node = ReactDOM.render(
345 + const node = ReactDOM.render(
346 <input type="text" defaultValue="0" />,
347 container,
348 );
@@ -356,9 +356,9 @@ describe('ReactDOMInput', () => {
356 });
357
358 it('should update `defaultValue` for uncontrolled date/time input', () => {
359 - var container = document.createElement('div');
359 + const container = document.createElement('div');
360
361 - var node = ReactDOM.render(
361 + const node = ReactDOM.render(
362 <input type="date" defaultValue="1980-01-01" />,
363 container,
364 );
@@ -375,8 +375,8 @@ describe('ReactDOMInput', () => {
375
376 it('should take `defaultValue` when changing to uncontrolled input', () => {
377 spyOnDev(console, 'error');
378 - var container = document.createElement('div');
379 - var node = ReactDOM.render(
378 + const container = document.createElement('div');
379 + const node = ReactDOM.render(
380 <input type="text" value="0" readOnly="true" />,
381 container,
382 );
@@ -394,79 +394,79 @@ describe('ReactDOMInput', () => {
394 });
395
396 it('should render defaultValue for SSR', () => {
397 - var markup = ReactDOMServer.renderToString(
397 + const markup = ReactDOMServer.renderToString(
398 <input type="text" defaultValue="1" />,
399 );
400 - var div = document.createElement('div');
400 + const div = document.createElement('div');
401 div.innerHTML = markup;
402 expect(div.firstChild.getAttribute('value')).toBe('1');
403 expect(div.firstChild.getAttribute('defaultValue')).toBe(null);
404 });
405
406 it('should render value for SSR', () => {
407 - var element = <input type="text" value="1" onChange={() => {}} />;
408 - var markup = ReactDOMServer.renderToString(element);
409 - var div = document.createElement('div');
407 + const element = <input type="text" value="1" onChange={() => {}} />;
408 + const markup = ReactDOMServer.renderToString(element);
409 + const div = document.createElement('div');
410 div.innerHTML = markup;
411 expect(div.firstChild.getAttribute('value')).toBe('1');
412 expect(div.firstChild.getAttribute('defaultValue')).toBe(null);
413 });
414
415 it('should render name attribute if it is supplied', () => {
416 - var container = document.createElement('div');
417 - var node = ReactDOM.render(<input type="text" name="name" />, container);
416 + const container = document.createElement('div');
417 + const node = ReactDOM.render(<input type="text" name="name" />, container);
418 expect(node.name).toBe('name');
419 expect(container.firstChild.getAttribute('name')).toBe('name');
420 });
421
422 it('should render name attribute if it is supplied for SSR', () => {
423 - var element = <input type="text" name="name" />;
424 - var markup = ReactDOMServer.renderToString(element);
425 - var div = document.createElement('div');
423 + const element = <input type="text" name="name" />;
424 + const markup = ReactDOMServer.renderToString(element);
425 + const div = document.createElement('div');
426 div.innerHTML = markup;
427 expect(div.firstChild.getAttribute('name')).toBe('name');
428 });
429
430 it('should not render name attribute if it is not supplied', () => {
431 - var container = document.createElement('div');
431 + const container = document.createElement('div');
432 ReactDOM.render(<input type="text" />, container);
433 expect(container.firstChild.getAttribute('name')).toBe(null);
434 });
435
436 it('should not render name attribute if it is not supplied for SSR', () => {
437 - var element = <input type="text" />;
438 - var markup = ReactDOMServer.renderToString(element);
439 - var div = document.createElement('div');
437 + const element = <input type="text" />;
438 + const markup = ReactDOMServer.renderToString(element);
439 + const div = document.createElement('div');
440 div.innerHTML = markup;
441 expect(div.firstChild.getAttribute('name')).toBe(null);
442 });
443
444 it('should display "foobar" for `defaultValue` of `objToString`', () => {
445 - var objToString = {
445 + const objToString = {
446 toString: function() {
447 return 'foobar';
448 },
449 };
450
451 - var stub = <input type="text" defaultValue={objToString} />;
451 + let stub = <input type="text" defaultValue={objToString} />;
452 stub = ReactTestUtils.renderIntoDocument(stub);
453 - var node = ReactDOM.findDOMNode(stub);
453 + const node = ReactDOM.findDOMNode(stub);
454
455 expect(node.value).toBe('foobar');
456 });
457
458 it('should display `value` of number 0', () => {
459 - var stub = <input type="text" value={0} />;
459 + let stub = <input type="text" value={0} />;
460 stub = ReactTestUtils.renderIntoDocument(stub);
461 - var node = ReactDOM.findDOMNode(stub);
461 + const node = ReactDOM.findDOMNode(stub);
462
463 expect(node.value).toBe('0');
464 });
465
466 it('should allow setting `value` to `true`', () => {
467 - var container = document.createElement('div');
468 - var stub = <input type="text" value="yolo" onChange={emptyFunction} />;
469 - var node = ReactDOM.render(stub, container);
467 + const container = document.createElement('div');
468 + let stub = <input type="text" value="yolo" onChange={emptyFunction} />;
469 + const node = ReactDOM.render(stub, container);
470
471 expect(node.value).toBe('yolo');
472
@@ -478,9 +478,9 @@ describe('ReactDOMInput', () => {
478 });
479
480 it('should allow setting `value` to `false`', () => {
481 - var container = document.createElement('div');
482 - var stub = <input type="text" value="yolo" onChange={emptyFunction} />;
483 - var node = ReactDOM.render(stub, container);
481 + const container = document.createElement('div');
482 + let stub = <input type="text" value="yolo" onChange={emptyFunction} />;
483 + const node = ReactDOM.render(stub, container);
484
485 expect(node.value).toBe('yolo');
486
@@ -492,13 +492,13 @@ describe('ReactDOMInput', () => {
492 });
493
494 it('should allow setting `value` to `objToString`', () => {
495 - var container = document.createElement('div');
496 - var stub = <input type="text" value="foo" onChange={emptyFunction} />;
497 - var node = ReactDOM.render(stub, container);
495 + const container = document.createElement('div');
496 + let stub = <input type="text" value="foo" onChange={emptyFunction} />;
497 + const node = ReactDOM.render(stub, container);
498
499 expect(node.value).toBe('foo');
500
501 - var objToString = {
501 + const objToString = {
502 toString: function() {
503 return 'foobar';
504 },
@@ -511,12 +511,12 @@ describe('ReactDOMInput', () => {
511 });
512
513 it('should not incur unnecessary DOM mutations', () => {
514 - var container = document.createElement('div');
514 + const container = document.createElement('div');
515 ReactDOM.render(<input value="a" onChange={() => {}} />, container);
516
517 - var node = container.firstChild;
518 - var nodeValue = 'a';
519 - var nodeValueSetter = jest.genMockFn();
517 + const node = container.firstChild;
518 + let nodeValue = 'a';
519 + const nodeValueSetter = jest.genMockFn();
520 Object.defineProperty(node, 'value', {
521 get: function() {
522 return nodeValue;
@@ -534,12 +534,12 @@ describe('ReactDOMInput', () => {
534 });
535
536 it('should not incur unnecessary DOM mutations for numeric type conversion', () => {
537 - var container = document.createElement('div');
537 + const container = document.createElement('div');
538 ReactDOM.render(<input value="0" onChange={() => {}} />, container);
539
540 - var node = container.firstChild;
541 - var nodeValue = '0';
542 - var nodeValueSetter = jest.genMockFn();
540 + const node = container.firstChild;
541 + let nodeValue = '0';
542 + const nodeValueSetter = jest.genMockFn();
543 Object.defineProperty(node, 'value', {
544 get: function() {
545 return nodeValue;
@@ -554,12 +554,12 @@ describe('ReactDOMInput', () => {
554 });
555
556 it('should not incur unnecessary DOM mutations for the boolean type conversion', () => {
557 - var container = document.createElement('div');
557 + const container = document.createElement('div');
558 ReactDOM.render(<input value="true" onChange={() => {}} />, container);
559
560 - var node = container.firstChild;
561 - var nodeValue = 'true';
562 - var nodeValueSetter = jest.genMockFn();
560 + const node = container.firstChild;
561 + let nodeValue = 'true';
562 + const nodeValueSetter = jest.genMockFn();
563 Object.defineProperty(node, 'value', {
564 get: function() {
565 return nodeValue;
@@ -574,9 +574,9 @@ describe('ReactDOMInput', () => {
574 });
575
576 it('should properly control a value of number `0`', () => {
577 - var stub = <input type="text" value={0} onChange={emptyFunction} />;
577 + let stub = <input type="text" value={0} onChange={emptyFunction} />;
578 stub = ReactTestUtils.renderIntoDocument(stub);
579 - var node = ReactDOM.findDOMNode(stub);
579 + const node = ReactDOM.findDOMNode(stub);
580
581 node.value = 'giraffe';
582 ReactTestUtils.Simulate.change(node);
@@ -584,9 +584,9 @@ describe('ReactDOMInput', () => {
584 });
585
586 it('should properly control 0.0 for a text input', () => {
587 - var stub = <input type="text" value={0} onChange={emptyFunction} />;
587 + let stub = <input type="text" value={0} onChange={emptyFunction} />;
588 stub = ReactTestUtils.renderIntoDocument(stub);
589 - var node = ReactDOM.findDOMNode(stub);
589 + const node = ReactDOM.findDOMNode(stub);
590
591 node.value = '0.0';
592 ReactTestUtils.Simulate.change(node, {target: {value: '0.0'}});
@@ -594,9 +594,9 @@ describe('ReactDOMInput', () => {
594 });
595
596 it('should properly control 0.0 for a number input', () => {
597 - var stub = <input type="number" value={0} onChange={emptyFunction} />;
597 + let stub = <input type="number" value={0} onChange={emptyFunction} />;
598 stub = ReactTestUtils.renderIntoDocument(stub);
599 - var node = ReactDOM.findDOMNode(stub);
599 + const node = ReactDOM.findDOMNode(stub);
600
601 node.value = '0.0';
602 ReactTestUtils.Simulate.change(node, {target: {value: '0.0'}});
@@ -604,24 +604,24 @@ describe('ReactDOMInput', () => {
604 });
605
606 it('should properly transition from an empty value to 0', function() {
607 - var container = document.createElement('div');
607 + const container = document.createElement('div');
608
609 ReactDOM.render(<input type="text" value="" />, container);
610 ReactDOM.render(<input type="text" value={0} />, container);
611
612 - var node = container.firstChild;
612 + const node = container.firstChild;
613
614 expect(node.value).toBe('0');
615 expect(node.defaultValue).toBe('0');
616 });
617
618 it('should properly transition from 0 to an empty value', function() {
619 - var container = document.createElement('div');
619 + const container = document.createElement('div');
620
621 ReactDOM.render(<input type="text" value={0} />, container);
622 ReactDOM.render(<input type="text" value="" />, container);
623
624 - var node = container.firstChild;
624 + const node = container.firstChild;
625
626 expect(node.value).toBe('');
627 expect(node.defaultValue).toBe('');
@@ -664,18 +664,18 @@ describe('ReactDOMInput', () => {
664 });
665
666 it('should have the correct target value', () => {
667 - var handled = false;
668 - var handler = function(event) {
667 + let handled = false;
668 + const handler = function(event) {
669 expect(event.target.nodeName).toBe('INPUT');
670 handled = true;
671 };
672 - var stub = <input type="text" value={0} onChange={handler} />;
673 - var container = document.createElement('div');
674 - var node = ReactDOM.render(stub, container);
672 + const stub = <input type="text" value={0} onChange={handler} />;
673 + const container = document.createElement('div');
674 + const node = ReactDOM.render(stub, container);
675
676 setUntrackedValue.call(node, 'giraffe');
677
678 - var fakeNativeEvent = function() {};
678 + const fakeNativeEvent = function() {};
679 fakeNativeEvent.target = node;
680 fakeNativeEvent.path = [node, container];
681 ReactTestUtils.simulateNativeEventOnNode('topInput', node, fakeNativeEvent);
@@ -684,9 +684,9 @@ describe('ReactDOMInput', () => {
684 });
685
686 it('should not set a value for submit buttons unnecessarily', () => {
687 - var stub = <input type="submit" />;
687 + let stub = <input type="submit" />;
688 stub = ReactTestUtils.renderIntoDocument(stub);
689 - var node = ReactDOM.findDOMNode(stub);
689 + const node = ReactDOM.findDOMNode(stub);
690
691 // The value shouldn't be '', or else the button will have no text; it
692 // should have the default "Submit" or "Submit Query" label. Most browsers
@@ -726,10 +726,10 @@ describe('ReactDOMInput', () => {
726 }
727 }
728
729 - var stub = ReactTestUtils.renderIntoDocument(<RadioGroup />);
730 - var aNode = stub.refs.a;
731 - var bNode = stub.refs.b;
732 - var cNode = stub.refs.c;
729 + const stub = ReactTestUtils.renderIntoDocument(<RadioGroup />);
730 + const aNode = stub.refs.a;
731 + const bNode = stub.refs.b;
732 + const cNode = stub.refs.c;
733
734 expect(aNode.checked).toBe(true);
735 expect(bNode.checked).toBe(false);
@@ -782,23 +782,23 @@ describe('ReactDOMInput', () => {
782 }
783 }
784
785 - var stub = ReactTestUtils.renderIntoDocument(<App />);
786 - var buttonNode = ReactDOM.findDOMNode(stub).childNodes[0];
787 - var firstRadioNode = ReactDOM.findDOMNode(stub).childNodes[1];
785 + const stub = ReactTestUtils.renderIntoDocument(<App />);
786 + const buttonNode = ReactDOM.findDOMNode(stub).childNodes[0];
787 + const firstRadioNode = ReactDOM.findDOMNode(stub).childNodes[1];
788 expect(firstRadioNode.checked).toBe(false);
789 ReactTestUtils.Simulate.click(buttonNode);
790 expect(firstRadioNode.checked).toBe(true);
791 });
792
793 it('should control radio buttons if the tree updates during render', () => {
794 - var sharedParent = document.createElement('div');
795 - var container1 = document.createElement('div');
796 - var container2 = document.createElement('div');
794 + const sharedParent = document.createElement('div');
795 + const container1 = document.createElement('div');
796 + const container2 = document.createElement('div');
797
798 sharedParent.appendChild(container1);
799
800 - var aNode;
801 - var bNode;
800 + let aNode;
801 + let bNode;
802 class ComponentA extends React.Component {
803 componentDidMount() {
804 ReactDOM.render(<ComponentB />, container2);
@@ -889,11 +889,11 @@ describe('ReactDOMInput', () => {
889 });
890
891 it('should have a this value of undefined if bind is not used', () => {
892 - var unboundInputOnChange = function() {
892 + const unboundInputOnChange = function() {
893 expect(this).toBe(undefined);
894 };
895
896 - var instance = <input type="text" onChange={unboundInputOnChange} />;
896 + let instance = <input type="text" onChange={unboundInputOnChange} />;
897 instance = ReactTestUtils.renderIntoDocument(instance);
898
899 ReactTestUtils.Simulate.change(instance);
@@ -917,7 +917,7 @@ describe('ReactDOMInput', () => {
917 });
918
919 it('should update defaultValue to empty string', () => {
920 - var container = document.createElement('div');
920 + const container = document.createElement('div');
921 ReactDOM.render(<input type="text" defaultValue={'foo'} />, container);
922 ReactDOM.render(<input type="text" defaultValue={''} />, container);
923 expect(container.firstChild.defaultValue).toBe('');
@@ -1000,10 +1000,10 @@ describe('ReactDOMInput', () => {
1000
1001 it('should warn if controlled input switches to uncontrolled (value is undefined)', () => {
1002 spyOnDev(console, 'error');
1003 - var stub = (
1003 + const stub = (
1004 <input type="text" value="controlled" onChange={emptyFunction} />
1005 );
1006 - var container = document.createElement('div');
1006 + const container = document.createElement('div');
1007 ReactDOM.render(stub, container);
1008 ReactDOM.render(<input type="text" />, container);
1009 if (__DEV__) {
@@ -1020,10 +1020,10 @@ describe('ReactDOMInput', () => {
1020
1021 it('should warn if controlled input switches to uncontrolled (value is null)', () => {
1022 spyOnDev(console, 'error');
1023 - var stub = (
1023 + const stub = (
1024 <input type="text" value="controlled" onChange={emptyFunction} />
1025 );
1026 - var container = document.createElement('div');
1026 + const container = document.createElement('div');
1027 ReactDOM.render(stub, container);
1028 ReactDOM.render(<input type="text" value={null} />, container);
1029 if (__DEV__) {
@@ -1040,10 +1040,10 @@ describe('ReactDOMInput', () => {
1040
1041 it('should warn if controlled input switches to uncontrolled with defaultValue', () => {
1042 spyOnDev(console, 'error');
1043 - var stub = (
1043 + const stub = (
1044 <input type="text" value="controlled" onChange={emptyFunction} />
1045 );
1046 - var container = document.createElement('div');
1046 + const container = document.createElement('div');
1047 ReactDOM.render(stub, container);
1048 ReactDOM.render(
1049 <input type="text" defaultValue="uncontrolled" />,
@@ -1063,8 +1063,8 @@ describe('ReactDOMInput', () => {
1063
1064 it('should warn if uncontrolled input (value is undefined) switches to controlled', () => {
1065 spyOnDev(console, 'error');
1066 - var stub = <input type="text" />;
1067 - var container = document.createElement('div');
1066 + const stub = <input type="text" />;
1067 + const container = document.createElement('div');
1068 ReactDOM.render(stub, container);
1069 ReactDOM.render(<input type="text" value="controlled" />, container);
1070 if (__DEV__) {
@@ -1081,8 +1081,8 @@ describe('ReactDOMInput', () => {
1081
1082 it('should warn if uncontrolled input (value is null) switches to controlled', () => {
1083 spyOnDev(console, 'error');
1084 - var stub = <input type="text" value={null} />;
1085 - var container = document.createElement('div');
1084 + const stub = <input type="text" value={null} />;
1085 + const container = document.createElement('div');
1086 ReactDOM.render(stub, container);
1087 ReactDOM.render(<input type="text" value="controlled" />, container);
1088 if (__DEV__) {
@@ -1099,10 +1099,10 @@ describe('ReactDOMInput', () => {
1099
1100 it('should warn if controlled checkbox switches to uncontrolled (checked is undefined)', () => {
1101 spyOnDev(console, 'error');
1102 - var stub = (
1102 + const stub = (
1103 <input type="checkbox" checked={true} onChange={emptyFunction} />
1104 );
1105 - var container = document.createElement('div');
1105 + const container = document.createElement('div');
1106 ReactDOM.render(stub, container);
1107 ReactDOM.render(<input type="checkbox" />, container);
1108 if (__DEV__) {
@@ -1119,10 +1119,10 @@ describe('ReactDOMInput', () => {
1119
1120 it('should warn if controlled checkbox switches to uncontrolled (checked is null)', () => {
1121 spyOnDev(console, 'error');
1122 - var stub = (
1122 + const stub = (
1123 <input type="checkbox" checked={true} onChange={emptyFunction} />
1124 );
1125 - var container = document.createElement('div');
1125 + const container = document.createElement('div');
1126 ReactDOM.render(stub, container);
1127 ReactDOM.render(<input type="checkbox" checked={null} />, container);
1128 if (__DEV__) {
@@ -1139,10 +1139,10 @@ describe('ReactDOMInput', () => {
1139
1140 it('should warn if controlled checkbox switches to uncontrolled with defaultChecked', () => {
1141 spyOnDev(console, 'error');
1142 - var stub = (
1142 + const stub = (
1143 <input type="checkbox" checked={true} onChange={emptyFunction} />
1144 );
1145 - var container = document.createElement('div');
1145 + const container = document.createElement('div');
1146 ReactDOM.render(stub, container);
1147 ReactDOM.render(<input type="checkbox" defaultChecked={true} />, container);
1148 if (__DEV__) {
@@ -1159,8 +1159,8 @@ describe('ReactDOMInput', () => {
1159
1160 it('should warn if uncontrolled checkbox (checked is undefined) switches to controlled', () => {
1161 spyOnDev(console, 'error');
1162 - var stub = <input type="checkbox" />;
1163 - var container = document.createElement('div');
1162 + const stub = <input type="checkbox" />;
1163 + const container = document.createElement('div');
1164 ReactDOM.render(stub, container);
1165 ReactDOM.render(<input type="checkbox" checked={true} />, container);
1166 if (__DEV__) {
@@ -1177,8 +1177,8 @@ describe('ReactDOMInput', () => {
1177
1178 it('should warn if uncontrolled checkbox (checked is null) switches to controlled', () => {
1179 spyOnDev(console, 'error');
1180 - var stub = <input type="checkbox" checked={null} />;
1181 - var container = document.createElement('div');
1180 + const stub = <input type="checkbox" checked={null} />;
1181 + const container = document.createElement('div');
1182 ReactDOM.render(stub, container);
1183 ReactDOM.render(<input type="checkbox" checked={true} />, container);
1184 if (__DEV__) {
@@ -1195,8 +1195,8 @@ describe('ReactDOMInput', () => {
1195
1196 it('should warn if controlled radio switches to uncontrolled (checked is undefined)', () => {
1197 spyOnDev(console, 'error');
1198 - var stub = <input type="radio" checked={true} onChange={emptyFunction} />;
1199 - var container = document.createElement('div');
1198 + const stub = <input type="radio" checked={true} onChange={emptyFunction} />;
1199 + const container = document.createElement('div');
1200 ReactDOM.render(stub, container);
1201 ReactDOM.render(<input type="radio" />, container);
1202 if (__DEV__) {
@@ -1213,8 +1213,8 @@ describe('ReactDOMInput', () => {
1213
1214 it('should warn if controlled radio switches to uncontrolled (checked is null)', () => {
1215 spyOnDev(console, 'error');
1216 - var stub = <input type="radio" checked={true} onChange={emptyFunction} />;
1217 - var container = document.createElement('div');
1216 + const stub = <input type="radio" checked={true} onChange={emptyFunction} />;
1217 + const container = document.createElement('div');
1218 ReactDOM.render(stub, container);
1219 ReactDOM.render(<input type="radio" checked={null} />, container);
1220 if (__DEV__) {
@@ -1231,8 +1231,8 @@ describe('ReactDOMInput', () => {
1231
1232 it('should warn if controlled radio switches to uncontrolled with defaultChecked', () => {
1233 spyOnDev(console, 'error');
1234 - var stub = <input type="radio" checked={true} onChange={emptyFunction} />;
1235 - var container = document.createElement('div');
1234 + const stub = <input type="radio" checked={true} onChange={emptyFunction} />;
1235 + const container = document.createElement('div');
1236 ReactDOM.render(stub, container);
1237 ReactDOM.render(<input type="radio" defaultChecked={true} />, container);
1238 if (__DEV__) {
@@ -1249,8 +1249,8 @@ describe('ReactDOMInput', () => {
1249
1250 it('should warn if uncontrolled radio (checked is undefined) switches to controlled', () => {
1251 spyOnDev(console, 'error');
1252 - var stub = <input type="radio" />;
1253 - var container = document.createElement('div');
1252 + const stub = <input type="radio" />;
1253 + const container = document.createElement('div');
1254 ReactDOM.render(stub, container);
1255 ReactDOM.render(<input type="radio" checked={true} />, container);
1256 if (__DEV__) {
@@ -1267,8 +1267,8 @@ describe('ReactDOMInput', () => {
1267
1268 it('should warn if uncontrolled radio (checked is null) switches to controlled', () => {
1269 spyOnDev(console, 'error');
1270 - var stub = <input type="radio" checked={null} />;
1271 - var container = document.createElement('div');
1270 + const stub = <input type="radio" checked={null} />;
1271 + const container = document.createElement('div');
1272 ReactDOM.render(stub, container);
1273 ReactDOM.render(<input type="radio" checked={true} />, container);
1274 if (__DEV__) {
@@ -1284,7 +1284,7 @@ describe('ReactDOMInput', () => {
1284 });
1285
1286 it('should not warn if radio value changes but never becomes controlled', () => {
1287 - var container = document.createElement('div');
1287 + const container = document.createElement('div');
1288 ReactDOM.render(<input type="radio" value="value" />, container);
1289 ReactDOM.render(<input type="radio" />, container);
1290 ReactDOM.render(
@@ -1299,7 +1299,7 @@ describe('ReactDOMInput', () => {
1299 });
1300
1301 it('should not warn if radio value changes but never becomes uncontrolled', () => {
1302 - var container = document.createElement('div');
1302 + const container = document.createElement('div');
1303 ReactDOM.render(
1304 <input type="radio" checked={false} onChange={() => null} />,
1305 container,
@@ -1318,7 +1318,7 @@ describe('ReactDOMInput', () => {
1318
1319 it('should warn if radio checked false changes to become uncontrolled', () => {
1320 spyOnDev(console, 'error');
1321 - var container = document.createElement('div');
1321 + const container = document.createElement('div');
1322 ReactDOM.render(
1323 <input
1324 type="radio"
@@ -1341,11 +1341,11 @@ describe('ReactDOMInput', () => {
1341 });
1342
1343 it('sets type, step, min, max before value always', () => {
1344 - var log = [];
1345 - var originalCreateElement = document.createElement;
1344 + const log = [];
1345 + const originalCreateElement = document.createElement;
1346 spyOnDevAndProd(document, 'createElement').and.callFake(function(type) {
1347 - var el = originalCreateElement.apply(this, arguments);
1348 - var value = '';
1347 + const el = originalCreateElement.apply(this, arguments);
1348 + let value = '';
1349
1350 if (type === 'input') {
1351 Object.defineProperty(el, 'value', {
@@ -1387,7 +1387,7 @@ describe('ReactDOMInput', () => {
1387 });
1388
1389 it('sets value properly with type coming later in props', () => {
1390 - var input = ReactTestUtils.renderIntoDocument(
1390 + const input = ReactTestUtils.renderIntoDocument(
1391 <input value="hi" type="radio" />,
1392 );
1393 expect(input.value).toBe('hi');
@@ -1398,13 +1398,13 @@ describe('ReactDOMInput', () => {
1398 state = {type: 'number', value: 1000};
1399
1400 render() {
1401 - var {value, type} = this.state;
1401 + const {value, type} = this.state;
1402 return <input onChange={() => {}} type={type} value={value} />;
1403 }
1404 }
1405
1406 - var input = ReactTestUtils.renderIntoDocument(<Input />);
1407 - var node = ReactDOM.findDOMNode(input);
1406 + const input = ReactTestUtils.renderIntoDocument(<Input />);
1407 + const node = ReactDOM.findDOMNode(input);
1408
1409 // If the value is set before the type, a validation warning will raise and
1410 // the value will not be assigned.
@@ -1417,11 +1417,11 @@ describe('ReactDOMInput', () => {
1417 return JSON.stringify(x, null, 2);
1418 }
1419
1420 - var log = [];
1421 - var originalCreateElement = document.createElement;
1420 + const log = [];
1421 + const originalCreateElement = document.createElement;
1422 spyOnDevAndProd(document, 'createElement').and.callFake(function(type) {
1423 - var el = originalCreateElement.apply(this, arguments);
1424 - var value = '';
1423 + const el = originalCreateElement.apply(this, arguments);
1424 + let value = '';
1425 if (type === 'input') {
1426 Object.defineProperty(el, 'value', {
1427 get: function() {
@@ -1461,8 +1461,8 @@ describe('ReactDOMInput', () => {
1461 this.setState({value: event.target.value});
1462 };
1463 render() {
1464 - var type = this.props.type;
1465 - var value = this.state.value;
1464 + const type = this.props.type;
1465 + const value = this.state.value;
1466
1467 return <input type={type} value={value} onChange={this.onChange} />;
1468 }
@@ -1470,9 +1470,9 @@ describe('ReactDOMInput', () => {
1470 }
1471
1472 it('always sets the attribute when values change on text inputs', function() {
1473 - var Input = getTestInput();
1474 - var stub = ReactTestUtils.renderIntoDocument(<Input type="text" />);
1475 - var node = ReactDOM.findDOMNode(stub);
1473 + const Input = getTestInput();
1474 + const stub = ReactTestUtils.renderIntoDocument(<Input type="text" />);
1475 + const node = ReactDOM.findDOMNode(stub);
1476
1477 ReactTestUtils.Simulate.change(node, {target: {value: '2'}});
1478
@@ -1480,11 +1480,11 @@ describe('ReactDOMInput', () => {
1480 });
1481
1482 it('does not set the value attribute on number inputs if focused', () => {
1483 - var Input = getTestInput();
1484 - var stub = ReactTestUtils.renderIntoDocument(
1483 + const Input = getTestInput();
1484 + const stub = ReactTestUtils.renderIntoDocument(
1485 <Input type="number" value="1" />,
1486 );
1487 - var node = ReactDOM.findDOMNode(stub);
1487 + const node = ReactDOM.findDOMNode(stub);
1488
1489 node.focus();
1490
@@ -1494,11 +1494,11 @@ describe('ReactDOMInput', () => {
1494 });
1495
1496 it('sets the value attribute on number inputs on blur', () => {
1497 - var Input = getTestInput();
1498 - var stub = ReactTestUtils.renderIntoDocument(
1497 + const Input = getTestInput();
1498 + const stub = ReactTestUtils.renderIntoDocument(
1499 <Input type="number" value="1" />,
1500 );
1501 - var node = ReactDOM.findDOMNode(stub);
1501 + const node = ReactDOM.findDOMNode(stub);
1502
1503 ReactTestUtils.Simulate.change(node, {target: {value: '2'}});
1504 ReactTestUtils.SimulateNative.blur(node);
@@ -1507,10 +1507,10 @@ describe('ReactDOMInput', () => {
1507 });
1508
1509 it('an uncontrolled number input will not update the value attribute on blur', () => {
1510 - var stub = ReactTestUtils.renderIntoDocument(
1510 + const stub = ReactTestUtils.renderIntoDocument(
1511 <input type="number" defaultValue="1" />,
1512 );
1513 - var node = ReactDOM.findDOMNode(stub);
1513 + const node = ReactDOM.findDOMNode(stub);
1514
1515 node.value = 4;
1516
@@ -1520,10 +1520,10 @@ describe('ReactDOMInput', () => {
1520 });
1521
1522 it('an uncontrolled text input will not update the value attribute on blur', () => {
1523 - var stub = ReactTestUtils.renderIntoDocument(
1523 + const stub = ReactTestUtils.renderIntoDocument(
1524 <input type="text" defaultValue="1" />,
1525 );
1526 - var node = ReactDOM.findDOMNode(stub);
1526 + const node = ReactDOM.findDOMNode(stub);
1527
1528 node.value = 4;
1529
@@ -1534,7 +1534,7 @@ describe('ReactDOMInput', () => {
1534 });
1535
1536 describe('setting a controlled input to undefined', () => {
1537 - var input;
1537 + let input;
1538
1539 function renderInputWithStringThenWithUndefined() {
1540 class Input extends React.Component {
@@ -1549,7 +1549,7 @@ describe('ReactDOMInput', () => {
1549 }
1550 }
1551
1552 - var stub = ReactTestUtils.renderIntoDocument(<Input />);
1552 + const stub = ReactTestUtils.renderIntoDocument(<Input />);
1553 input = ReactDOM.findDOMNode(stub);
1554 ReactTestUtils.Simulate.change(input, {target: {value: 'latest'}});
1555 ReactTestUtils.Simulate.change(input, {target: {value: undefined}});
@@ -1583,7 +1583,7 @@ describe('ReactDOMInput', () => {
1583 });
1584
1585 describe('setting a controlled input to null', () => {
1586 - var input;
1586 + let input;
1587
1588 function renderInputWithStringThenWithNull() {
1589 class Input extends React.Component {
@@ -1598,7 +1598,7 @@ describe('ReactDOMInput', () => {
1598 }
1599 }
1600
1601 - var stub = ReactTestUtils.renderIntoDocument(<Input />);
1601 + const stub = ReactTestUtils.renderIntoDocument(<Input />);
1602 input = ReactDOM.findDOMNode(stub);
1603 ReactTestUtils.Simulate.change(input, {target: {value: 'latest'}});
1604 ReactTestUtils.Simulate.change(input, {target: {value: null}});
packages/react-dom/src/__tests__/ReactDOMInvalidARIAHook-test.js
+3 -3
@@ -10,9 +10,9 @@
10 'use strict';
11
12 describe('ReactDOMInvalidARIAHook', () => {
13 - var React;
14 - var ReactTestUtils;
15 - var mountComponent;
13 + let React;
14 + let ReactTestUtils;
15 + let mountComponent;
16
17 beforeEach(() => {
18 jest.resetModules();
packages/react-dom/src/__tests__/ReactDOMOption-test.js
+18 -18
@@ -14,9 +14,9 @@ describe('ReactDOMOption', () => {
14 return str && str.replace(/\(at .+?:\d+\)/g, '(at **)');
15 }
16
17 - var React;
18 - var ReactDOM;
19 - var ReactTestUtils;
17 + let React;
18 + let ReactDOM;
19 + let ReactTestUtils;
20
21 beforeEach(() => {
22 React = require('react');
@@ -25,25 +25,25 @@ describe('ReactDOMOption', () => {
25 });
26
27 it('should flatten children to a string', () => {
28 - var stub = (
28 + let stub = (
29 <option>
30 {1} {'foo'}
31 </option>
32 );
33 stub = ReactTestUtils.renderIntoDocument(stub);
34 - var node = ReactDOM.findDOMNode(stub);
34 + const node = ReactDOM.findDOMNode(stub);
35
36 expect(node.innerHTML).toBe('1 foo');
37 });
38
39 it('should ignore and warn invalid children types', () => {
40 spyOnDev(console, 'error');
41 - var el = (
41 + const el = (
42 <option>
43 {1} <div /> {2}
44 </option>
45 );
46 - var node = ReactTestUtils.renderIntoDocument(el);
46 + const node = ReactTestUtils.renderIntoDocument(el);
47 expect(node.innerHTML).toBe('1 2');
48 ReactTestUtils.renderIntoDocument(el);
49 if (__DEV__) {
@@ -58,7 +58,7 @@ describe('ReactDOMOption', () => {
58 });
59
60 it('should ignore null/undefined/false children without warning', () => {
61 - var stub = (
61 + let stub = (
62 <option>
63 {1} {false}
64 {true}
@@ -69,7 +69,7 @@ describe('ReactDOMOption', () => {
69 spyOnDev(console, 'error');
70 stub = ReactTestUtils.renderIntoDocument(stub);
71
72 - var node = ReactDOM.findDOMNode(stub);
72 + const node = ReactDOM.findDOMNode(stub);
73
74 if (__DEV__) {
75 expect(console.error.calls.count()).toBe(0);
@@ -78,16 +78,16 @@ describe('ReactDOMOption', () => {
78 });
79
80 it('should be able to use dangerouslySetInnerHTML on option', () => {
81 - var stub = <option dangerouslySetInnerHTML={{__html: 'foobar'}} />;
81 + let stub = <option dangerouslySetInnerHTML={{__html: 'foobar'}} />;
82 stub = ReactTestUtils.renderIntoDocument(stub);
83
84 - var node = ReactDOM.findDOMNode(stub);
84 + const node = ReactDOM.findDOMNode(stub);
85 expect(node.innerHTML).toBe('foobar');
86 });
87
88 it('should set attribute for empty value', () => {
89 - var container = document.createElement('div');
90 - var option = ReactDOM.render(<option value="" />, container);
89 + const container = document.createElement('div');
90 + const option = ReactDOM.render(<option value="" />, container);
91 expect(option.hasAttribute('value')).toBe(true);
92 expect(option.getAttribute('value')).toBe('');
93
@@ -97,18 +97,18 @@ describe('ReactDOMOption', () => {
97 });
98
99 it('should allow ignoring `value` on option', () => {
100 - var a = 'a';
101 - var stub = (
100 + const a = 'a';
101 + let stub = (
102 <select value="giraffe" onChange={() => {}}>
103 <option>monkey</option>
104 <option>gir{a}ffe</option>
105 <option>gorill{a}</option>
106 </select>
107 );
108 - var options = stub.props.children;
109 - var container = document.createElement('div');
108 + const options = stub.props.children;
109 + const container = document.createElement('div');
110 stub = ReactDOM.render(stub, container);
111 - var node = ReactDOM.findDOMNode(stub);
111 + const node = ReactDOM.findDOMNode(stub);
112
113 expect(node.selectedIndex).toBe(1);
114
packages/react-dom/src/__tests__/ReactDOMRoot-test.internal.js
+5 -5
@@ -9,10 +9,10 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactDOM = require('react-dom');
14 -var ReactDOMServer = require('react-dom/server');
15 -var AsyncComponent = React.unstable_AsyncComponent;
12 +let React = require('react');
13 +let ReactDOM = require('react-dom');
14 +let ReactDOMServer = require('react-dom/server');
15 +let AsyncComponent = React.unstable_AsyncComponent;
16
17 describe('ReactDOMRoot', () => {
18 let container;
@@ -29,7 +29,7 @@ describe('ReactDOMRoot', () => {
29 scheduledCallback = null;
30 flush = function(units = Infinity) {
31 if (scheduledCallback !== null) {
32 - var didStop = false;
32 + let didStop = false;
33 while (scheduledCallback !== null && !didStop) {
34 const cb = scheduledCallback;
35 scheduledCallback = null;
packages/react-dom/src/__tests__/ReactDOMSVG-test.js
+17 -14
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactDOMServer;
12 +let React;
13 +let ReactDOM;
14 +let ReactDOMServer;
15
16 describe('ReactDOMSVG', () => {
17 beforeEach(() => {
@@ -21,7 +21,7 @@ describe('ReactDOMSVG', () => {
21 });
22
23 it('creates initial namespaced markup', () => {
24 - var markup = ReactDOMServer.renderToString(
24 + const markup = ReactDOMServer.renderToString(
25 <svg>
26 <image xlinkHref="http://i.imgur.com/w7GCRPb.png" />
27 </svg>,
@@ -30,8 +30,8 @@ describe('ReactDOMSVG', () => {
30 });
31
32 it('creates elements with SVG namespace inside SVG tag during mount', () => {
33 - var node = document.createElement('div');
34 - var div,
33 + const node = document.createElement('div');
34 + let div,
35 div2,
36 div3,
37 foreignObject,
@@ -111,7 +111,7 @@ describe('ReactDOMSVG', () => {
111 });
112
113 it('creates elements with SVG namespace inside SVG tag during update', () => {
114 - var inst,
114 + let inst,
115 div,
116 div2,
117 foreignObject,
@@ -158,7 +158,7 @@ describe('ReactDOMSVG', () => {
158 }
159 }
160
161 - var node = document.createElement('div');
161 + const node = document.createElement('div');
162 ReactDOM.render(
163 <svg ref={el => (svg = el)}>
164 <App />
@@ -194,29 +194,32 @@ describe('ReactDOMSVG', () => {
194 });
195
196 it('can render SVG into a non-React SVG tree', () => {
197 - var outerSVGRoot = document.createElementNS(
197 + const outerSVGRoot = document.createElementNS(
198 'http://www.w3.org/2000/svg',
199 'svg',
200 );
201 - var container = document.createElementNS('http://www.w3.org/2000/svg', 'g');
201 + const container = document.createElementNS(
202 + 'http://www.w3.org/2000/svg',
203 + 'g',
204 + );
205 outerSVGRoot.appendChild(container);
203 - var image;
206 + let image;
207 ReactDOM.render(<image ref={el => (image = el)} />, container);
208 expect(image.namespaceURI).toBe('http://www.w3.org/2000/svg');
209 expect(image.tagName).toBe('image');
210 });
211
212 it('can render HTML into a foreignObject in non-React SVG tree', () => {
210 - var outerSVGRoot = document.createElementNS(
213 + const outerSVGRoot = document.createElementNS(
214 'http://www.w3.org/2000/svg',
215 'svg',
216 );
214 - var container = document.createElementNS(
217 + const container = document.createElementNS(
218 'http://www.w3.org/2000/svg',
219 'foreignObject',
220 );
221 outerSVGRoot.appendChild(container);
219 - var div;
222 + let div;
223 ReactDOM.render(<div ref={el => (div = el)} />, container);
224 expect(div.namespaceURI).toBe('http://www.w3.org/1999/xhtml');
225 expect(div.tagName).toBe('DIV');
packages/react-dom/src/__tests__/ReactDOMSelect-test.js
+84 -84
@@ -10,12 +10,12 @@
10 'use strict';
11
12 describe('ReactDOMSelect', () => {
13 - var React;
14 - var ReactDOM;
15 - var ReactDOMServer;
16 - var ReactTestUtils;
13 + let React;
14 + let ReactDOM;
15 + let ReactDOMServer;
16 + let ReactTestUtils;
17
18 - var noop = function() {};
18 + const noop = function() {};
19
20 beforeEach(() => {
21 jest.resetModules();
@@ -26,17 +26,17 @@ describe('ReactDOMSelect', () => {
26 });
27
28 it('should allow setting `defaultValue`', () => {
29 - var stub = (
29 + let stub = (
30 <select defaultValue="giraffe">
31 <option value="monkey">A monkey!</option>
32 <option value="giraffe">A giraffe!</option>
33 <option value="gorilla">A gorilla!</option>
34 </select>
35 );
36 - var options = stub.props.children;
37 - var container = document.createElement('div');
36 + const options = stub.props.children;
37 + const container = document.createElement('div');
38 stub = ReactDOM.render(stub, container);
39 - var node = ReactDOM.findDOMNode(stub);
39 + const node = ReactDOM.findDOMNode(stub);
40
41 expect(node.value).toBe('giraffe');
42
@@ -49,7 +49,7 @@ describe('ReactDOMSelect', () => {
49 });
50
51 it('should not throw with `defaultValue` and without children', () => {
52 - var stub = <select defaultValue="dummy" />;
52 + const stub = <select defaultValue="dummy" />;
53
54 expect(() => {
55 ReactTestUtils.renderIntoDocument(stub);
@@ -57,16 +57,16 @@ describe('ReactDOMSelect', () => {
57 });
58
59 it('should not control when using `defaultValue`', () => {
60 - var el = (
60 + const el = (
61 <select defaultValue="giraffe">
62 <option value="monkey">A monkey!</option>
63 <option value="giraffe">A giraffe!</option>
64 <option value="gorilla">A gorilla!</option>
65 </select>
66 );
67 - var container = document.createElement('div');
68 - var stub = ReactDOM.render(el, container);
69 - var node = ReactDOM.findDOMNode(stub);
67 + const container = document.createElement('div');
68 + const stub = ReactDOM.render(el, container);
69 + const node = ReactDOM.findDOMNode(stub);
70
71 expect(node.value).toBe('giraffe');
72
@@ -77,17 +77,17 @@ describe('ReactDOMSelect', () => {
77 });
78
79 it('should allow setting `defaultValue` with multiple', () => {
80 - var stub = (
80 + let stub = (
81 <select multiple={true} defaultValue={['giraffe', 'gorilla']}>
82 <option value="monkey">A monkey!</option>
83 <option value="giraffe">A giraffe!</option>
84 <option value="gorilla">A gorilla!</option>
85 </select>
86 );
87 - var options = stub.props.children;
88 - var container = document.createElement('div');
87 + const options = stub.props.children;
88 + const container = document.createElement('div');
89 stub = ReactDOM.render(stub, container);
90 - var node = ReactDOM.findDOMNode(stub);
90 + const node = ReactDOM.findDOMNode(stub);
91
92 expect(node.options[0].selected).toBe(false); // monkey
93 expect(node.options[1].selected).toBe(true); // giraffe
@@ -107,17 +107,17 @@ describe('ReactDOMSelect', () => {
107 });
108
109 it('should allow setting `value`', () => {
110 - var stub = (
110 + let stub = (
111 <select value="giraffe" onChange={noop}>
112 <option value="monkey">A monkey!</option>
113 <option value="giraffe">A giraffe!</option>
114 <option value="gorilla">A gorilla!</option>
115 </select>
116 );
117 - var options = stub.props.children;
118 - var container = document.createElement('div');
117 + const options = stub.props.children;
118 + const container = document.createElement('div');
119 stub = ReactDOM.render(stub, container);
120 - var node = ReactDOM.findDOMNode(stub);
120 + const node = ReactDOM.findDOMNode(stub);
121
122 expect(node.value).toBe('giraffe');
123
@@ -132,7 +132,7 @@ describe('ReactDOMSelect', () => {
132 });
133
134 it('should default to the first non-disabled option', () => {
135 - var stub = (
135 + let stub = (
136 <select defaultValue="">
137 <option disabled={true}>Disabled</option>
138 <option disabled={true}>Still Disabled</option>
@@ -140,25 +140,25 @@ describe('ReactDOMSelect', () => {
140 <option disabled={true}>Also Disabled</option>
141 </select>
142 );
143 - var container = document.createElement('div');
143 + const container = document.createElement('div');
144 stub = ReactDOM.render(stub, container);
145 - var node = ReactDOM.findDOMNode(stub);
145 + const node = ReactDOM.findDOMNode(stub);
146 expect(node.options[0].selected).toBe(false);
147 expect(node.options[2].selected).toBe(true);
148 });
149
150 it('should allow setting `value` to __proto__', () => {
151 - var stub = (
151 + let stub = (
152 <select value="__proto__" onChange={noop}>
153 <option value="monkey">A monkey!</option>
154 <option value="__proto__">A giraffe!</option>
155 <option value="gorilla">A gorilla!</option>
156 </select>
157 );
158 - var options = stub.props.children;
159 - var container = document.createElement('div');
158 + const options = stub.props.children;
159 + const container = document.createElement('div');
160 stub = ReactDOM.render(stub, container);
161 - var node = ReactDOM.findDOMNode(stub);
161 + const node = ReactDOM.findDOMNode(stub);
162
163 expect(node.value).toBe('__proto__');
164
@@ -173,7 +173,7 @@ describe('ReactDOMSelect', () => {
173 });
174
175 it('should not throw with `value` and without children', () => {
176 - var stub = <select value="dummy" onChange={noop} />;
176 + const stub = <select value="dummy" onChange={noop} />;
177
178 expect(() => {
179 ReactTestUtils.renderIntoDocument(stub);
@@ -181,17 +181,17 @@ describe('ReactDOMSelect', () => {
181 });
182
183 it('should allow setting `value` with multiple', () => {
184 - var stub = (
184 + let stub = (
185 <select multiple={true} value={['giraffe', 'gorilla']} onChange={noop}>
186 <option value="monkey">A monkey!</option>
187 <option value="giraffe">A giraffe!</option>
188 <option value="gorilla">A gorilla!</option>
189 </select>
190 );
191 - var options = stub.props.children;
192 - var container = document.createElement('div');
191 + const options = stub.props.children;
192 + const container = document.createElement('div');
193 stub = ReactDOM.render(stub, container);
194 - var node = ReactDOM.findDOMNode(stub);
194 + const node = ReactDOM.findDOMNode(stub);
195
196 expect(node.options[0].selected).toBe(false); // monkey
197 expect(node.options[1].selected).toBe(true); // giraffe
@@ -211,17 +211,17 @@ describe('ReactDOMSelect', () => {
211 });
212
213 it('should allow setting `value` to __proto__ with multiple', () => {
214 - var stub = (
214 + let stub = (
215 <select multiple={true} value={['__proto__', 'gorilla']} onChange={noop}>
216 <option value="monkey">A monkey!</option>
217 <option value="__proto__">A __proto__!</option>
218 <option value="gorilla">A gorilla!</option>
219 </select>
220 );
221 - var options = stub.props.children;
222 - var container = document.createElement('div');
221 + const options = stub.props.children;
222 + const container = document.createElement('div');
223 stub = ReactDOM.render(stub, container);
224 - var node = ReactDOM.findDOMNode(stub);
224 + const node = ReactDOM.findDOMNode(stub);
225
226 expect(node.options[0].selected).toBe(false); // monkey
227 expect(node.options[1].selected).toBe(true); // __proto__
@@ -241,7 +241,7 @@ describe('ReactDOMSelect', () => {
241 });
242
243 it('should not select other options automatically', () => {
244 - var stub = (
244 + let stub = (
245 <select multiple={true} value={['12']} onChange={noop}>
246 <option value="1">one</option>
247 <option value="2">two</option>
@@ -249,7 +249,7 @@ describe('ReactDOMSelect', () => {
249 </select>
250 );
251 stub = ReactTestUtils.renderIntoDocument(stub);
252 - var node = ReactDOM.findDOMNode(stub);
252 + const node = ReactDOM.findDOMNode(stub);
253
254 expect(node.options[0].selected).toBe(false); // one
255 expect(node.options[1].selected).toBe(false); // two
@@ -257,8 +257,8 @@ describe('ReactDOMSelect', () => {
257 });
258
259 it('should reset child options selected when they are changed and `value` is set', () => {
260 - var stub = <select multiple={true} value={['a', 'b']} onChange={noop} />;
261 - var container = document.createElement('div');
260 + let stub = <select multiple={true} value={['a', 'b']} onChange={noop} />;
261 + const container = document.createElement('div');
262 stub = ReactDOM.render(stub, container);
263
264 ReactDOM.render(
@@ -270,7 +270,7 @@ describe('ReactDOMSelect', () => {
270 container,
271 );
272
273 - var node = ReactDOM.findDOMNode(stub);
273 + const node = ReactDOM.findDOMNode(stub);
274
275 expect(node.options[0].selected).toBe(true); // a
276 expect(node.options[1].selected).toBe(true); // b
@@ -278,23 +278,23 @@ describe('ReactDOMSelect', () => {
278 });
279
280 it('should allow setting `value` with `objectToString`', () => {
281 - var objectToString = {
281 + const objectToString = {
282 animal: 'giraffe',
283 toString: function() {
284 return this.animal;
285 },
286 };
287
288 - var el = (
288 + const el = (
289 <select multiple={true} value={[objectToString]} onChange={noop}>
290 <option value="monkey">A monkey!</option>
291 <option value="giraffe">A giraffe!</option>
292 <option value="gorilla">A gorilla!</option>
293 </select>
294 );
295 - var container = document.createElement('div');
296 - var stub = ReactDOM.render(el, container);
297 - var node = ReactDOM.findDOMNode(stub);
295 + const container = document.createElement('div');
296 + const stub = ReactDOM.render(el, container);
297 + const node = ReactDOM.findDOMNode(stub);
298
299 expect(node.options[0].selected).toBe(false); // monkey
300 expect(node.options[1].selected).toBe(true); // giraffe
@@ -303,7 +303,7 @@ describe('ReactDOMSelect', () => {
303 // Changing the `value` prop should change the selected options.
304 objectToString.animal = 'monkey';
305
306 - var el2 = (
306 + const el2 = (
307 <select multiple={true} value={[objectToString]}>
308 <option value="monkey">A monkey!</option>
309 <option value="giraffe">A giraffe!</option>
@@ -318,17 +318,17 @@ describe('ReactDOMSelect', () => {
318 });
319
320 it('should allow switching to multiple', () => {
321 - var stub = (
321 + let stub = (
322 <select defaultValue="giraffe">
323 <option value="monkey">A monkey!</option>
324 <option value="giraffe">A giraffe!</option>
325 <option value="gorilla">A gorilla!</option>
326 </select>
327 );
328 - var options = stub.props.children;
329 - var container = document.createElement('div');
328 + const options = stub.props.children;
329 + const container = document.createElement('div');
330 stub = ReactDOM.render(stub, container);
331 - var node = ReactDOM.findDOMNode(stub);
331 + const node = ReactDOM.findDOMNode(stub);
332
333 expect(node.options[0].selected).toBe(false); // monkey
334 expect(node.options[1].selected).toBe(true); // giraffe
@@ -348,17 +348,17 @@ describe('ReactDOMSelect', () => {
348 });
349
350 it('should allow switching from multiple', () => {
351 - var stub = (
351 + let stub = (
352 <select multiple={true} defaultValue={['giraffe', 'gorilla']}>
353 <option value="monkey">A monkey!</option>
354 <option value="giraffe">A giraffe!</option>
355 <option value="gorilla">A gorilla!</option>
356 </select>
357 );
358 - var options = stub.props.children;
359 - var container = document.createElement('div');
358 + const options = stub.props.children;
359 + const container = document.createElement('div');
360 stub = ReactDOM.render(stub, container);
361 - var node = ReactDOM.findDOMNode(stub);
361 + const node = ReactDOM.findDOMNode(stub);
362
363 expect(node.options[0].selected).toBe(false); // monkey
364 expect(node.options[1].selected).toBe(true); // giraffe
@@ -377,17 +377,17 @@ describe('ReactDOMSelect', () => {
377 });
378
379 it('should remember value when switching to uncontrolled', () => {
380 - var stub = (
380 + let stub = (
381 <select value={'giraffe'} onChange={noop}>
382 <option value="monkey">A monkey!</option>
383 <option value="giraffe">A giraffe!</option>
384 <option value="gorilla">A gorilla!</option>
385 </select>
386 );
387 - var options = stub.props.children;
388 - var container = document.createElement('div');
387 + const options = stub.props.children;
388 + const container = document.createElement('div');
389 stub = ReactDOM.render(stub, container);
390 - var node = ReactDOM.findDOMNode(stub);
390 + const node = ReactDOM.findDOMNode(stub);
391
392 expect(node.options[0].selected).toBe(false); // monkey
393 expect(node.options[1].selected).toBe(true); // giraffe
@@ -401,17 +401,17 @@ describe('ReactDOMSelect', () => {
401 });
402
403 it('should remember updated value when switching to uncontrolled', () => {
404 - var stub = (
404 + let stub = (
405 <select value={'giraffe'} onChange={noop}>
406 <option value="monkey">A monkey!</option>
407 <option value="giraffe">A giraffe!</option>
408 <option value="gorilla">A gorilla!</option>
409 </select>
410 );
411 - var options = stub.props.children;
412 - var container = document.createElement('div');
411 + const options = stub.props.children;
412 + const container = document.createElement('div');
413 stub = ReactDOM.render(stub, container);
414 - var node = ReactDOM.findDOMNode(stub);
414 + const node = ReactDOM.findDOMNode(stub);
415
416 ReactDOM.render(
417 <select value="gorilla" onChange={noop}>
@@ -432,51 +432,51 @@ describe('ReactDOMSelect', () => {
432 });
433
434 it('should support server-side rendering', () => {
435 - var stub = (
435 + const stub = (
436 <select value="giraffe" onChange={noop}>
437 <option value="monkey">A monkey!</option>
438 <option value="giraffe">A giraffe!</option>
439 <option value="gorilla">A gorilla!</option>
440 </select>
441 );
442 - var markup = ReactDOMServer.renderToString(stub);
442 + const markup = ReactDOMServer.renderToString(stub);
443 expect(markup).toContain('<option selected value="giraffe"');
444 expect(markup).not.toContain('<option selected value="monkey"');
445 expect(markup).not.toContain('<option selected value="gorilla"');
446 });
447
448 it('should support server-side rendering with defaultValue', () => {
449 - var stub = (
449 + const stub = (
450 <select defaultValue="giraffe">
451 <option value="monkey">A monkey!</option>
452 <option value="giraffe">A giraffe!</option>
453 <option value="gorilla">A gorilla!</option>
454 </select>
455 );
456 - var markup = ReactDOMServer.renderToString(stub);
456 + const markup = ReactDOMServer.renderToString(stub);
457 expect(markup).toContain('<option selected value="giraffe"');
458 expect(markup).not.toContain('<option selected value="monkey"');
459 expect(markup).not.toContain('<option selected value="gorilla"');
460 });
461
462 it('should support server-side rendering with multiple', () => {
463 - var stub = (
463 + const stub = (
464 <select multiple={true} value={['giraffe', 'gorilla']} onChange={noop}>
465 <option value="monkey">A monkey!</option>
466 <option value="giraffe">A giraffe!</option>
467 <option value="gorilla">A gorilla!</option>
468 </select>
469 );
470 - var markup = ReactDOMServer.renderToString(stub);
470 + const markup = ReactDOMServer.renderToString(stub);
471 expect(markup).toContain('<option selected value="giraffe"');
472 expect(markup).toContain('<option selected value="gorilla"');
473 expect(markup).not.toContain('<option selected value="monkey"');
474 });
475
476 it('should not control defaultValue if readding options', () => {
477 - var container = document.createElement('div');
477 + const container = document.createElement('div');
478
479 - var select = ReactDOM.render(
479 + const select = ReactDOM.render(
480 <select multiple={true} defaultValue={['giraffe']}>
481 <option key="monkey" value="monkey">
482 A monkey!
@@ -490,7 +490,7 @@ describe('ReactDOMSelect', () => {
490 </select>,
491 container,
492 );
493 - var node = ReactDOM.findDOMNode(select);
493 + const node = ReactDOM.findDOMNode(select);
494
495 expect(node.options[0].selected).toBe(false); // monkey
496 expect(node.options[1].selected).toBe(true); // giraffe
@@ -586,7 +586,7 @@ describe('ReactDOMSelect', () => {
586 });
587
588 it('should refresh state on change', () => {
589 - var stub = (
589 + let stub = (
590 <select value="giraffe" onChange={noop}>
591 <option value="monkey">A monkey!</option>
592 <option value="giraffe">A giraffe!</option>
@@ -594,7 +594,7 @@ describe('ReactDOMSelect', () => {
594 </select>
595 );
596 stub = ReactTestUtils.renderIntoDocument(stub);
597 - var node = ReactDOM.findDOMNode(stub);
597 + const node = ReactDOM.findDOMNode(stub);
598
599 ReactTestUtils.Simulate.change(node);
600
@@ -637,8 +637,8 @@ describe('ReactDOMSelect', () => {
637 ReactDOM.unmountComponentAtNode(container);
638 }
639
640 - var container = document.createElement('div');
641 - var stub = (
640 + const container = document.createElement('div');
641 + let stub = (
642 <select value="giraffe" onChange={changeView}>
643 <option value="monkey">A monkey!</option>
644 <option value="giraffe">A giraffe!</option>
@@ -646,13 +646,13 @@ describe('ReactDOMSelect', () => {
646 </select>
647 );
648 stub = ReactDOM.render(stub, container);
649 - var node = ReactDOM.findDOMNode(stub);
649 + const node = ReactDOM.findDOMNode(stub);
650
651 expect(() => ReactTestUtils.Simulate.change(node)).not.toThrow();
652 });
653
654 it('should select grandchild options nested inside an optgroup', () => {
655 - var stub = (
655 + const stub = (
656 <select value="b" onChange={noop}>
657 <optgroup label="group">
658 <option value="a">a</option>
@@ -661,8 +661,8 @@ describe('ReactDOMSelect', () => {
661 </optgroup>
662 </select>
663 );
664 - var container = document.createElement('div');
665 - var node = ReactDOM.render(stub, container);
664 + const container = document.createElement('div');
665 + const node = ReactDOM.render(stub, container);
666
667 expect(node.options[0].selected).toBe(false); // a
668 expect(node.options[1].selected).toBe(true); // b
@@ -670,7 +670,7 @@ describe('ReactDOMSelect', () => {
670 });
671
672 it('should allow controlling `value` in a nested render', () => {
673 - var selectNode;
673 + let selectNode;
674
675 class Parent extends React.Component {
676 state = {
@@ -708,7 +708,7 @@ describe('ReactDOMSelect', () => {
708 }
709 }
710
711 - var container = document.createElement('div');
711 + const container = document.createElement('div');
712
713 document.body.appendChild(container);
714
packages/react-dom/src/__tests__/ReactDOMSelection-test.internal.js
+5 -5
@@ -9,12 +9,12 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactDOMSelection;
15 -var invariant;
12 +let React;
13 +let ReactDOM;
14 +let ReactDOMSelection;
15 +let invariant;
16
17 -var getModernOffsetsFromPoints;
17 +let getModernOffsetsFromPoints;
18
19 describe('ReactDOMSelection', () => {
20 beforeEach(() => {
packages/react-dom/src/__tests__/ReactDOMServerIntegrationBasic-test.js
+1 -1
@@ -113,7 +113,7 @@ describe('ReactDOMServerIntegration', () => {
113 itRenders('an iterable', async render => {
114 const threeDivIterable = {
115 '@@iterator': function() {
116 - var i = 0;
116 + let i = 0;
117 return {
118 next: function() {
119 if (i++ < 3) {
packages/react-dom/src/__tests__/ReactDOMServerIntegrationElements-test.js
+5 -5
@@ -550,7 +550,7 @@ describe('ReactDOMServerIntegration', () => {
550 </Component>
551 </Component>,
552 );
553 - for (var i = 0; i < 3; i++) {
553 + for (let i = 0; i < 3; i++) {
554 expect(e.tagName).toBe('DIV');
555 expect(e.childNodes.length).toBe(1);
556 e = e.firstChild;
@@ -575,12 +575,12 @@ describe('ReactDOMServerIntegration', () => {
575 );
576 expect(e.tagName).toBe('DIV');
577 expect(e.childNodes.length).toBe(2);
578 - for (var i = 0; i < 2; i++) {
579 - var child = e.childNodes[i];
578 + for (let i = 0; i < 2; i++) {
579 + const child = e.childNodes[i];
580 expect(child.tagName).toBe('DIV');
581 expect(child.childNodes.length).toBe(2);
582 - for (var j = 0; j < 2; j++) {
583 - var grandchild = child.childNodes[j];
582 + for (let j = 0; j < 2; j++) {
583 + const grandchild = child.childNodes[j];
584 expect(grandchild.tagName).toBe('DIV');
585 expect(grandchild.childNodes.length).toBe(0);
586 }
packages/react-dom/src/__tests__/ReactDOMServerIntegrationForms-test.js
+2 -2
@@ -226,7 +226,7 @@ describe('ReactDOMServerIntegration', () => {
226 });
227
228 describe('selects', function() {
229 - var options;
229 + let options;
230 beforeEach(function() {
231 options = [
232 <option key={1} value="foo" id="foo">
@@ -255,7 +255,7 @@ describe('ReactDOMServerIntegration', () => {
255
256 ['foo', 'bar', 'baz'].forEach(value => {
257 const expectedValue = selected.indexOf(value) !== -1;
258 - var option = element.querySelector(`#${value}`);
258 + const option = element.querySelector(`#${value}`);
259 expect(option.selected).toBe(expectedValue);
260 });
261 };
packages/react-dom/src/__tests__/ReactDOMServerIntegrationReconnecting-test.js
+1 -1
@@ -42,7 +42,7 @@ describe('ReactDOMServerIntegration', () => {
42 });
43
44 describe('reconnecting to server markup', function() {
45 - var EmptyComponent;
45 + let EmptyComponent;
46 beforeEach(() => {
47 EmptyComponent = class extends React.Component {
48 render() {
packages/react-dom/src/__tests__/ReactDOMTextComponent-test.js
+23 -23
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactDOMServer;
12 +let React;
13 +let ReactDOM;
14 +let ReactDOMServer;
15
16 // In standard React, TextComponent keeps track of different Text templates
17 // using comments. However, in React Fiber, those comments are not outputted due
@@ -30,8 +30,8 @@ describe('ReactDOMTextComponent', () => {
30 });
31
32 it('updates a mounted text component in place', () => {
33 - var el = document.createElement('div');
34 - var inst = ReactDOM.render(
33 + const el = document.createElement('div');
34 + let inst = ReactDOM.render(
35 <div>
36 <span />
37 {'foo'}
@@ -64,8 +64,8 @@ describe('ReactDOMTextComponent', () => {
64 });
65
66 it('can be toggled in and out of the markup', () => {
67 - var el = document.createElement('div');
68 - var inst = ReactDOM.render(
67 + const el = document.createElement('div');
68 + let inst = ReactDOM.render(
69 <div>
70 {'foo'}
71 <div />
@@ -74,7 +74,7 @@ describe('ReactDOMTextComponent', () => {
74 el,
75 );
76
77 - var container = ReactDOM.findDOMNode(inst);
77 + let container = ReactDOM.findDOMNode(inst);
78 let childNodes = filterOutComments(container.childNodes);
79 let childDiv = childNodes[1];
80
@@ -113,8 +113,8 @@ describe('ReactDOMTextComponent', () => {
113 */
114
115 xit('can reconcile text merged by Node.normalize() alongside other elements', () => {
116 - var el = document.createElement('div');
117 - var inst = ReactDOM.render(
116 + const el = document.createElement('div');
117 + let inst = ReactDOM.render(
118 <div>
119 {'foo'}
120 {'bar'}
@@ -125,7 +125,7 @@ describe('ReactDOMTextComponent', () => {
125 el,
126 );
127
128 - var container = ReactDOM.findDOMNode(inst);
128 + let container = ReactDOM.findDOMNode(inst);
129 container.normalize();
130
131 inst = ReactDOM.render(
@@ -143,8 +143,8 @@ describe('ReactDOMTextComponent', () => {
143 });
144
145 xit('can reconcile text merged by Node.normalize()', () => {
146 - var el = document.createElement('div');
147 - var inst = ReactDOM.render(
146 + const el = document.createElement('div');
147 + let inst = ReactDOM.render(
148 <div>
149 {'foo'}
150 {'bar'}
@@ -153,7 +153,7 @@ describe('ReactDOMTextComponent', () => {
153 el,
154 );
155
156 - var container = ReactDOM.findDOMNode(inst);
156 + let container = ReactDOM.findDOMNode(inst);
157 container.normalize();
158
159 inst = ReactDOM.render(
@@ -169,8 +169,8 @@ describe('ReactDOMTextComponent', () => {
169 });
170
171 it('can reconcile text from pre-rendered markup', () => {
172 - var el = document.createElement('div');
173 - var reactEl = (
172 + const el = document.createElement('div');
173 + let reactEl = (
174 <div>
175 {'foo'}
176 {'bar'}
@@ -198,8 +198,8 @@ describe('ReactDOMTextComponent', () => {
198 });
199
200 xit('can reconcile text arbitrarily split into multiple nodes', () => {
201 - var el = document.createElement('div');
202 - var inst = ReactDOM.render(
201 + const el = document.createElement('div');
202 + let inst = ReactDOM.render(
203 <div>
204 <span />
205 {'foobarbaz'}
@@ -207,7 +207,7 @@ describe('ReactDOMTextComponent', () => {
207 el,
208 );
209
210 - var container = ReactDOM.findDOMNode(inst);
210 + let container = ReactDOM.findDOMNode(inst);
211 let childNodes = filterOutComments(ReactDOM.findDOMNode(inst).childNodes);
212 let textNode = childNodes[1];
213 textNode.textContent = 'foo';
@@ -232,8 +232,8 @@ describe('ReactDOMTextComponent', () => {
232 });
233
234 xit('can reconcile text arbitrarily split into multiple nodes on some substitutions only', () => {
235 - var el = document.createElement('div');
236 - var inst = ReactDOM.render(
235 + const el = document.createElement('div');
236 + let inst = ReactDOM.render(
237 <div>
238 <span />
239 {'bar'}
@@ -246,7 +246,7 @@ describe('ReactDOMTextComponent', () => {
246 el,
247 );
248
249 - var container = ReactDOM.findDOMNode(inst);
249 + let container = ReactDOM.findDOMNode(inst);
250 let childNodes = filterOutComments(ReactDOM.findDOMNode(inst).childNodes);
251 let textNode = childNodes[3];
252 textNode.textContent = 'foo';
@@ -282,7 +282,7 @@ describe('ReactDOMTextComponent', () => {
282 });
283
284 xit('can unmount normalized text nodes', () => {
285 - var el = document.createElement('div');
285 + const el = document.createElement('div');
286 ReactDOM.render(
287 <div>
288 {''}
packages/react-dom/src/__tests__/ReactDOMTextarea-test.js
+63 -63
@@ -9,15 +9,15 @@
9
10 'use strict';
11
12 -var emptyFunction = require('fbjs/lib/emptyFunction');
12 +const emptyFunction = require('fbjs/lib/emptyFunction');
13
14 describe('ReactDOMTextarea', () => {
15 - var React;
16 - var ReactDOM;
17 - var ReactDOMServer;
18 - var ReactTestUtils;
15 + let React;
16 + let ReactDOM;
17 + let ReactDOMServer;
18 + let ReactTestUtils;
19
20 - var renderTextarea;
20 + let renderTextarea;
21
22 beforeEach(() => {
23 React = require('react');
@@ -29,7 +29,7 @@ describe('ReactDOMTextarea', () => {
29 if (!container) {
30 container = document.createElement('div');
31 }
32 - var node = ReactDOM.render(component, container);
32 + const node = ReactDOM.render(component, container);
33
34 // Fixing jsdom's quirky behavior -- in reality, the parser should strip
35 // off the leading newline but we need to do it by hand here.
@@ -39,8 +39,8 @@ describe('ReactDOMTextarea', () => {
39 });
40
41 it('should allow setting `defaultValue`', () => {
42 - var container = document.createElement('div');
43 - var node = renderTextarea(<textarea defaultValue="giraffe" />, container);
42 + const container = document.createElement('div');
43 + const node = renderTextarea(<textarea defaultValue="giraffe" />, container);
44
45 expect(node.value).toBe('giraffe');
46
@@ -55,34 +55,34 @@ describe('ReactDOMTextarea', () => {
55 });
56
57 it('should display `defaultValue` of number 0', () => {
58 - var stub = <textarea defaultValue={0} />;
59 - var node = renderTextarea(stub);
58 + const stub = <textarea defaultValue={0} />;
59 + const node = renderTextarea(stub);
60
61 expect(node.value).toBe('0');
62 });
63
64 it('should display "false" for `defaultValue` of `false`', () => {
65 - var stub = <textarea defaultValue={false} />;
66 - var node = renderTextarea(stub);
65 + const stub = <textarea defaultValue={false} />;
66 + const node = renderTextarea(stub);
67
68 expect(node.value).toBe('false');
69 });
70
71 it('should display "foobar" for `defaultValue` of `objToString`', () => {
72 - var objToString = {
72 + const objToString = {
73 toString: function() {
74 return 'foobar';
75 },
76 };
77
78 - var stub = <textarea defaultValue={objToString} />;
79 - var node = renderTextarea(stub);
78 + const stub = <textarea defaultValue={objToString} />;
79 + const node = renderTextarea(stub);
80
81 expect(node.value).toBe('foobar');
82 });
83
84 it('should set defaultValue', () => {
85 - var container = document.createElement('div');
85 + const container = document.createElement('div');
86 ReactDOM.render(<textarea defaultValue="foo" />, container);
87 ReactDOM.render(<textarea defaultValue="bar" />, container);
88 ReactDOM.render(<textarea defaultValue="noise" />, container);
@@ -90,30 +90,30 @@ describe('ReactDOMTextarea', () => {
90 });
91
92 it('should not render value as an attribute', () => {
93 - var stub = <textarea value="giraffe" onChange={emptyFunction} />;
94 - var node = renderTextarea(stub);
93 + const stub = <textarea value="giraffe" onChange={emptyFunction} />;
94 + const node = renderTextarea(stub);
95
96 expect(node.getAttribute('value')).toBe(null);
97 });
98
99 it('should display `value` of number 0', () => {
100 - var stub = <textarea value={0} />;
101 - var node = renderTextarea(stub);
100 + const stub = <textarea value={0} />;
101 + const node = renderTextarea(stub);
102
103 expect(node.value).toBe('0');
104 });
105
106 it('should update defaultValue to empty string', () => {
107 - var container = document.createElement('div');
107 + const container = document.createElement('div');
108 ReactDOM.render(<textarea defaultValue={'foo'} />, container);
109 ReactDOM.render(<textarea defaultValue={''} />, container);
110 expect(container.firstChild.defaultValue).toBe('');
111 });
112
113 it('should allow setting `value` to `giraffe`', () => {
114 - var container = document.createElement('div');
115 - var stub = <textarea value="giraffe" onChange={emptyFunction} />;
116 - var node = renderTextarea(stub, container);
114 + const container = document.createElement('div');
115 + let stub = <textarea value="giraffe" onChange={emptyFunction} />;
116 + const node = renderTextarea(stub, container);
117
118 expect(node.value).toBe('giraffe');
119
@@ -125,26 +125,26 @@ describe('ReactDOMTextarea', () => {
125 });
126
127 it('should render defaultValue for SSR', () => {
128 - var markup = ReactDOMServer.renderToString(<textarea defaultValue="1" />);
129 - var div = document.createElement('div');
128 + const markup = ReactDOMServer.renderToString(<textarea defaultValue="1" />);
129 + const div = document.createElement('div');
130 div.innerHTML = markup;
131 expect(div.firstChild.innerHTML).toBe('1');
132 expect(div.firstChild.getAttribute('defaultValue')).toBe(null);
133 });
134
135 it('should render value for SSR', () => {
136 - var element = <textarea value="1" onChange={function() {}} />;
137 - var markup = ReactDOMServer.renderToString(element);
138 - var div = document.createElement('div');
136 + const element = <textarea value="1" onChange={function() {}} />;
137 + const markup = ReactDOMServer.renderToString(element);
138 + const div = document.createElement('div');
139 div.innerHTML = markup;
140 expect(div.firstChild.innerHTML).toBe('1');
141 expect(div.firstChild.getAttribute('defaultValue')).toBe(null);
142 });
143
144 it('should allow setting `value` to `true`', () => {
145 - var container = document.createElement('div');
146 - var stub = <textarea value="giraffe" onChange={emptyFunction} />;
147 - var node = renderTextarea(stub, container);
145 + const container = document.createElement('div');
146 + let stub = <textarea value="giraffe" onChange={emptyFunction} />;
147 + const node = renderTextarea(stub, container);
148
149 expect(node.value).toBe('giraffe');
150
@@ -156,9 +156,9 @@ describe('ReactDOMTextarea', () => {
156 });
157
158 it('should allow setting `value` to `false`', () => {
159 - var container = document.createElement('div');
160 - var stub = <textarea value="giraffe" onChange={emptyFunction} />;
161 - var node = renderTextarea(stub, container);
159 + const container = document.createElement('div');
160 + let stub = <textarea value="giraffe" onChange={emptyFunction} />;
161 + const node = renderTextarea(stub, container);
162
163 expect(node.value).toBe('giraffe');
164
@@ -170,13 +170,13 @@ describe('ReactDOMTextarea', () => {
170 });
171
172 it('should allow setting `value` to `objToString`', () => {
173 - var container = document.createElement('div');
174 - var stub = <textarea value="giraffe" onChange={emptyFunction} />;
175 - var node = renderTextarea(stub, container);
173 + const container = document.createElement('div');
174 + let stub = <textarea value="giraffe" onChange={emptyFunction} />;
175 + const node = renderTextarea(stub, container);
176
177 expect(node.value).toBe('giraffe');
178
179 - var objToString = {
179 + const objToString = {
180 toString: function() {
181 return 'foo';
182 },
@@ -189,9 +189,9 @@ describe('ReactDOMTextarea', () => {
189 });
190
191 it('should take updates to `defaultValue` for uncontrolled textarea', () => {
192 - var container = document.createElement('div');
192 + const container = document.createElement('div');
193
194 - var node = ReactDOM.render(<textarea defaultValue="0" />, container);
194 + const node = ReactDOM.render(<textarea defaultValue="0" />, container);
195
196 expect(node.value).toBe('0');
197
@@ -201,9 +201,9 @@ describe('ReactDOMTextarea', () => {
201 });
202
203 it('should take updates to children in lieu of `defaultValue` for uncontrolled textarea', () => {
204 - var container = document.createElement('div');
204 + const container = document.createElement('div');
205
206 - var node = ReactDOM.render(<textarea defaultValue="0" />, container);
206 + const node = ReactDOM.render(<textarea defaultValue="0" />, container);
207
208 expect(node.value).toBe('0');
209
@@ -215,12 +215,12 @@ describe('ReactDOMTextarea', () => {
215 });
216
217 it('should not incur unnecessary DOM mutations', () => {
218 - var container = document.createElement('div');
218 + const container = document.createElement('div');
219 ReactDOM.render(<textarea value="a" onChange={emptyFunction} />, container);
220
221 - var node = container.firstChild;
222 - var nodeValue = 'a';
223 - var nodeValueSetter = jest.genMockFn();
221 + const node = container.firstChild;
222 + let nodeValue = 'a';
223 + const nodeValueSetter = jest.genMockFn();
224 Object.defineProperty(node, 'value', {
225 get: function() {
226 return nodeValue;
@@ -238,8 +238,8 @@ describe('ReactDOMTextarea', () => {
238 });
239
240 it('should properly control a value of number `0`', () => {
241 - var stub = <textarea value={0} onChange={emptyFunction} />;
242 - var node = renderTextarea(stub);
241 + const stub = <textarea value={0} onChange={emptyFunction} />;
242 + const node = renderTextarea(stub);
243
244 node.value = 'giraffe';
245 ReactTestUtils.Simulate.change(node);
@@ -249,9 +249,9 @@ describe('ReactDOMTextarea', () => {
249 it('should treat children like `defaultValue`', () => {
250 spyOnDev(console, 'error');
251
252 - var container = document.createElement('div');
253 - var stub = <textarea>giraffe</textarea>;
254 - var node = renderTextarea(stub, container);
252 + const container = document.createElement('div');
253 + let stub = <textarea>giraffe</textarea>;
254 + const node = renderTextarea(stub, container);
255
256 if (__DEV__) {
257 expect(console.error.calls.count()).toBe(1);
@@ -264,9 +264,9 @@ describe('ReactDOMTextarea', () => {
264 });
265
266 it('should keep value when switching to uncontrolled element if not changed', () => {
267 - var container = document.createElement('div');
267 + const container = document.createElement('div');
268
269 - var node = renderTextarea(
269 + const node = renderTextarea(
270 <textarea value="kitten" onChange={emptyFunction} />,
271 container,
272 );
@@ -279,9 +279,9 @@ describe('ReactDOMTextarea', () => {
279 });
280
281 it('should keep value when switching to uncontrolled element if changed', () => {
282 - var container = document.createElement('div');
282 + const container = document.createElement('div');
283
284 - var node = renderTextarea(
284 + const node = renderTextarea(
285 <textarea value="kitten" onChange={emptyFunction} />,
286 container,
287 );
@@ -302,7 +302,7 @@ describe('ReactDOMTextarea', () => {
302
303 it('should allow numbers as children', () => {
304 spyOnDev(console, 'error');
305 - var node = renderTextarea(<textarea>{17}</textarea>);
305 + const node = renderTextarea(<textarea>{17}</textarea>);
306 if (__DEV__) {
307 expect(console.error.calls.count()).toBe(1);
308 }
@@ -311,7 +311,7 @@ describe('ReactDOMTextarea', () => {
311
312 it('should allow booleans as children', () => {
313 spyOnDev(console, 'error');
314 - var node = renderTextarea(<textarea>{false}</textarea>);
314 + const node = renderTextarea(<textarea>{false}</textarea>);
315 if (__DEV__) {
316 expect(console.error.calls.count()).toBe(1);
317 }
@@ -320,12 +320,12 @@ describe('ReactDOMTextarea', () => {
320
321 it('should allow objects as children', () => {
322 spyOnDev(console, 'error');
323 - var obj = {
323 + const obj = {
324 toString: function() {
325 return 'sharkswithlasers';
326 },
327 };
328 - var node = renderTextarea(<textarea>{obj}</textarea>);
328 + const node = renderTextarea(<textarea>{obj}</textarea>);
329 if (__DEV__) {
330 expect(console.error.calls.count()).toBe(1);
331 }
@@ -348,7 +348,7 @@ describe('ReactDOMTextarea', () => {
348 expect(console.error.calls.count()).toBe(1);
349 }
350
351 - var node;
351 + let node;
352 expect(function() {
353 node = renderTextarea(
354 <textarea>
@@ -365,7 +365,7 @@ describe('ReactDOMTextarea', () => {
365 });
366
367 it('should unmount', () => {
368 - var container = document.createElement('div');
368 + const container = document.createElement('div');
369 renderTextarea(<textarea />, container);
370 ReactDOM.unmountComponentAtNode(container);
371 });
packages/react-dom/src/__tests__/ReactEmptyComponent-test.js
+22 -22
@@ -9,12 +9,12 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactTestUtils;
15 -var TogglingComponent;
12 +let React;
13 +let ReactDOM;
14 +let ReactTestUtils;
15 +let TogglingComponent;
16
17 -var log;
17 +let log;
18
19 describe('ReactEmptyComponent', () => {
20 beforeEach(() => {
@@ -39,7 +39,7 @@ describe('ReactEmptyComponent', () => {
39 }
40
41 render() {
42 - var Component = this.state.component;
42 + const Component = this.state.component;
43 return Component ? <Component /> : null;
44 }
45 };
@@ -58,11 +58,11 @@ describe('ReactEmptyComponent', () => {
58 }
59 }
60
61 - var container1 = document.createElement('div');
61 + const container1 = document.createElement('div');
62 ReactDOM.render(<Component1 />, container1);
63 expect(container1.children.length).toBe(0);
64
65 - var container2 = document.createElement('div');
65 + const container2 = document.createElement('div');
66 ReactDOM.render(<Component2 />, container2);
67 expect(container2.children.length).toBe(0);
68 });
@@ -81,10 +81,10 @@ describe('ReactEmptyComponent', () => {
81 });
82
83 it('should be able to switch between rendering null and a normal tag', () => {
84 - var instance1 = (
84 + const instance1 = (
85 <TogglingComponent firstComponent={null} secondComponent={'div'} />
86 );
87 - var instance2 = (
87 + const instance2 = (
88 <TogglingComponent firstComponent={'div'} secondComponent={null} />
89 );
90
@@ -99,7 +99,7 @@ describe('ReactEmptyComponent', () => {
99 });
100
101 it('should be able to switch in a list of children', () => {
102 - var instance1 = (
102 + const instance1 = (
103 <TogglingComponent firstComponent={null} secondComponent={'div'} />
104 );
105
@@ -121,10 +121,10 @@ describe('ReactEmptyComponent', () => {
121 });
122
123 it('should distinguish between a script placeholder and an actual script tag', () => {
124 - var instance1 = (
124 + const instance1 = (
125 <TogglingComponent firstComponent={null} secondComponent={'script'} />
126 );
127 - var instance2 = (
127 + const instance2 = (
128 <TogglingComponent firstComponent={'script'} secondComponent={null} />
129 );
130
@@ -158,10 +158,10 @@ describe('ReactEmptyComponent', () => {
158 }
159 }
160
161 - var instance1 = (
161 + const instance1 = (
162 <TogglingComponent firstComponent={'div'} secondComponent={Child} />
163 );
164 - var instance2 = (
164 + const instance2 = (
165 <TogglingComponent firstComponent={Child} secondComponent={'div'} />
166 );
167
@@ -181,7 +181,7 @@ describe('ReactEmptyComponent', () => {
181 );
182
183 it('works when switching components', () => {
184 - var assertions = 0;
184 + let assertions = 0;
185
186 class Inner extends React.Component {
187 render() {
@@ -209,8 +209,8 @@ describe('ReactEmptyComponent', () => {
209 }
210 }
211
212 - var el = document.createElement('div');
213 - var component;
212 + const el = document.createElement('div');
213 + let component;
214
215 // Render the <Inner /> component...
216 component = ReactDOM.render(<Wrapper showInner={true} />, el);
@@ -228,7 +228,7 @@ describe('ReactEmptyComponent', () => {
228 });
229
230 it('can render null at the top level', () => {
231 - var div = document.createElement('div');
231 + const div = document.createElement('div');
232 ReactDOM.render(null, div);
233 expect(div.innerHTML).toBe('');
234 });
@@ -278,15 +278,15 @@ describe('ReactEmptyComponent', () => {
278 }
279 }
280
281 - var container = document.createElement('div');
281 + const container = document.createElement('div');
282
283 ReactDOM.render(<Empty />, container);
284 - var noscript1 = container.firstChild;
284 + const noscript1 = container.firstChild;
285 expect(noscript1).toBe(null);
286
287 // This update shouldn't create a DOM node
288 ReactDOM.render(<Empty />, container);
289 - var noscript2 = container.firstChild;
289 + const noscript2 = container.firstChild;
290 expect(noscript2).toBe(null);
291 });
292 });
packages/react-dom/src/__tests__/ReactErrorBoundaries-test.js
+68 -68
@@ -9,29 +9,29 @@
9
10 'use strict';
11
12 -var PropTypes;
13 -var React;
14 -var ReactDOM;
12 +let PropTypes;
13 +let React;
14 +let ReactDOM;
15
16 describe('ReactErrorBoundaries', () => {
17 - var log;
18 -
19 - var BrokenConstructor;
20 - var BrokenComponentWillMount;
21 - var BrokenComponentDidMount;
22 - var BrokenComponentWillReceiveProps;
23 - var BrokenComponentWillUpdate;
24 - var BrokenComponentDidUpdate;
25 - var BrokenComponentWillUnmount;
26 - var BrokenRenderErrorBoundary;
27 - var BrokenComponentWillMountErrorBoundary;
28 - var BrokenComponentDidMountErrorBoundary;
29 - var BrokenRender;
30 - var ErrorBoundary;
31 - var ErrorMessage;
32 - var NoopErrorBoundary;
33 - var RetryErrorBoundary;
34 - var Normal;
17 + let log;
18 +
19 + let BrokenConstructor;
20 + let BrokenComponentWillMount;
21 + let BrokenComponentDidMount;
22 + let BrokenComponentWillReceiveProps;
23 + let BrokenComponentWillUpdate;
24 + let BrokenComponentDidUpdate;
25 + let BrokenComponentWillUnmount;
26 + let BrokenRenderErrorBoundary;
27 + let BrokenComponentWillMountErrorBoundary;
28 + let BrokenComponentDidMountErrorBoundary;
29 + let BrokenRender;
30 + let ErrorBoundary;
31 + let ErrorMessage;
32 + let NoopErrorBoundary;
33 + let RetryErrorBoundary;
34 + let Normal;
35
36 beforeEach(() => {
37 PropTypes = require('prop-types');
@@ -528,7 +528,7 @@ describe('ReactErrorBoundaries', () => {
528 });
529
530 it('does not swallow exceptions on mounting without boundaries', () => {
531 - var container = document.createElement('div');
531 + let container = document.createElement('div');
532 expect(() => {
533 ReactDOM.render(<BrokenRender />, container);
534 }).toThrow('Hello');
@@ -545,7 +545,7 @@ describe('ReactErrorBoundaries', () => {
545 });
546
547 it('does not swallow exceptions on updating without boundaries', () => {
548 - var container = document.createElement('div');
548 + let container = document.createElement('div');
549 ReactDOM.render(<BrokenComponentWillUpdate />, container);
550 expect(() => {
551 ReactDOM.render(<BrokenComponentWillUpdate />, container);
@@ -565,7 +565,7 @@ describe('ReactErrorBoundaries', () => {
565 });
566
567 it('does not swallow exceptions on unmounting without boundaries', () => {
568 - var container = document.createElement('div');
568 + const container = document.createElement('div');
569 ReactDOM.render(<BrokenComponentWillUnmount />, container);
570 expect(() => {
571 ReactDOM.unmountComponentAtNode(container);
@@ -573,9 +573,9 @@ describe('ReactErrorBoundaries', () => {
573 });
574
575 it('prevents errors from leaking into other roots', () => {
576 - var container1 = document.createElement('div');
577 - var container2 = document.createElement('div');
578 - var container3 = document.createElement('div');
576 + const container1 = document.createElement('div');
577 + const container2 = document.createElement('div');
578 + const container3 = document.createElement('div');
579
580 ReactDOM.render(<span>Before 1</span>, container1);
581 expect(() => {
@@ -610,7 +610,7 @@ describe('ReactErrorBoundaries', () => {
610 });
611
612 it('renders an error state if child throws in render', () => {
613 - var container = document.createElement('div');
613 + const container = document.createElement('div');
614 ReactDOM.render(
615 <ErrorBoundary>
616 <BrokenRender />
@@ -640,7 +640,7 @@ describe('ReactErrorBoundaries', () => {
640 });
641
642 it('renders an error state if child throws in constructor', () => {
643 - var container = document.createElement('div');
643 + const container = document.createElement('div');
644 ReactDOM.render(
645 <ErrorBoundary>
646 <BrokenConstructor />
@@ -668,7 +668,7 @@ describe('ReactErrorBoundaries', () => {
668 });
669
670 it('renders an error state if child throws in componentWillMount', () => {
671 - var container = document.createElement('div');
671 + const container = document.createElement('div');
672 ReactDOM.render(
673 <ErrorBoundary>
674 <BrokenComponentWillMount />
@@ -708,7 +708,7 @@ describe('ReactErrorBoundaries', () => {
708 }
709 }
710
711 - var container = document.createElement('div');
711 + const container = document.createElement('div');
712 ReactDOM.render(
713 <ErrorBoundary>
714 <BrokenComponentWillMountWithContext />
@@ -736,7 +736,7 @@ describe('ReactErrorBoundaries', () => {
736 foo: PropTypes.number,
737 };
738
739 - var container = document.createElement('div');
739 + const container = document.createElement('div');
740 ReactDOM.render(
741 <ErrorBoundary>
742 <BrokenComponentWillMountWithContext />
@@ -751,7 +751,7 @@ describe('ReactErrorBoundaries', () => {
751 return <ErrorMessage message={error.message} />;
752 }
753
754 - var container = document.createElement('div');
754 + const container = document.createElement('div');
755 ReactDOM.render(
756 <ErrorBoundary renderError={renderError}>
757 <BrokenRender />
@@ -785,7 +785,7 @@ describe('ReactErrorBoundaries', () => {
785 });
786
787 it('propagates errors on retry on mounting', () => {
788 - var container = document.createElement('div');
788 + const container = document.createElement('div');
789 ReactDOM.render(
790 <ErrorBoundary>
791 <RetryErrorBoundary>
@@ -829,7 +829,7 @@ describe('ReactErrorBoundaries', () => {
829 });
830
831 it('propagates errors inside boundary during componentWillMount', () => {
832 - var container = document.createElement('div');
832 + const container = document.createElement('div');
833 ReactDOM.render(
834 <ErrorBoundary>
835 <BrokenComponentWillMountErrorBoundary />
@@ -857,7 +857,7 @@ describe('ReactErrorBoundaries', () => {
857 });
858
859 it('propagates errors inside boundary while rendering error state', () => {
860 - var container = document.createElement('div');
860 + const container = document.createElement('div');
861 ReactDOM.render(
862 <ErrorBoundary>
863 <BrokenRenderErrorBoundary>
@@ -900,7 +900,7 @@ describe('ReactErrorBoundaries', () => {
900 });
901
902 it('does not call componentWillUnmount when aborting initial mount', () => {
903 - var container = document.createElement('div');
903 + const container = document.createElement('div');
904 ReactDOM.render(
905 <ErrorBoundary>
906 <Normal />
@@ -945,7 +945,7 @@ describe('ReactErrorBoundaries', () => {
945 log.push('Error message ref is set to ' + x);
946 }
947
948 - var container = document.createElement('div');
948 + const container = document.createElement('div');
949 ReactDOM.render(
950 <ErrorBoundary errorMessageRef={errorMessageRef}>
951 <div ref={childRef} />
@@ -982,7 +982,7 @@ describe('ReactErrorBoundaries', () => {
982 });
983
984 it('successfully mounts if no error occurs', () => {
985 - var container = document.createElement('div');
985 + const container = document.createElement('div');
986 ReactDOM.render(
987 <ErrorBoundary>
988 <div>Mounted successfully.</div>
@@ -1003,7 +1003,7 @@ describe('ReactErrorBoundaries', () => {
1003 });
1004
1005 it('catches if child throws in constructor during update', () => {
1006 - var container = document.createElement('div');
1006 + const container = document.createElement('div');
1007 ReactDOM.render(
1008 <ErrorBoundary>
1009 <Normal />
@@ -1051,7 +1051,7 @@ describe('ReactErrorBoundaries', () => {
1051 });
1052
1053 it('catches if child throws in componentWillMount during update', () => {
1054 - var container = document.createElement('div');
1054 + const container = document.createElement('div');
1055 ReactDOM.render(
1056 <ErrorBoundary>
1057 <Normal />
@@ -1100,7 +1100,7 @@ describe('ReactErrorBoundaries', () => {
1100 });
1101
1102 it('catches if child throws in componentWillReceiveProps during update', () => {
1103 - var container = document.createElement('div');
1103 + const container = document.createElement('div');
1104 ReactDOM.render(
1105 <ErrorBoundary>
1106 <Normal />
@@ -1144,7 +1144,7 @@ describe('ReactErrorBoundaries', () => {
1144 });
1145
1146 it('catches if child throws in componentWillUpdate during update', () => {
1147 - var container = document.createElement('div');
1147 + const container = document.createElement('div');
1148 ReactDOM.render(
1149 <ErrorBoundary>
1150 <Normal />
@@ -1189,7 +1189,7 @@ describe('ReactErrorBoundaries', () => {
1189 });
1190
1191 it('catches if child throws in render during update', () => {
1192 - var container = document.createElement('div');
1192 + const container = document.createElement('div');
1193 ReactDOM.render(
1194 <ErrorBoundary>
1195 <Normal />
@@ -1248,7 +1248,7 @@ describe('ReactErrorBoundaries', () => {
1248 log.push('Error message ref is set to ' + x);
1249 }
1250
1251 - var container = document.createElement('div');
1251 + const container = document.createElement('div');
1252 ReactDOM.render(
1253 <ErrorBoundary errorMessageRef={errorMessageRef}>
1254 <div ref={child1Ref} />
@@ -1302,7 +1302,7 @@ describe('ReactErrorBoundaries', () => {
1302 });
1303
1304 it('recovers from componentWillUnmount errors on update', () => {
1305 - var container = document.createElement('div');
1305 + const container = document.createElement('div');
1306 ReactDOM.render(
1307 <ErrorBoundary>
1308 <BrokenComponentWillUnmount />
@@ -1354,7 +1354,7 @@ describe('ReactErrorBoundaries', () => {
1354 });
1355
1356 it('recovers from nested componentWillUnmount errors on update', () => {
1357 - var container = document.createElement('div');
1357 + const container = document.createElement('div');
1358 ReactDOM.render(
1359 <ErrorBoundary>
1360 <Normal>
@@ -1418,7 +1418,7 @@ describe('ReactErrorBoundaries', () => {
1418 return <div>Caught an outer error: {error.message}.</div>;
1419 }
1420
1421 - var container = document.createElement('div');
1421 + const container = document.createElement('div');
1422 ReactDOM.render(
1423 <ErrorBoundary
1424 logName="OuterErrorBoundary"
@@ -1480,7 +1480,7 @@ describe('ReactErrorBoundaries', () => {
1480 });
1481
1482 it('can recover from error state', () => {
1483 - var container = document.createElement('div');
1483 + const container = document.createElement('div');
1484 ReactDOM.render(
1485 <ErrorBoundary>
1486 <BrokenRender />
@@ -1528,7 +1528,7 @@ describe('ReactErrorBoundaries', () => {
1528 });
1529
1530 it('can update multiple times in error state', () => {
1531 - var container = document.createElement('div');
1531 + const container = document.createElement('div');
1532 ReactDOM.render(
1533 <ErrorBoundary>
1534 <BrokenRender />
@@ -1552,7 +1552,7 @@ describe('ReactErrorBoundaries', () => {
1552 });
1553
1554 it("doesn't get into inconsistent state during removals", () => {
1555 - var container = document.createElement('div');
1555 + const container = document.createElement('div');
1556 ReactDOM.render(
1557 <ErrorBoundary>
1558 <Normal />
@@ -1571,7 +1571,7 @@ describe('ReactErrorBoundaries', () => {
1571 });
1572
1573 it("doesn't get into inconsistent state during additions", () => {
1574 - var container = document.createElement('div');
1574 + const container = document.createElement('div');
1575 ReactDOM.render(<ErrorBoundary />, container);
1576 ReactDOM.render(
1577 <ErrorBoundary>
@@ -1590,17 +1590,17 @@ describe('ReactErrorBoundaries', () => {
1590
1591 it("doesn't get into inconsistent state during reorders", () => {
1592 function getAMixOfNormalAndBrokenRenderElements() {
1593 - var elements = [];
1594 - for (var i = 0; i < 100; i++) {
1593 + const elements = [];
1594 + for (let i = 0; i < 100; i++) {
1595 elements.push(<Normal key={i} />);
1596 }
1597 elements.push(<MaybeBrokenRender key={100} />);
1598
1599 - var currentIndex = elements.length;
1599 + let currentIndex = elements.length;
1600 while (0 !== currentIndex) {
1601 - var randomIndex = Math.floor(Math.random() * currentIndex);
1601 + const randomIndex = Math.floor(Math.random() * currentIndex);
1602 currentIndex -= 1;
1603 - var temporaryValue = elements[currentIndex];
1603 + const temporaryValue = elements[currentIndex];
1604 elements[currentIndex] = elements[randomIndex];
1605 elements[randomIndex] = temporaryValue;
1606 }
@@ -1616,8 +1616,8 @@ describe('ReactErrorBoundaries', () => {
1616 }
1617 }
1618
1619 - var fail = false;
1620 - var container = document.createElement('div');
1619 + let fail = false;
1620 + const container = document.createElement('div');
1621 ReactDOM.render(
1622 <ErrorBoundary>{getAMixOfNormalAndBrokenRenderElements()}</ErrorBoundary>,
1623 container,
@@ -1637,7 +1637,7 @@ describe('ReactErrorBoundaries', () => {
1637 });
1638
1639 it('catches errors originating downstream', () => {
1640 - var fail = false;
1640 + let fail = false;
1641 class Stateful extends React.Component {
1642 state = {shouldThrow: false};
1643
@@ -1650,8 +1650,8 @@ describe('ReactErrorBoundaries', () => {
1650 }
1651 }
1652
1653 - var statefulInst;
1654 - var container = document.createElement('div');
1653 + let statefulInst;
1654 + const container = document.createElement('div');
1655 ReactDOM.render(
1656 <ErrorBoundary>
1657 <Stateful ref={inst => (statefulInst = inst)} />
@@ -1679,7 +1679,7 @@ describe('ReactErrorBoundaries', () => {
1679 });
1680
1681 it('catches errors in componentDidMount', () => {
1682 - var container = document.createElement('div');
1682 + const container = document.createElement('div');
1683 ReactDOM.render(
1684 <ErrorBoundary>
1685 <BrokenComponentWillUnmount>
@@ -1734,7 +1734,7 @@ describe('ReactErrorBoundaries', () => {
1734 });
1735
1736 it('catches errors in componentDidUpdate', () => {
1737 - var container = document.createElement('div');
1737 + const container = document.createElement('div');
1738 ReactDOM.render(
1739 <ErrorBoundary>
1740 <BrokenComponentDidUpdate />
@@ -1773,7 +1773,7 @@ describe('ReactErrorBoundaries', () => {
1773 });
1774
1775 it('propagates errors inside boundary during componentDidMount', () => {
1776 - var container = document.createElement('div');
1776 + const container = document.createElement('div');
1777 ReactDOM.render(
1778 <ErrorBoundary>
1779 <BrokenComponentDidMountErrorBoundary
@@ -1817,7 +1817,7 @@ describe('ReactErrorBoundaries', () => {
1817 return <div>Caught an updating error: {error.message}.</div>;
1818 }
1819
1820 - var container = document.createElement('div');
1820 + const container = document.createElement('div');
1821 ReactDOM.render(
1822 <ErrorBoundary logName="OuterErrorBoundary">
1823 <ErrorBoundary
@@ -1934,7 +1934,7 @@ describe('ReactErrorBoundaries', () => {
1934 });
1935
1936 it('renders empty output if error boundary does not handle the error', () => {
1937 - var container = document.createElement('div');
1937 + const container = document.createElement('div');
1938 ReactDOM.render(
1939 <div>
1940 Sibling
@@ -1985,7 +1985,7 @@ describe('ReactErrorBoundaries', () => {
1985 }
1986 }
1987
1988 - var container = document.createElement('div');
1988 + const container = document.createElement('div');
1989 try {
1990 // Here, we test the behavior where there is no error boundary and we
1991 // delegate to the host root.
packages/react-dom/src/__tests__/ReactEventIndependence-test.js
+11 -11
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactTestUtils;
12 +let React;
13 +let ReactDOM;
14 +let ReactTestUtils;
15
16 describe('ReactEventIndependence', () => {
17 beforeEach(() => {
@@ -23,8 +23,8 @@ describe('ReactEventIndependence', () => {
23 });
24
25 it('does not crash with other react inside', () => {
26 - var clicks = 0;
27 - var div = ReactTestUtils.renderIntoDocument(
26 + let clicks = 0;
27 + const div = ReactTestUtils.renderIntoDocument(
28 <div
29 onClick={() => clicks++}
30 dangerouslySetInnerHTML={{
@@ -37,10 +37,10 @@ describe('ReactEventIndependence', () => {
37 });
38
39 it('does not crash with other react outside', () => {
40 - var clicks = 0;
41 - var outer = document.createElement('div');
40 + let clicks = 0;
41 + const outer = document.createElement('div');
42 outer.setAttribute('data-reactid', '.z');
43 - var inner = ReactDOM.render(
43 + const inner = ReactDOM.render(
44 <button onClick={() => clicks++}>click me</button>,
45 outer,
46 );
@@ -49,9 +49,9 @@ describe('ReactEventIndependence', () => {
49 });
50
51 it('does not when event fired on unmounted tree', () => {
52 - var clicks = 0;
53 - var container = document.createElement('div');
54 - var button = ReactDOM.render(
52 + let clicks = 0;
53 + const container = document.createElement('div');
54 + const button = ReactDOM.render(
55 <button onClick={() => clicks++}>click me</button>,
56 container,
57 );
packages/react-dom/src/__tests__/ReactIdentity-test.js
+32 -32
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactTestUtils;
12 +let React;
13 +let ReactDOM;
14 +let ReactTestUtils;
15
16 describe('ReactIdentity', () => {
17 beforeEach(() => {
@@ -22,19 +22,19 @@ describe('ReactIdentity', () => {
22 });
23
24 it('should allow key property to express identity', () => {
25 - var node;
26 - var Component = props => (
25 + let node;
26 + const Component = props => (
27 <div ref={c => (node = c)}>
28 <div key={props.swap ? 'banana' : 'apple'} />
29 <div key={props.swap ? 'apple' : 'banana'} />
30 </div>
31 );
32
33 - var container = document.createElement('div');
33 + const container = document.createElement('div');
34 ReactDOM.render(<Component />, container);
35 - var origChildren = Array.from(node.childNodes);
35 + const origChildren = Array.from(node.childNodes);
36 ReactDOM.render(<Component swap={true} />, container);
37 - var newChildren = Array.from(node.childNodes);
37 + const newChildren = Array.from(node.childNodes);
38 expect(origChildren[0]).toBe(newChildren[1]);
39 expect(origChildren[1]).toBe(newChildren[0]);
40 });
@@ -46,9 +46,9 @@ describe('ReactIdentity', () => {
46 }
47 }
48
49 - var container = document.createElement('div');
50 - var node1;
51 - var node2;
49 + const container = document.createElement('div');
50 + let node1;
51 + let node2;
52 ReactDOM.render(
53 <Wrapper key="wrap1">
54 <span ref={c => (node1 = c)} />
@@ -76,20 +76,20 @@ describe('ReactIdentity', () => {
76 }
77 }
78
79 - var instance = ReactDOM.render(<Wrapper />, container);
80 - var span = instance.refs.span;
79 + const instance = ReactDOM.render(<Wrapper />, container);
80 + const span = instance.refs.span;
81 expect(ReactDOM.findDOMNode(span)).not.toBe(null);
82 }
83
84 it('should allow any character as a key, in a detached parent', () => {
85 - var detachedContainer = document.createElement('div');
85 + const detachedContainer = document.createElement('div');
86 renderAComponentWithKeyIntoContainer("<'WEIRD/&\\key'>", detachedContainer);
87 });
88
89 it('should allow any character as a key, in an attached parent', () => {
90 // This test exists to protect against implementation details that
91 // incorrectly query escaped IDs using DOM tools like getElementById.
92 - var attachedContainer = document.createElement('div');
92 + const attachedContainer = document.createElement('div');
93 document.body.appendChild(attachedContainer);
94
95 renderAComponentWithKeyIntoContainer("<'WEIRD/&\\key'>", attachedContainer);
@@ -98,10 +98,10 @@ describe('ReactIdentity', () => {
98 });
99
100 it('should not allow scripts in keys to execute', () => {
101 - var h4x0rKey =
101 + const h4x0rKey =
102 '"><script>window[\'YOUVEBEENH4X0RED\']=true;</script><div id="';
103
104 - var attachedContainer = document.createElement('div');
104 + const attachedContainer = document.createElement('div');
105 document.body.appendChild(attachedContainer);
106
107 renderAComponentWithKeyIntoContainer(h4x0rKey, attachedContainer);
@@ -113,9 +113,9 @@ describe('ReactIdentity', () => {
113 });
114
115 it('should let restructured components retain their uniqueness', () => {
116 - var instance0 = <span />;
117 - var instance1 = <span />;
118 - var instance2 = <span />;
116 + const instance0 = <span />;
117 + const instance1 = <span />;
118 + const instance2 = <span />;
119
120 class TestComponent extends React.Component {
121 render() {
@@ -146,9 +146,9 @@ describe('ReactIdentity', () => {
146 });
147
148 it('should let nested restructures retain their uniqueness', () => {
149 - var instance0 = <span />;
150 - var instance1 = <span />;
151 - var instance2 = <span />;
149 + const instance0 = <span />;
150 + const instance1 = <span />;
151 + const instance2 = <span />;
152
153 class TestComponent extends React.Component {
154 render() {
@@ -232,26 +232,26 @@ describe('ReactIdentity', () => {
232 }
233 }
234
235 - var instance0 = <span key="A" />;
236 - var instance1 = <span key="B" />;
235 + const instance0 = <span key="A" />;
236 + const instance1 = <span key="B" />;
237
238 - var wrapped = <TestContainer first={instance0} second={instance1} />;
238 + let wrapped = <TestContainer first={instance0} second={instance1} />;
239
240 wrapped = ReactDOM.render(wrapped, document.createElement('div'));
241 - var div = ReactDOM.findDOMNode(wrapped);
241 + const div = ReactDOM.findDOMNode(wrapped);
242
243 - var beforeA = div.childNodes[0];
244 - var beforeB = div.childNodes[1];
243 + const beforeA = div.childNodes[0];
244 + const beforeB = div.childNodes[1];
245 wrapped.swap();
246 - var afterA = div.childNodes[1];
247 - var afterB = div.childNodes[0];
246 + const afterA = div.childNodes[1];
247 + const afterB = div.childNodes[0];
248
249 expect(beforeA).toBe(afterA);
250 expect(beforeB).toBe(afterB);
251 });
252
253 it('should not allow implicit and explicit keys to collide', () => {
254 - var component = (
254 + const component = (
255 <div>
256 <span />
257 <span key="0" />
packages/react-dom/src/__tests__/ReactMockedComponent-test.js
+6 -6
@@ -9,11 +9,11 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
12 +let React;
13 +let ReactDOM;
14
15 -var MockedComponent;
16 -var ReactDOMServer;
15 +let MockedComponent;
16 +let ReactDOMServer;
17
18 describe('ReactMockedComponent', () => {
19 beforeEach(() => {
@@ -31,7 +31,7 @@ describe('ReactMockedComponent', () => {
31 });
32
33 it('should allow a mocked component to be rendered in dev', () => {
34 - var container = document.createElement('container');
34 + const container = document.createElement('container');
35 if (__DEV__) {
36 ReactDOM.render(<MockedComponent />, container);
37 } else {
@@ -42,7 +42,7 @@ describe('ReactMockedComponent', () => {
42 });
43
44 it('should allow a mocked component to be updated in dev', () => {
45 - var container = document.createElement('container');
45 + const container = document.createElement('container');
46 if (__DEV__) {
47 ReactDOM.render(<MockedComponent />, container);
48 } else {
packages/react-dom/src/__tests__/ReactMount-test.js
+28 -28
@@ -11,10 +11,10 @@
11
12 const {COMMENT_NODE} = require('../shared/HTMLNodeType');
13
14 -var React;
15 -var ReactDOM;
16 -var ReactDOMServer;
17 -var ReactTestUtils;
14 +let React;
15 +let ReactDOM;
16 +let ReactDOMServer;
17 +let ReactTestUtils;
18
19 describe('ReactMount', () => {
20 beforeEach(() => {
@@ -28,7 +28,7 @@ describe('ReactMount', () => {
28
29 describe('unmountComponentAtNode', () => {
30 it('throws when given a non-node', () => {
31 - var nodeArray = document.getElementsByTagName('div');
31 + const nodeArray = document.getElementsByTagName('div');
32 expect(function() {
33 ReactDOM.unmountComponentAtNode(nodeArray);
34 }).toThrowError(
@@ -37,14 +37,14 @@ describe('ReactMount', () => {
37 });
38
39 it('returns false on non-React containers', () => {
40 - var d = document.createElement('div');
40 + const d = document.createElement('div');
41 d.innerHTML = '<b>hellooo</b>';
42 expect(ReactDOM.unmountComponentAtNode(d)).toBe(false);
43 expect(d.textContent).toBe('hellooo');
44 });
45
46 it('returns true on React containers', () => {
47 - var d = document.createElement('div');
47 + const d = document.createElement('div');
48 ReactDOM.render(<b>hellooo</b>, d);
49 expect(d.textContent).toBe('hellooo');
50 expect(ReactDOM.unmountComponentAtNode(d)).toBe(true);
@@ -72,7 +72,7 @@ describe('ReactMount', () => {
72 });
73
74 it('should render different components in same root', () => {
75 - var container = document.createElement('container');
75 + const container = document.createElement('container');
76 document.body.appendChild(container);
77
78 ReactDOM.render(<div />, container);
@@ -83,10 +83,10 @@ describe('ReactMount', () => {
83 });
84
85 it('should unmount and remount if the key changes', () => {
86 - var container = document.createElement('container');
86 + const container = document.createElement('container');
87
88 - var mockMount = jest.fn();
89 - var mockUnmount = jest.fn();
88 + const mockMount = jest.fn();
89 + const mockUnmount = jest.fn();
90
91 class Component extends React.Component {
92 componentDidMount = mockMount;
@@ -118,15 +118,15 @@ describe('ReactMount', () => {
118 });
119
120 it('should reuse markup if rendering to the same target twice', () => {
121 - var container = document.createElement('container');
122 - var instance1 = ReactDOM.render(<div />, container);
123 - var instance2 = ReactDOM.render(<div />, container);
121 + const container = document.createElement('container');
122 + const instance1 = ReactDOM.render(<div />, container);
123 + const instance2 = ReactDOM.render(<div />, container);
124
125 expect(instance1 === instance2).toBe(true);
126 });
127
128 it('should warn if mounting into left padded rendered markup', () => {
129 - var container = document.createElement('container');
129 + const container = document.createElement('container');
130 container.innerHTML = ReactDOMServer.renderToString(<div />) + ' ';
131
132 spyOnDev(console, 'error');
@@ -140,7 +140,7 @@ describe('ReactMount', () => {
140 });
141
142 it('should warn if mounting into right padded rendered markup', () => {
143 - var container = document.createElement('container');
143 + const container = document.createElement('container');
144 container.innerHTML = ' ' + ReactDOMServer.renderToString(<div />);
145
146 spyOnDev(console, 'error');
@@ -154,7 +154,7 @@ describe('ReactMount', () => {
154 });
155
156 it('should not warn if mounting into non-empty node', () => {
157 - var container = document.createElement('container');
157 + const container = document.createElement('container');
158 container.innerHTML = '<div></div>';
159
160 spyOnDev(console, 'error');
@@ -165,7 +165,7 @@ describe('ReactMount', () => {
165 });
166
167 it('should warn when mounting into document.body', () => {
168 - var iFrame = document.createElement('iframe');
168 + const iFrame = document.createElement('iframe');
169 document.body.appendChild(iFrame);
170 spyOnDev(console, 'error');
171
@@ -180,8 +180,8 @@ describe('ReactMount', () => {
180 });
181
182 it('should account for escaping on a checksum mismatch', () => {
183 - var div = document.createElement('div');
184 - var markup = ReactDOMServer.renderToString(
183 + const div = document.createElement('div');
184 + const markup = ReactDOMServer.renderToString(
185 <div>This markup contains an nbsp entity: &nbsp; server text</div>,
186 );
187 div.innerHTML = markup;
@@ -201,7 +201,7 @@ describe('ReactMount', () => {
201 });
202
203 it('should warn if render removes React-rendered children', () => {
204 - var container = document.createElement('container');
204 + const container = document.createElement('container');
205
206 class Component extends React.Component {
207 render() {
@@ -217,7 +217,7 @@ describe('ReactMount', () => {
217
218 // Test that blasting away children throws a warning
219 spyOnDev(console, 'error');
220 - var rootNode = container.firstChild;
220 + const rootNode = container.firstChild;
221 ReactDOM.render(<span />, rootNode);
222 if (__DEV__) {
223 expect(console.error.calls.count()).toBe(1);
@@ -232,8 +232,8 @@ describe('ReactMount', () => {
232
233 it('should warn if the unmounted node was rendered by another copy of React', () => {
234 jest.resetModules();
235 - var ReactDOMOther = require('react-dom');
236 - var container = document.createElement('div');
235 + const ReactDOMOther = require('react-dom');
236 + const container = document.createElement('div');
237
238 class Component extends React.Component {
239 render() {
@@ -267,8 +267,8 @@ describe('ReactMount', () => {
267 });
268
269 it('passes the correct callback context', () => {
270 - var container = document.createElement('div');
271 - var calls = 0;
270 + const container = document.createElement('div');
271 + let calls = 0;
272
273 ReactDOM.render(<div />, container, function() {
274 expect(this.nodeName).toBe('DIV');
@@ -307,8 +307,8 @@ describe('ReactMount', () => {
307 });
308
309 it('initial mount is sync inside batchedUpdates, but task work is deferred until the end of the batch', () => {
310 - var container1 = document.createElement('div');
311 - var container2 = document.createElement('div');
310 + const container1 = document.createElement('div');
311 + const container2 = document.createElement('div');
312
313 class Foo extends React.Component {
314 state = {active: false};
packages/react-dom/src/__tests__/ReactMountDestruction-test.js
+13 -13
@@ -9,21 +9,21 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactDOM = require('react-dom');
12 +const React = require('react');
13 +const ReactDOM = require('react-dom');
14
15 describe('ReactMount', () => {
16 it('should destroy a react root upon request', () => {
17 - var mainContainerDiv = document.createElement('div');
17 + const mainContainerDiv = document.createElement('div');
18 document.body.appendChild(mainContainerDiv);
19
20 - var instanceOne = <div className="firstReactDiv" />;
21 - var firstRootDiv = document.createElement('div');
20 + const instanceOne = <div className="firstReactDiv" />;
21 + const firstRootDiv = document.createElement('div');
22 mainContainerDiv.appendChild(firstRootDiv);
23 ReactDOM.render(instanceOne, firstRootDiv);
24
25 - var instanceTwo = <div className="secondReactDiv" />;
26 - var secondRootDiv = document.createElement('div');
25 + const instanceTwo = <div className="secondReactDiv" />;
26 + const secondRootDiv = document.createElement('div');
27 mainContainerDiv.appendChild(secondRootDiv);
28 ReactDOM.render(instanceTwo, secondRootDiv);
29
@@ -39,9 +39,9 @@ describe('ReactMount', () => {
39 });
40
41 it('should warn when unmounting a non-container root node', () => {
42 - var mainContainerDiv = document.createElement('div');
42 + const mainContainerDiv = document.createElement('div');
43
44 - var component = (
44 + const component = (
45 <div>
46 <div />
47 </div>
@@ -49,7 +49,7 @@ describe('ReactMount', () => {
49 ReactDOM.render(component, mainContainerDiv);
50
51 // Test that unmounting at a root node gives a helpful warning
52 - var rootDiv = mainContainerDiv.firstChild;
52 + const rootDiv = mainContainerDiv.firstChild;
53 spyOnDev(console, 'error');
54 ReactDOM.unmountComponentAtNode(rootDiv);
55 if (__DEV__) {
@@ -64,9 +64,9 @@ describe('ReactMount', () => {
64 });
65
66 it('should warn when unmounting a non-container, non-root node', () => {
67 - var mainContainerDiv = document.createElement('div');
67 + const mainContainerDiv = document.createElement('div');
68
69 - var component = (
69 + const component = (
70 <div>
71 <div>
72 <div />
@@ -76,7 +76,7 @@ describe('ReactMount', () => {
76 ReactDOM.render(component, mainContainerDiv);
77
78 // Test that unmounting at a non-root node gives a different warning
79 - var nonRootDiv = mainContainerDiv.firstChild.firstChild;
79 + const nonRootDiv = mainContainerDiv.firstChild.firstChild;
80 spyOnDev(console, 'error');
81 ReactDOM.unmountComponentAtNode(nonRootDiv);
82 if (__DEV__) {
packages/react-dom/src/__tests__/ReactMultiChild-test.js
+24 -24
@@ -14,8 +14,8 @@ describe('ReactMultiChild', () => {
14 return str && str.replace(/\(at .+?:\d+\)/g, '(at **)');
15 }
16
17 - var React;
18 - var ReactDOM;
17 + let React;
18 + let ReactDOM;
19
20 beforeEach(() => {
21 jest.resetModules();
@@ -25,11 +25,11 @@ describe('ReactMultiChild', () => {
25
26 describe('reconciliation', () => {
27 it('should update children when possible', () => {
28 - var container = document.createElement('div');
28 + const container = document.createElement('div');
29
30 - var mockMount = jest.fn();
31 - var mockUpdate = jest.fn();
32 - var mockUnmount = jest.fn();
30 + const mockMount = jest.fn();
31 + const mockUpdate = jest.fn();
32 + const mockUnmount = jest.fn();
33
34 class MockComponent extends React.Component {
35 componentDidMount = mockMount;
@@ -68,10 +68,10 @@ describe('ReactMultiChild', () => {
68 });
69
70 it('should replace children with different constructors', () => {
71 - var container = document.createElement('div');
71 + const container = document.createElement('div');
72
73 - var mockMount = jest.fn();
74 - var mockUnmount = jest.fn();
73 + const mockMount = jest.fn();
74 + const mockUnmount = jest.fn();
75
76 class MockComponent extends React.Component {
77 componentDidMount = mockMount;
@@ -106,10 +106,10 @@ describe('ReactMultiChild', () => {
106 });
107
108 it('should NOT replace children with different owners', () => {
109 - var container = document.createElement('div');
109 + const container = document.createElement('div');
110
111 - var mockMount = jest.fn();
112 - var mockUnmount = jest.fn();
111 + const mockMount = jest.fn();
112 + const mockUnmount = jest.fn();
113
114 class MockComponent extends React.Component {
115 componentDidMount = mockMount;
@@ -145,10 +145,10 @@ describe('ReactMultiChild', () => {
145 });
146
147 it('should replace children with different keys', () => {
148 - var container = document.createElement('div');
148 + const container = document.createElement('div');
149
150 - var mockMount = jest.fn();
151 - var mockUnmount = jest.fn();
150 + const mockMount = jest.fn();
151 + const mockUnmount = jest.fn();
152
153 class MockComponent extends React.Component {
154 componentDidMount = mockMount;
@@ -185,7 +185,7 @@ describe('ReactMultiChild', () => {
185 it('should warn for duplicated array keys with component stack info', () => {
186 spyOnDev(console, 'error');
187
188 - var container = document.createElement('div');
188 + const container = document.createElement('div');
189
190 class WrapperComponent extends React.Component {
191 render() {
@@ -231,7 +231,7 @@ describe('ReactMultiChild', () => {
231 it('should warn for duplicated iterable keys with component stack info', () => {
232 spyOnDev(console, 'error');
233
234 - var container = document.createElement('div');
234 + const container = document.createElement('div');
235
236 class WrapperComponent extends React.Component {
237 render() {
@@ -252,7 +252,7 @@ describe('ReactMultiChild', () => {
252 function createIterable(array) {
253 return {
254 '@@iterator': function() {
255 - var i = 0;
255 + let i = 0;
256 return {
257 next() {
258 const next = {
@@ -303,7 +303,7 @@ describe('ReactMultiChild', () => {
303 return <div>{new Map([['foo', 0], ['bar', 1]])}</div>;
304 }
305 }
306 - var container = document.createElement('div');
306 + const container = document.createElement('div');
307 ReactDOM.render(<Parent />, container);
308 if (__DEV__) {
309 expect(console.error.calls.count()).toBe(1);
@@ -342,7 +342,7 @@ describe('ReactMultiChild', () => {
342 }
343 }
344
345 - var container = document.createElement('div');
345 + const container = document.createElement('div');
346
347 // Two random strings -- some additions, some removals, some moves
348 ReactDOM.render(<Letters letters="XKwHomsNjIkBcQWFbiZU" />, container);
@@ -352,7 +352,7 @@ describe('ReactMultiChild', () => {
352 });
353
354 it('prepares new children before unmounting old', () => {
355 - var log = [];
355 + const log = [];
356
357 class Spy extends React.Component {
358 componentWillMount() {
@@ -372,10 +372,10 @@ describe('ReactMultiChild', () => {
372
373 // These are reference-unequal so they will be swapped even if they have
374 // matching keys
375 - var SpyA = props => <Spy {...props} />;
376 - var SpyB = props => <Spy {...props} />;
375 + const SpyA = props => <Spy {...props} />;
376 + const SpyB = props => <Spy {...props} />;
377
378 - var container = document.createElement('div');
378 + const container = document.createElement('div');
379 ReactDOM.render(
380 <div>
381 <SpyA key="one" name="oneA" />
packages/react-dom/src/__tests__/ReactMultiChildReconcile-test.js
+68 -68
@@ -9,12 +9,12 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactDOM = require('react-dom');
12 +const React = require('react');
13 +const ReactDOM = require('react-dom');
14
15 -var stripEmptyValues = function(obj) {
16 - var ret = {};
17 - for (var name in obj) {
15 +const stripEmptyValues = function(obj) {
16 + const ret = {};
17 + for (const name in obj) {
18 if (!obj.hasOwnProperty(name)) {
19 continue;
20 }
@@ -25,7 +25,7 @@ var stripEmptyValues = function(obj) {
25 return ret;
26 };
27
28 -var idCounter = 123;
28 +let idCounter = 123;
29
30 /**
31 * Contains internal static internal state in order to test that updates to
@@ -66,8 +66,8 @@ class FriendsStatusDisplay extends React.Component {
66 * `this._renderedChildren` (surprisingly).
67 */
68 getOriginalKeys() {
69 - var originalKeys = [];
70 - for (var key in this.props.usernameToStatus) {
69 + const originalKeys = [];
70 + for (const key in this.props.usernameToStatus) {
71 if (this.props.usernameToStatus[key]) {
72 originalKeys.push(key);
73 }
@@ -80,10 +80,10 @@ class FriendsStatusDisplay extends React.Component {
80 * `this.props.usernameToStatus`.
81 */
82 getStatusDisplays() {
83 - var res = {};
84 - var originalKeys = this.getOriginalKeys();
85 - for (var i = 0; i < originalKeys.length; i++) {
86 - var key = originalKeys[i];
83 + const res = {};
84 + const originalKeys = this.getOriginalKeys();
85 + for (let i = 0; i < originalKeys.length; i++) {
86 + const key = originalKeys[i];
87 res[key] = this.refs[key];
88 }
89 return res;
@@ -97,9 +97,9 @@ class FriendsStatusDisplay extends React.Component {
97 * it to be more declarative before making ref resolution indeterministic.
98 */
99 verifyPreviousRefsResolved(flushedKey) {
100 - var originalKeys = this.getOriginalKeys();
101 - for (var i = 0; i < originalKeys.length; i++) {
102 - var key = originalKeys[i];
100 + const originalKeys = this.getOriginalKeys();
101 + for (let i = 0; i < originalKeys.length; i++) {
102 + const key = originalKeys[i];
103 if (key === flushedKey) {
104 // We are only interested in children up to the current key.
105 return;
@@ -109,9 +109,9 @@ class FriendsStatusDisplay extends React.Component {
109 }
110
111 render() {
112 - var children = [];
113 - for (var key in this.props.usernameToStatus) {
114 - var status = this.props.usernameToStatus[key];
112 + const children = [];
113 + for (const key in this.props.usernameToStatus) {
114 + const status = this.props.usernameToStatus[key];
115 children.push(
116 !status ? null : (
117 <StatusDisplay
@@ -124,7 +124,7 @@ class FriendsStatusDisplay extends React.Component {
124 ),
125 );
126 }
127 - var childrenToRender = this.props.prepareChildren(children);
127 + const childrenToRender = this.props.prepareChildren(children);
128 return <div>{childrenToRender}</div>;
129 }
130 }
@@ -142,9 +142,9 @@ function getInternalStateByUserName(statusDisplays) {
142 * message as well as the order of them.
143 */
144 function verifyStatuses(statusDisplays, props) {
145 - var nonEmptyStatusDisplays = stripEmptyValues(statusDisplays);
146 - var nonEmptyStatusProps = stripEmptyValues(props.usernameToStatus);
147 - var username;
145 + const nonEmptyStatusDisplays = stripEmptyValues(statusDisplays);
146 + const nonEmptyStatusProps = stripEmptyValues(props.usernameToStatus);
147 + let username;
148 expect(Object.keys(nonEmptyStatusDisplays).length).toEqual(
149 Object.keys(nonEmptyStatusProps).length,
150 );
@@ -179,7 +179,7 @@ function verifyStatuses(statusDisplays, props) {
179 * movements.
180 */
181 function verifyStatesPreserved(lastInternalStates, statusDisplays) {
182 - var key;
182 + let key;
183 for (key in statusDisplays) {
184 if (!statusDisplays.hasOwnProperty(key)) {
185 continue;
@@ -197,37 +197,37 @@ function verifyStatesPreserved(lastInternalStates, statusDisplays) {
197 * accurately reflects what is in the DOM.
198 */
199 function verifyDomOrderingAccurate(outerContainer, statusDisplays) {
200 - var containerNode = outerContainer.firstChild;
201 - var statusDisplayNodes = containerNode.childNodes;
202 - var orderedDomKeys = [];
203 - for (var i = 0; i < statusDisplayNodes.length; i++) {
204 - var contentKey = statusDisplayNodes[i].textContent;
200 + const containerNode = outerContainer.firstChild;
201 + const statusDisplayNodes = containerNode.childNodes;
202 + const orderedDomKeys = [];
203 + for (let i = 0; i < statusDisplayNodes.length; i++) {
204 + const contentKey = statusDisplayNodes[i].textContent;
205 orderedDomKeys.push(contentKey);
206 }
207
208 - var orderedLogicalKeys = [];
209 - var username;
208 + const orderedLogicalKeys = [];
209 + let username;
210 for (username in statusDisplays) {
211 if (!statusDisplays.hasOwnProperty(username)) {
212 continue;
213 }
214 - var statusDisplay = statusDisplays[username];
214 + const statusDisplay = statusDisplays[username];
215 orderedLogicalKeys.push(statusDisplay.props.contentKey);
216 }
217 expect(orderedDomKeys).toEqual(orderedLogicalKeys);
218 }
219
220 function testPropsSequenceWithPreparedChildren(sequence, prepareChildren) {
221 - var container = document.createElement('div');
222 - var parentInstance = ReactDOM.render(
221 + const container = document.createElement('div');
222 + const parentInstance = ReactDOM.render(
223 <FriendsStatusDisplay {...sequence[0]} prepareChildren={prepareChildren} />,
224 container,
225 );
226 - var statusDisplays = parentInstance.getStatusDisplays();
227 - var lastInternalStates = getInternalStateByUserName(statusDisplays);
226 + let statusDisplays = parentInstance.getStatusDisplays();
227 + let lastInternalStates = getInternalStateByUserName(statusDisplays);
228 verifyStatuses(statusDisplays, sequence[0]);
229
230 - for (var i = 1; i < sequence.length; i++) {
230 + for (let i = 1; i < sequence.length; i++) {
231 ReactDOM.render(
232 <FriendsStatusDisplay
233 {...sequence[i]}
@@ -270,22 +270,22 @@ describe('ReactMultiChildReconcile', () => {
270
271 it('should reset internal state if removed then readded in an array', () => {
272 // Test basics.
273 - var props = {
273 + const props = {
274 usernameToStatus: {
275 jcw: 'jcwStatus',
276 },
277 };
278
279 - var container = document.createElement('div');
280 - var parentInstance = ReactDOM.render(
279 + const container = document.createElement('div');
280 + const parentInstance = ReactDOM.render(
281 <FriendsStatusDisplay
282 {...props}
283 prepareChildren={prepareChildrenArray}
284 />,
285 container,
286 );
287 - var statusDisplays = parentInstance.getStatusDisplays();
288 - var startingInternalState = statusDisplays.jcw.getInternalState();
287 + let statusDisplays = parentInstance.getStatusDisplays();
288 + const startingInternalState = statusDisplays.jcw.getInternalState();
289
290 // Now remove the child.
291 ReactDOM.render(
@@ -312,22 +312,22 @@ describe('ReactMultiChildReconcile', () => {
312
313 it('should reset internal state if removed then readded in an iterable', () => {
314 // Test basics.
315 - var props = {
315 + const props = {
316 usernameToStatus: {
317 jcw: 'jcwStatus',
318 },
319 };
320
321 - var container = document.createElement('div');
322 - var parentInstance = ReactDOM.render(
321 + const container = document.createElement('div');
322 + const parentInstance = ReactDOM.render(
323 <FriendsStatusDisplay
324 {...props}
325 prepareChildren={prepareChildrenIterable}
326 />,
327 container,
328 );
329 - var statusDisplays = parentInstance.getStatusDisplays();
330 - var startingInternalState = statusDisplays.jcw.getInternalState();
329 + let statusDisplays = parentInstance.getStatusDisplays();
330 + const startingInternalState = statusDisplays.jcw.getInternalState();
331
332 // Now remove the child.
333 ReactDOM.render(
@@ -354,7 +354,7 @@ describe('ReactMultiChildReconcile', () => {
354
355 it('should create unique identity', () => {
356 // Test basics.
357 - var usernameToStatus = {
357 + const usernameToStatus = {
358 jcw: 'jcwStatus',
359 awalke: 'awalkeStatus',
360 bob: 'bobStatus',
@@ -364,7 +364,7 @@ describe('ReactMultiChildReconcile', () => {
364 });
365
366 it('should preserve order if children order has not changed', () => {
367 - var PROPS_SEQUENCE = [
367 + const PROPS_SEQUENCE = [
368 {
369 usernameToStatus: {
370 jcw: 'jcwStatus',
@@ -382,7 +382,7 @@ describe('ReactMultiChildReconcile', () => {
382 });
383
384 it('should transition from zero to one children correctly', () => {
385 - var PROPS_SEQUENCE = [
385 + const PROPS_SEQUENCE = [
386 {usernameToStatus: {}},
387 {
388 usernameToStatus: {
@@ -394,7 +394,7 @@ describe('ReactMultiChildReconcile', () => {
394 });
395
396 it('should transition from one to zero children correctly', () => {
397 - var PROPS_SEQUENCE = [
397 + const PROPS_SEQUENCE = [
398 {
399 usernameToStatus: {
400 first: 'firstStatus',
@@ -450,7 +450,7 @@ describe('ReactMultiChildReconcile', () => {
450 * of `FriendsStatusDisplay`, nothing related to React or these test cases.
451 */
452 it('should remove nulled out children at the beginning', () => {
453 - var PROPS_SEQUENCE = [
453 + const PROPS_SEQUENCE = [
454 {
455 usernameToStatus: {
456 jcw: 'jcwStatus',
@@ -468,7 +468,7 @@ describe('ReactMultiChildReconcile', () => {
468 });
469
470 it('should remove nulled out children at the end', () => {
471 - var PROPS_SEQUENCE = [
471 + const PROPS_SEQUENCE = [
472 {
473 usernameToStatus: {
474 jcw: 'jcwStatus',
@@ -486,7 +486,7 @@ describe('ReactMultiChildReconcile', () => {
486 });
487
488 it('should reverse the order of two children', () => {
489 - var PROPS_SEQUENCE = [
489 + const PROPS_SEQUENCE = [
490 {
491 usernameToStatus: {
492 userOne: 'userOneStatus',
@@ -504,7 +504,7 @@ describe('ReactMultiChildReconcile', () => {
504 });
505
506 it('should reverse the order of more than two children', () => {
507 - var PROPS_SEQUENCE = [
507 + const PROPS_SEQUENCE = [
508 {
509 usernameToStatus: {
510 userOne: 'userOneStatus',
@@ -524,7 +524,7 @@ describe('ReactMultiChildReconcile', () => {
524 });
525
526 it('should cycle order correctly', () => {
527 - var PROPS_SEQUENCE = [
527 + const PROPS_SEQUENCE = [
528 {
529 usernameToStatus: {
530 userOne: 'userOneStatus',
@@ -571,7 +571,7 @@ describe('ReactMultiChildReconcile', () => {
571 });
572
573 it('should cycle order correctly in the other direction', () => {
574 - var PROPS_SEQUENCE = [
574 + const PROPS_SEQUENCE = [
575 {
576 usernameToStatus: {
577 userOne: 'userOneStatus',
@@ -618,7 +618,7 @@ describe('ReactMultiChildReconcile', () => {
618 });
619
620 it('should remove nulled out children and ignore new null children', () => {
621 - var PROPS_SEQUENCE = [
621 + const PROPS_SEQUENCE = [
622 {
623 usernameToStatus: {
624 jcw: 'jcwStatus',
@@ -637,7 +637,7 @@ describe('ReactMultiChildReconcile', () => {
637 });
638
639 it('should remove nulled out children and reorder remaining', () => {
640 - var PROPS_SEQUENCE = [
640 + const PROPS_SEQUENCE = [
641 {
642 usernameToStatus: {
643 jcw: 'jcwStatus',
@@ -658,7 +658,7 @@ describe('ReactMultiChildReconcile', () => {
658 });
659
660 it('should append children to the end', () => {
661 - var PROPS_SEQUENCE = [
661 + const PROPS_SEQUENCE = [
662 {
663 usernameToStatus: {
664 jcw: 'jcwStatus',
@@ -677,7 +677,7 @@ describe('ReactMultiChildReconcile', () => {
677 });
678
679 it('should append multiple children to the end', () => {
680 - var PROPS_SEQUENCE = [
680 + const PROPS_SEQUENCE = [
681 {
682 usernameToStatus: {
683 jcw: 'jcwStatus',
@@ -697,7 +697,7 @@ describe('ReactMultiChildReconcile', () => {
697 });
698
699 it('should prepend children to the beginning', () => {
700 - var PROPS_SEQUENCE = [
700 + const PROPS_SEQUENCE = [
701 {
702 usernameToStatus: {
703 jcw: 'jcwStatus',
@@ -716,7 +716,7 @@ describe('ReactMultiChildReconcile', () => {
716 });
717
718 it('should prepend multiple children to the beginning', () => {
719 - var PROPS_SEQUENCE = [
719 + const PROPS_SEQUENCE = [
720 {
721 usernameToStatus: {
722 jcw: 'jcwStatus',
@@ -736,7 +736,7 @@ describe('ReactMultiChildReconcile', () => {
736 });
737
738 it('should not prepend an empty child to the beginning', () => {
739 - var PROPS_SEQUENCE = [
739 + const PROPS_SEQUENCE = [
740 {
741 usernameToStatus: {
742 jcw: 'jcwStatus',
@@ -755,7 +755,7 @@ describe('ReactMultiChildReconcile', () => {
755 });
756
757 it('should not append an empty child to the end', () => {
758 - var PROPS_SEQUENCE = [
758 + const PROPS_SEQUENCE = [
759 {
760 usernameToStatus: {
761 jcw: 'jcwStatus',
@@ -774,7 +774,7 @@ describe('ReactMultiChildReconcile', () => {
774 });
775
776 it('should not insert empty children in the middle', () => {
777 - var PROPS_SEQUENCE = [
777 + const PROPS_SEQUENCE = [
778 {
779 usernameToStatus: {
780 jcw: 'jcwStatus',
@@ -795,7 +795,7 @@ describe('ReactMultiChildReconcile', () => {
795 });
796
797 it('should insert one new child in the middle', () => {
798 - var PROPS_SEQUENCE = [
798 + const PROPS_SEQUENCE = [
799 {
800 usernameToStatus: {
801 jcw: 'jcwStatus',
@@ -814,7 +814,7 @@ describe('ReactMultiChildReconcile', () => {
814 });
815
816 it('should insert multiple new truthy children in the middle', () => {
817 - var PROPS_SEQUENCE = [
817 + const PROPS_SEQUENCE = [
818 {
819 usernameToStatus: {
820 jcw: 'jcwStatus',
@@ -835,7 +835,7 @@ describe('ReactMultiChildReconcile', () => {
835 });
836
837 it('should insert non-empty children in middle where nulls were', () => {
838 - var PROPS_SEQUENCE = [
838 + const PROPS_SEQUENCE = [
839 {
840 usernameToStatus: {
841 jcw: 'jcwStatus',
packages/react-dom/src/__tests__/ReactMultiChildText-test.js
+18 -18
@@ -9,21 +9,21 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactDOM = require('react-dom');
14 -var ReactTestUtils = require('react-dom/test-utils');
12 +const React = require('react');
13 +const ReactDOM = require('react-dom');
14 +const ReactTestUtils = require('react-dom/test-utils');
15
16 // Helpers
17 -var testAllPermutations = function(testCases) {
18 - for (var i = 0; i < testCases.length; i += 2) {
19 - var renderWithChildren = testCases[i];
20 - var expectedResultAfterRender = testCases[i + 1];
17 +const testAllPermutations = function(testCases) {
18 + for (let i = 0; i < testCases.length; i += 2) {
19 + const renderWithChildren = testCases[i];
20 + const expectedResultAfterRender = testCases[i + 1];
21
22 - for (var j = 0; j < testCases.length; j += 2) {
23 - var updateWithChildren = testCases[j];
24 - var expectedResultAfterUpdate = testCases[j + 1];
22 + for (let j = 0; j < testCases.length; j += 2) {
23 + const updateWithChildren = testCases[j];
24 + const expectedResultAfterUpdate = testCases[j + 1];
25
26 - var container = document.createElement('div');
26 + const container = document.createElement('div');
27 ReactDOM.render(<div>{renderWithChildren}</div>, container);
28 expectChildren(container, expectedResultAfterRender);
29
@@ -33,9 +33,9 @@ var testAllPermutations = function(testCases) {
33 }
34 };
35
36 -var expectChildren = function(container, children) {
37 - var outerNode = container.firstChild;
38 - var textNode;
36 +const expectChildren = function(container, children) {
37 + const outerNode = container.firstChild;
38 + let textNode;
39 if (typeof children === 'string') {
40 textNode = outerNode.firstChild;
41
@@ -47,10 +47,10 @@ var expectChildren = function(container, children) {
47 expect(textNode.data).toBe('' + children);
48 }
49 } else {
50 - var mountIndex = 0;
50 + let mountIndex = 0;
51
52 - for (var i = 0; i < children.length; i++) {
53 - var child = children[i];
52 + for (let i = 0; i < children.length; i++) {
53 + const child = children[i];
54
55 if (typeof child === 'string') {
56 textNode = outerNode.childNodes[mountIndex];
@@ -58,7 +58,7 @@ var expectChildren = function(container, children) {
58 expect(textNode.data).toBe('' + child);
59 mountIndex++;
60 } else {
61 - var elementDOMNode = outerNode.childNodes[mountIndex];
61 + const elementDOMNode = outerNode.childNodes[mountIndex];
62 expect(elementDOMNode.tagName).toBe('DIV');
63 mountIndex++;
64 }
packages/react-dom/src/__tests__/ReactRenderDocument-test.js
+36 -36
@@ -9,12 +9,12 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactDOMServer;
12 +let React;
13 +let ReactDOM;
14 +let ReactDOMServer;
15
16 function getTestDocument(markup) {
17 - var doc = document.implementation.createHTMLDocument('');
17 + const doc = document.implementation.createHTMLDocument('');
18 doc.open();
19 doc.write(
20 markup ||
@@ -60,9 +60,9 @@ describe('rendering React components at document', () => {
60 }
61 }
62
63 - var markup = ReactDOMServer.renderToString(<Root hello="world" />);
64 - var testDocument = getTestDocument(markup);
65 - var body = testDocument.body;
63 + const markup = ReactDOMServer.renderToString(<Root hello="world" />);
64 + const testDocument = getTestDocument(markup);
65 + const body = testDocument.body;
66
67 ReactDOM.render(<Root hello="world" />, testDocument);
68 expect(testDocument.body.innerHTML).toBe('Hello world');
@@ -89,8 +89,8 @@ describe('rendering React components at document', () => {
89 }
90 }
91
92 - var markup = ReactDOMServer.renderToString(<Root />);
93 - var testDocument = getTestDocument(markup);
92 + const markup = ReactDOMServer.renderToString(<Root />);
93 + const testDocument = getTestDocument(markup);
94 ReactDOM.render(<Root />, testDocument);
95 expect(testDocument.body.innerHTML).toBe('Hello world');
96
@@ -129,8 +129,8 @@ describe('rendering React components at document', () => {
129 }
130 }
131
132 - var markup = ReactDOMServer.renderToString(<Component />);
133 - var testDocument = getTestDocument(markup);
132 + const markup = ReactDOMServer.renderToString(<Component />);
133 + const testDocument = getTestDocument(markup);
134
135 ReactDOM.render(<Component />, testDocument);
136 expect(testDocument.body.innerHTML).toBe('Hello world');
@@ -157,10 +157,10 @@ describe('rendering React components at document', () => {
157 }
158 }
159
160 - var markup = ReactDOMServer.renderToString(
160 + const markup = ReactDOMServer.renderToString(
161 <Component text="Hello world" />,
162 );
163 - var testDocument = getTestDocument(markup);
163 + const testDocument = getTestDocument(markup);
164
165 ReactDOM.render(<Component text="Hello world" />, testDocument);
166
@@ -192,10 +192,10 @@ describe('rendering React components at document', () => {
192 }
193 }
194
195 - var markup = ReactDOMServer.renderToString(
195 + const markup = ReactDOMServer.renderToString(
196 <Component text="Goodbye world" />,
197 );
198 - var testDocument = getTestDocument(markup);
198 + const testDocument = getTestDocument(markup);
199
200 spyOnDev(console, 'warn');
201 spyOnDev(console, 'error');
@@ -216,7 +216,7 @@ describe('rendering React components at document', () => {
216 });
217
218 it('should throw on full document render w/ no markup', () => {
219 - var testDocument = getTestDocument();
219 + const testDocument = getTestDocument();
220
221 class Component extends React.Component {
222 render() {
@@ -240,7 +240,7 @@ describe('rendering React components at document', () => {
240
241 it('supports findDOMNode on full-page components', () => {
242 spyOnDev(console, 'warn');
243 - var tree = (
243 + const tree = (
244 <html>
245 <head>
246 <title>Hello World</title>
@@ -249,9 +249,9 @@ describe('rendering React components at document', () => {
249 </html>
250 );
251
252 - var markup = ReactDOMServer.renderToString(tree);
253 - var testDocument = getTestDocument(markup);
254 - var component = ReactDOM.render(tree, testDocument);
252 + const markup = ReactDOMServer.renderToString(tree);
253 + const testDocument = getTestDocument(markup);
254 + const component = ReactDOM.render(tree, testDocument);
255 expect(testDocument.body.innerHTML).toBe('Hello world');
256 expect(ReactDOM.findDOMNode(component).tagName).toBe('HTML');
257 expectDeprecationWarningWithFiber();
@@ -273,9 +273,9 @@ describe('rendering React components at document', () => {
273 }
274 }
275
276 - var markup = ReactDOMServer.renderToString(<Root hello="world" />);
277 - var testDocument = getTestDocument(markup);
278 - var body = testDocument.body;
276 + const markup = ReactDOMServer.renderToString(<Root hello="world" />);
277 + const testDocument = getTestDocument(markup);
278 + const body = testDocument.body;
279
280 ReactDOM.hydrate(<Root hello="world" />, testDocument);
281 expect(testDocument.body.innerHTML).toBe('Hello world');
@@ -300,8 +300,8 @@ describe('rendering React components at document', () => {
300 }
301 }
302
303 - var markup = ReactDOMServer.renderToString(<Root />);
304 - var testDocument = getTestDocument(markup);
303 + const markup = ReactDOMServer.renderToString(<Root />);
304 + const testDocument = getTestDocument(markup);
305 ReactDOM.hydrate(<Root />, testDocument);
306 expect(testDocument.body.innerHTML).toBe('Hello world');
307
@@ -337,8 +337,8 @@ describe('rendering React components at document', () => {
337 }
338 }
339
340 - var markup = ReactDOMServer.renderToString(<Component />);
341 - var testDocument = getTestDocument(markup);
340 + const markup = ReactDOMServer.renderToString(<Component />);
341 + const testDocument = getTestDocument(markup);
342
343 ReactDOM.hydrate(<Component />, testDocument);
344
@@ -364,10 +364,10 @@ describe('rendering React components at document', () => {
364 }
365 }
366
367 - var markup = ReactDOMServer.renderToString(
367 + const markup = ReactDOMServer.renderToString(
368 <Component text="Hello world" />,
369 );
370 - var testDocument = getTestDocument(markup);
370 + const testDocument = getTestDocument(markup);
371
372 ReactDOM.hydrate(<Component text="Hello world" />, testDocument);
373
@@ -402,10 +402,10 @@ describe('rendering React components at document', () => {
402 }
403 }
404
405 - var markup = ReactDOMServer.renderToString(
405 + const markup = ReactDOMServer.renderToString(
406 <Component text="Goodbye world" />,
407 );
408 - var testDocument = getTestDocument(markup);
408 + const testDocument = getTestDocument(markup);
409
410 spyOnDev(console, 'error');
411 ReactDOM.hydrate(<Component text="Hello world" />, testDocument);
@@ -420,7 +420,7 @@ describe('rendering React components at document', () => {
420
421 it('should render w/ no markup to full document', () => {
422 spyOnDev(console, 'error');
423 - var testDocument = getTestDocument();
423 + const testDocument = getTestDocument();
424
425 class Component extends React.Component {
426 render() {
@@ -447,7 +447,7 @@ describe('rendering React components at document', () => {
447 });
448
449 it('supports findDOMNode on full-page components', () => {
450 - var tree = (
450 + const tree = (
451 <html>
452 <head>
453 <title>Hello World</title>
@@ -456,9 +456,9 @@ describe('rendering React components at document', () => {
456 </html>
457 );
458
459 - var markup = ReactDOMServer.renderToString(tree);
460 - var testDocument = getTestDocument(markup);
461 - var component = ReactDOM.hydrate(tree, testDocument);
459 + const markup = ReactDOMServer.renderToString(tree);
460 + const testDocument = getTestDocument(markup);
461 + const component = ReactDOM.hydrate(tree, testDocument);
462 expect(testDocument.body.innerHTML).toBe('Hello world');
463 expect(ReactDOM.findDOMNode(component).tagName).toBe('HTML');
464 });
packages/react-dom/src/__tests__/ReactServerRendering-test.js
+37 -37
@@ -9,12 +9,12 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactCallReturn;
14 -var ReactDOM;
15 -var ReactDOMServer;
16 -var ReactTestUtils;
17 -var PropTypes;
12 +let React;
13 +let ReactCallReturn;
14 +let ReactDOM;
15 +let ReactDOMServer;
16 +let ReactTestUtils;
17 +let PropTypes;
18
19 function normalizeCodeLocInfo(str) {
20 return str && str.replace(/\(at .+?:\d+\)/g, '(at **)');
@@ -33,14 +33,14 @@ describe('ReactDOMServer', () => {
33
34 describe('renderToString', () => {
35 it('should generate simple markup', () => {
36 - var response = ReactDOMServer.renderToString(<span>hello world</span>);
36 + const response = ReactDOMServer.renderToString(<span>hello world</span>);
37 expect(response).toMatch(
38 new RegExp('<span data-reactroot=""' + '>hello world</span>'),
39 );
40 });
41
42 it('should generate simple markup for self-closing tags', () => {
43 - var response = ReactDOMServer.renderToString(<img />);
43 + const response = ReactDOMServer.renderToString(<img />);
44 expect(response).toMatch(new RegExp('<img data-reactroot=""' + '/>'));
45 });
46
@@ -51,7 +51,7 @@ describe('ReactDOMServer', () => {
51 }
52 }
53
54 - var response = ReactDOMServer.renderToString(<NullComponent />);
54 + const response = ReactDOMServer.renderToString(<NullComponent />);
55 expect(response).toBe('');
56 });
57
@@ -74,7 +74,7 @@ describe('ReactDOMServer', () => {
74 }
75 }
76
77 - var response = ReactDOMServer.renderToString(<Parent />);
77 + const response = ReactDOMServer.renderToString(<Parent />);
78 expect(response).toMatch(
79 new RegExp(
80 '<div ' +
@@ -92,7 +92,7 @@ describe('ReactDOMServer', () => {
92
93 it('should only execute certain lifecycle methods', () => {
94 function runTest() {
95 - var lifecycle = [];
95 + const lifecycle = [];
96
97 class TestComponent extends React.Component {
98 constructor(props) {
@@ -135,7 +135,7 @@ describe('ReactDOMServer', () => {
135 }
136 }
137
138 - var response = ReactDOMServer.renderToString(<TestComponent />);
138 + const response = ReactDOMServer.renderToString(<TestComponent />);
139
140 expect(response).toMatch(
141 new RegExp(
@@ -161,8 +161,8 @@ describe('ReactDOMServer', () => {
161 spyOnDev(console, 'warn');
162 spyOnDev(console, 'error');
163
164 - var mountCount = 0;
165 - var numClicks = 0;
164 + let mountCount = 0;
165 + let numClicks = 0;
166
167 class TestComponent extends React.Component {
168 componentDidMount() {
@@ -182,10 +182,10 @@ describe('ReactDOMServer', () => {
182 }
183 }
184
185 - var element = document.createElement('div');
185 + const element = document.createElement('div');
186 ReactDOM.render(<TestComponent />, element);
187
188 - var lastMarkup = element.innerHTML;
188 + let lastMarkup = element.innerHTML;
189
190 // Exercise the update path. Markup should not change,
191 // but some lifecycle methods should be run again.
@@ -210,7 +210,7 @@ describe('ReactDOMServer', () => {
210 lastMarkup = ReactDOMServer.renderToString(<TestComponent name="x" />);
211 element.innerHTML = lastMarkup;
212
213 - var instance = ReactDOM.render(<TestComponent name="x" />, element);
213 + let instance = ReactDOM.render(<TestComponent name="x" />, element);
214 expect(mountCount).toEqual(3);
215 if (__DEV__) {
216 expect(console.warn.calls.count()).toBe(1);
@@ -259,8 +259,8 @@ describe('ReactDOMServer', () => {
259 it('should have the correct mounting behavior (new hydrate API)', () => {
260 spyOnDev(console, 'error');
261
262 - var mountCount = 0;
263 - var numClicks = 0;
262 + let mountCount = 0;
263 + let numClicks = 0;
264
265 class TestComponent extends React.Component {
266 componentDidMount() {
@@ -280,10 +280,10 @@ describe('ReactDOMServer', () => {
280 }
281 }
282
283 - var element = document.createElement('div');
283 + const element = document.createElement('div');
284 ReactDOM.render(<TestComponent />, element);
285
286 - var lastMarkup = element.innerHTML;
286 + let lastMarkup = element.innerHTML;
287
288 // Exercise the update path. Markup should not change,
289 // but some lifecycle methods should be run again.
@@ -308,7 +308,7 @@ describe('ReactDOMServer', () => {
308 lastMarkup = ReactDOMServer.renderToString(<TestComponent name="x" />);
309 element.innerHTML = lastMarkup;
310
311 - var instance = ReactDOM.hydrate(<TestComponent name="x" />, element);
311 + let instance = ReactDOM.hydrate(<TestComponent name="x" />, element);
312 expect(mountCount).toEqual(3);
313 expect(element.innerHTML).toBe(lastMarkup);
314
@@ -341,7 +341,7 @@ describe('ReactDOMServer', () => {
341 // want it to call focus() when hydrating because this can mess up existing
342 // focus before the JS has loaded.
343 it('should emit autofocus on the server but not focus() when hydrating', () => {
344 - var element = document.createElement('div');
344 + const element = document.createElement('div');
345 element.innerHTML = ReactDOMServer.renderToString(
346 <input autoFocus={true} />,
347 );
@@ -358,7 +358,7 @@ describe('ReactDOMServer', () => {
358 });
359
360 it('should not focus on either server or client with autofocus={false}', () => {
361 - var element = document.createElement('div');
361 + const element = document.createElement('div');
362 element.innerHTML = ReactDOMServer.renderToString(
363 <input autoFocus={false} />,
364 );
@@ -414,7 +414,7 @@ describe('ReactDOMServer', () => {
414 }
415 }
416
417 - var response = ReactDOMServer.renderToStaticMarkup(<TestComponent />);
417 + const response = ReactDOMServer.renderToStaticMarkup(<TestComponent />);
418
419 expect(response).toBe('<span><div>inner text</div></span>');
420 });
@@ -430,7 +430,7 @@ describe('ReactDOMServer', () => {
430 }
431 }
432
433 - var response = ReactDOMServer.renderToStaticMarkup(<TestComponent />);
433 + const response = ReactDOMServer.renderToStaticMarkup(<TestComponent />);
434
435 expect(response).toBe('<span>hello world</span>');
436 });
@@ -442,14 +442,14 @@ describe('ReactDOMServer', () => {
442 }
443 }
444
445 - var response = ReactDOMServer.renderToStaticMarkup(<TestComponent />);
445 + const response = ReactDOMServer.renderToStaticMarkup(<TestComponent />);
446
447 expect(response).toBe('');
448 });
449
450 it('should only execute certain lifecycle methods', () => {
451 function runTest() {
452 - var lifecycle = [];
452 + const lifecycle = [];
453
454 class TestComponent extends React.Component {
455 constructor(props) {
@@ -492,7 +492,7 @@ describe('ReactDOMServer', () => {
492 }
493 }
494
495 - var response = ReactDOMServer.renderToStaticMarkup(<TestComponent />);
495 + const response = ReactDOMServer.renderToStaticMarkup(<TestComponent />);
496
497 expect(response).toBe('<span>Component name: TestComponent</span>');
498 expect(lifecycle).toEqual([
@@ -523,7 +523,7 @@ describe('ReactDOMServer', () => {
523 return <div>{this.state.text}</div>;
524 }
525 }
526 - var markup = ReactDOMServer.renderToString(<Component />);
526 + const markup = ReactDOMServer.renderToString(<Component />);
527 expect(markup).toContain('hello, world');
528 });
529
@@ -542,7 +542,7 @@ describe('ReactDOMServer', () => {
542 return <div>{this.state.text}</div>;
543 }
544 }
545 - var markup = ReactDOMServer.renderToString(<Component />);
545 + const markup = ReactDOMServer.renderToString(<Component />);
546 expect(markup).toContain('hello, world');
547 });
548
@@ -557,7 +557,7 @@ describe('ReactDOMServer', () => {
557 }
558 }
559
560 - var markup = ReactDOMServer.renderToString(
560 + const markup = ReactDOMServer.renderToString(
561 <Component text="hello, world" />,
562 );
563 expect(markup).toContain('hello, world');
@@ -594,7 +594,7 @@ describe('ReactDOMServer', () => {
594 text: PropTypes.string,
595 };
596
597 - var markup = ReactDOMServer.renderToString(
597 + const markup = ReactDOMServer.renderToString(
598 <ContextProvider>
599 <Component />
600 </ContextProvider>,
@@ -661,7 +661,7 @@ describe('ReactDOMServer', () => {
661 );
662 }
663
664 - var markup = ReactDOMServer.renderToStaticMarkup(<Foo />);
664 + const markup = ReactDOMServer.renderToStaticMarkup(<Foo />);
665 expect(markup).toBe('<div>hello</div>');
666 jest.runOnlyPendingTimers();
667 if (__DEV__) {
@@ -694,7 +694,7 @@ describe('ReactDOMServer', () => {
694 'This is a no-op.\n\nPlease check the code for the Baz component.',
695 );
696 }
697 - var markup = ReactDOMServer.renderToStaticMarkup(<Baz />);
697 + const markup = ReactDOMServer.renderToStaticMarkup(<Baz />);
698 expect(markup).toBe('<div></div>');
699 });
700
@@ -776,7 +776,7 @@ describe('ReactDOMServer', () => {
776 });
777
778 it('should throw rendering portals on the server', () => {
779 - var div = document.createElement('div');
779 + const div = document.createElement('div');
780 expect(() => {
781 ReactDOMServer.renderToString(
782 <div>{ReactDOM.createPortal(<div />, div)}</div>,
@@ -788,7 +788,7 @@ describe('ReactDOMServer', () => {
788 });
789
790 it('should throw rendering call/return on the server', () => {
791 - var div = document.createElement('div');
791 + const div = document.createElement('div');
792 expect(() => {
793 ReactDOMServer.renderToString(
794 <div>{ReactCallReturn.unstable_createReturn(42)}</div>,
packages/react-dom/src/__tests__/ReactServerRenderingBrowser-test.js
+3 -3
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOMServer;
14 -var ReactDOMServerBrowser;
12 +let React;
13 +let ReactDOMServer;
14 +let ReactDOMServerBrowser;
15
16 describe('ReactServerRenderingBrowser', () => {
17 beforeEach(() => {
packages/react-dom/src/__tests__/ReactStatelessComponent-test.js
+13 -13
@@ -9,10 +9,10 @@
9
10 'use strict';
11
12 -var PropTypes;
13 -var React;
14 -var ReactDOM;
15 -var ReactTestUtils;
12 +let PropTypes;
13 +let React;
14 +let ReactDOM;
15 +let ReactTestUtils;
16
17 function StatelessComponent(props) {
18 return <div>{props.name}</div>;
@@ -32,7 +32,7 @@ describe('ReactStatelessComponent', () => {
32 });
33
34 it('should render stateless component', () => {
35 - var el = document.createElement('div');
35 + const el = document.createElement('div');
36 ReactDOM.render(<StatelessComponent name="A" />, el);
37
38 expect(el.textContent).toBe('A');
@@ -45,7 +45,7 @@ describe('ReactStatelessComponent', () => {
45 }
46 }
47
48 - var el = document.createElement('div');
48 + const el = document.createElement('div');
49 ReactDOM.render(<Parent name="A" />, el);
50 expect(el.textContent).toBe('A');
51
@@ -54,7 +54,7 @@ describe('ReactStatelessComponent', () => {
54 });
55
56 it('should unmount stateless component', () => {
57 - var container = document.createElement('div');
57 + const container = document.createElement('div');
58
59 ReactDOM.render(<StatelessComponent name="A" />, container);
60 expect(container.textContent).toBe('A');
@@ -92,7 +92,7 @@ describe('ReactStatelessComponent', () => {
92 }
93 }
94
95 - var el = document.createElement('div');
95 + const el = document.createElement('div');
96 ReactDOM.render(<GrandParent test="test" />, el);
97
98 expect(el.textContent).toBe('test');
@@ -112,7 +112,7 @@ describe('ReactStatelessComponent', () => {
112 foo: PropTypes.string,
113 };
114
115 - var container = document.createElement('div');
115 + const container = document.createElement('div');
116
117 ReactDOM.render(<StatelessComponentWithChildContext name="A" />, container);
118
@@ -376,7 +376,7 @@ describe('ReactStatelessComponent', () => {
376 return <div />;
377 }
378
379 - var comp = ReactTestUtils.renderIntoDocument(<Child />);
379 + const comp = ReactTestUtils.renderIntoDocument(<Child />);
380 expect(comp).toBe(null);
381 });
382
@@ -437,13 +437,13 @@ describe('ReactStatelessComponent', () => {
437 }
438 Child.contextTypes = {lang: PropTypes.string};
439
440 - var el = document.createElement('div');
440 + const el = document.createElement('div');
441 ReactDOM.render(<Parent />, el);
442 expect(el.textContent).toBe('en');
443 });
444
445 it('should work with arrow functions', () => {
446 - var Child = function() {
446 + let Child = function() {
447 return <div />;
448 };
449 // Will create a new bound function without a prototype, much like a native
@@ -454,7 +454,7 @@ describe('ReactStatelessComponent', () => {
454 });
455
456 it('should allow simple functions to return null', () => {
457 - var Child = function() {
457 + const Child = function() {
458 return null;
459 };
460 expect(() => ReactTestUtils.renderIntoDocument(<Child />)).not.toThrow();
packages/react-dom/src/__tests__/ReactTestUtils-test.js
+2 -2
@@ -16,7 +16,7 @@ let ReactDOMServer;
16 let ReactTestUtils;
17
18 function getTestDocument(markup) {
19 - var doc = document.implementation.createHTMLDocument('');
19 + const doc = document.implementation.createHTMLDocument('');
20 doc.open();
21 doc.write(
22 markup ||
@@ -47,7 +47,7 @@ describe('ReactTestUtils', () => {
47 // Patch it up so it returns its children.
48 ReactTestUtils.mockComponent(MockedComponent);
49
50 - var container = document.createElement('div');
50 + const container = document.createElement('div');
51 ReactDOM.render(<MockedComponent>Hello</MockedComponent>, container);
52 expect(container.textContent).toBe('Hello');
53 });
packages/react-dom/src/__tests__/ReactTreeTraversal-test.js
+26 -26
@@ -9,8 +9,8 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
12 +let React;
13 +let ReactDOM;
14
15 const ChildComponent = ({id, eventHandler}) => (
16 <div
@@ -63,10 +63,10 @@ const ParentComponent = ({eventHandler}) => (
63 );
64
65 describe('ReactTreeTraversal', () => {
66 - var mockFn = jest.fn();
67 - var container;
68 - var outerNode1;
69 - var outerNode2;
66 + const mockFn = jest.fn();
67 + let container;
68 + let outerNode1;
69 + let outerNode2;
70
71 beforeEach(() => {
72 React = require('react');
@@ -103,7 +103,7 @@ describe('ReactTreeTraversal', () => {
103 });
104
105 it('should traverse two phase across component boundary', () => {
106 - var expectedCalls = [
106 + const expectedCalls = [
107 ['P', 'captured', 'click'],
108 ['P_P1', 'captured', 'click'],
109 ['P_P1_C1__DIV', 'captured', 'click'],
@@ -115,7 +115,7 @@ describe('ReactTreeTraversal', () => {
115 ['P', 'bubbled', 'click'],
116 ];
117
118 - var node = document.getElementById('P_P1_C1__DIV_1');
118 + const node = document.getElementById('P_P1_C1__DIV_1');
119 node.dispatchEvent(
120 new MouseEvent('click', {bubbles: true, cancelable: true}),
121 );
@@ -124,12 +124,12 @@ describe('ReactTreeTraversal', () => {
124 });
125
126 it('should traverse two phase at shallowest node', () => {
127 - var node = document.getElementById('P');
127 + const node = document.getElementById('P');
128 node.dispatchEvent(
129 new MouseEvent('click', {bubbles: true, cancelable: true}),
130 );
131
132 - var expectedCalls = [
132 + const expectedCalls = [
133 ['P', 'captured', 'click'],
134 ['P', 'bubbled', 'click'],
135 ];
@@ -151,8 +151,8 @@ describe('ReactTreeTraversal', () => {
151 });
152
153 it('should not traverse if enter/leave the same node', () => {
154 - var leaveNode = document.getElementById('P_P1_C1__DIV_1');
155 - var enterNode = document.getElementById('P_P1_C1__DIV_1');
154 + const leaveNode = document.getElementById('P_P1_C1__DIV_1');
155 + const enterNode = document.getElementById('P_P1_C1__DIV_1');
156
157 leaveNode.dispatchEvent(
158 new MouseEvent('mouseout', {
@@ -166,10 +166,10 @@ describe('ReactTreeTraversal', () => {
166 });
167
168 it('should traverse enter/leave to sibling - avoids parent', () => {
169 - var leaveNode = document.getElementById('P_P1_C1__DIV_1');
170 - var enterNode = document.getElementById('P_P1_C1__DIV_2');
169 + const leaveNode = document.getElementById('P_P1_C1__DIV_1');
170 + const enterNode = document.getElementById('P_P1_C1__DIV_2');
171
172 - var expectedCalls = [
172 + const expectedCalls = [
173 ['P_P1_C1__DIV_1', 'mouseleave'],
174 // enter/leave shouldn't fire anything on the parent
175 ['P_P1_C1__DIV_2', 'mouseenter'],
@@ -187,10 +187,10 @@ describe('ReactTreeTraversal', () => {
187 });
188
189 it('should traverse enter/leave to parent - avoids parent', () => {
190 - var leaveNode = document.getElementById('P_P1_C1__DIV_1');
191 - var enterNode = document.getElementById('P_P1_C1__DIV');
190 + const leaveNode = document.getElementById('P_P1_C1__DIV_1');
191 + const enterNode = document.getElementById('P_P1_C1__DIV');
192
193 - var expectedCalls = [['P_P1_C1__DIV_1', 'mouseleave']];
193 + const expectedCalls = [['P_P1_C1__DIV_1', 'mouseleave']];
194
195 leaveNode.dispatchEvent(
196 new MouseEvent('mouseout', {
@@ -204,9 +204,9 @@ describe('ReactTreeTraversal', () => {
204 });
205
206 it('should enter from the window', () => {
207 - var enterNode = document.getElementById('P_P1_C1__DIV');
207 + const enterNode = document.getElementById('P_P1_C1__DIV');
208
209 - var expectedCalls = [
209 + const expectedCalls = [
210 ['P', 'mouseenter'],
211 ['P_P1', 'mouseenter'],
212 ['P_P1_C1__DIV', 'mouseenter'],
@@ -224,9 +224,9 @@ describe('ReactTreeTraversal', () => {
224 });
225
226 it('should enter from the window to the shallowest', () => {
227 - var enterNode = document.getElementById('P');
227 + const enterNode = document.getElementById('P');
228
229 - var expectedCalls = [['P', 'mouseenter']];
229 + const expectedCalls = [['P', 'mouseenter']];
230
231 outerNode1.dispatchEvent(
232 new MouseEvent('mouseout', {
@@ -240,9 +240,9 @@ describe('ReactTreeTraversal', () => {
240 });
241
242 it('should leave to the window', () => {
243 - var leaveNode = document.getElementById('P_P1_C1__DIV');
243 + const leaveNode = document.getElementById('P_P1_C1__DIV');
244
245 - var expectedCalls = [
245 + const expectedCalls = [
246 ['P_P1_C1__DIV', 'mouseleave'],
247 ['P_P1', 'mouseleave'],
248 ['P', 'mouseleave'],
@@ -260,9 +260,9 @@ describe('ReactTreeTraversal', () => {
260 });
261
262 it('should leave to the window from the shallowest', () => {
263 - var leaveNode = document.getElementById('P');
263 + const leaveNode = document.getElementById('P');
264
265 - var expectedCalls = [['P', 'mouseleave']];
265 + const expectedCalls = [['P', 'mouseleave']];
266
267 leaveNode.dispatchEvent(
268 new MouseEvent('mouseout', {
packages/react-dom/src/__tests__/ReactUpdates-test.js
+71 -71
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactTestUtils;
12 +let React;
13 +let ReactDOM;
14 +let ReactTestUtils;
15
16 describe('ReactUpdates', () => {
17 beforeEach(() => {
@@ -21,7 +21,7 @@ describe('ReactUpdates', () => {
21 });
22
23 it('should batch state when updating state twice', () => {
24 - var updateCount = 0;
24 + let updateCount = 0;
25
26 class Component extends React.Component {
27 state = {x: 0};
@@ -35,7 +35,7 @@ describe('ReactUpdates', () => {
35 }
36 }
37
38 - var instance = ReactTestUtils.renderIntoDocument(<Component />);
38 + const instance = ReactTestUtils.renderIntoDocument(<Component />);
39 expect(instance.state.x).toBe(0);
40
41 ReactDOM.unstable_batchedUpdates(function() {
@@ -50,7 +50,7 @@ describe('ReactUpdates', () => {
50 });
51
52 it('should batch state when updating two different state keys', () => {
53 - var updateCount = 0;
53 + let updateCount = 0;
54
55 class Component extends React.Component {
56 state = {x: 0, y: 0};
@@ -68,7 +68,7 @@ describe('ReactUpdates', () => {
68 }
69 }
70
71 - var instance = ReactTestUtils.renderIntoDocument(<Component />);
71 + const instance = ReactTestUtils.renderIntoDocument(<Component />);
72 expect(instance.state.x).toBe(0);
73 expect(instance.state.y).toBe(0);
74
@@ -86,7 +86,7 @@ describe('ReactUpdates', () => {
86 });
87
88 it('should batch state and props together', () => {
89 - var updateCount = 0;
89 + let updateCount = 0;
90
91 class Component extends React.Component {
92 state = {y: 0};
@@ -104,8 +104,8 @@ describe('ReactUpdates', () => {
104 }
105 }
106
107 - var container = document.createElement('div');
108 - var instance = ReactDOM.render(<Component x={0} />, container);
107 + const container = document.createElement('div');
108 + const instance = ReactDOM.render(<Component x={0} />, container);
109 expect(instance.props.x).toBe(0);
110 expect(instance.state.y).toBe(0);
111
@@ -123,7 +123,7 @@ describe('ReactUpdates', () => {
123 });
124
125 it('should batch parent/child state updates together', () => {
126 - var parentUpdateCount = 0;
126 + let parentUpdateCount = 0;
127
128 class Parent extends React.Component {
129 state = {x: 0};
@@ -141,7 +141,7 @@ describe('ReactUpdates', () => {
141 }
142 }
143
144 - var childUpdateCount = 0;
144 + let childUpdateCount = 0;
145
146 class Child extends React.Component {
147 state = {y: 0};
@@ -155,8 +155,8 @@ describe('ReactUpdates', () => {
155 }
156 }
157
158 - var instance = ReactTestUtils.renderIntoDocument(<Parent />);
159 - var child = instance.refs.child;
158 + const instance = ReactTestUtils.renderIntoDocument(<Parent />);
159 + const child = instance.refs.child;
160 expect(instance.state.x).toBe(0);
161 expect(child.state.y).toBe(0);
162
@@ -176,7 +176,7 @@ describe('ReactUpdates', () => {
176 });
177
178 it('should batch child/parent state updates together', () => {
179 - var parentUpdateCount = 0;
179 + let parentUpdateCount = 0;
180
181 class Parent extends React.Component {
182 state = {x: 0};
@@ -194,7 +194,7 @@ describe('ReactUpdates', () => {
194 }
195 }
196
197 - var childUpdateCount = 0;
197 + let childUpdateCount = 0;
198
199 class Child extends React.Component {
200 state = {y: 0};
@@ -208,8 +208,8 @@ describe('ReactUpdates', () => {
208 }
209 }
210
211 - var instance = ReactTestUtils.renderIntoDocument(<Parent />);
212 - var child = instance.refs.child;
211 + const instance = ReactTestUtils.renderIntoDocument(<Parent />);
212 + const child = instance.refs.child;
213 expect(instance.state.x).toBe(0);
214 expect(child.state.y).toBe(0);
215
@@ -231,7 +231,7 @@ describe('ReactUpdates', () => {
231 });
232
233 it('should support chained state updates', () => {
234 - var updateCount = 0;
234 + let updateCount = 0;
235
236 class Component extends React.Component {
237 state = {x: 0};
@@ -245,10 +245,10 @@ describe('ReactUpdates', () => {
245 }
246 }
247
248 - var instance = ReactTestUtils.renderIntoDocument(<Component />);
248 + const instance = ReactTestUtils.renderIntoDocument(<Component />);
249 expect(instance.state.x).toBe(0);
250
251 - var innerCallbackRun = false;
251 + let innerCallbackRun = false;
252 ReactDOM.unstable_batchedUpdates(function() {
253 instance.setState({x: 1}, function() {
254 instance.setState({x: 2}, function() {
@@ -270,8 +270,8 @@ describe('ReactUpdates', () => {
270 });
271
272 it('should batch forceUpdate together', () => {
273 - var shouldUpdateCount = 0;
274 - var updateCount = 0;
273 + let shouldUpdateCount = 0;
274 + let updateCount = 0;
275
276 class Component extends React.Component {
277 state = {x: 0};
@@ -289,10 +289,10 @@ describe('ReactUpdates', () => {
289 }
290 }
291
292 - var instance = ReactTestUtils.renderIntoDocument(<Component />);
292 + const instance = ReactTestUtils.renderIntoDocument(<Component />);
293 expect(instance.state.x).toBe(0);
294
295 - var callbacksRun = 0;
295 + let callbacksRun = 0;
296 ReactDOM.unstable_batchedUpdates(function() {
297 instance.setState({x: 1}, function() {
298 callbacksRun++;
@@ -312,8 +312,8 @@ describe('ReactUpdates', () => {
312 });
313
314 it('should update children even if parent blocks updates', () => {
315 - var parentRenderCount = 0;
316 - var childRenderCount = 0;
315 + let parentRenderCount = 0;
316 + let childRenderCount = 0;
317
318 class Parent extends React.Component {
319 shouldComponentUpdate() {
@@ -336,7 +336,7 @@ describe('ReactUpdates', () => {
336 expect(parentRenderCount).toBe(0);
337 expect(childRenderCount).toBe(0);
338
339 - var instance = <Parent />;
339 + let instance = <Parent />;
340 instance = ReactTestUtils.renderIntoDocument(instance);
341
342 expect(parentRenderCount).toBe(1);
@@ -358,8 +358,8 @@ describe('ReactUpdates', () => {
358 });
359
360 it('should not reconcile children passed via props', () => {
361 - var numMiddleRenders = 0;
362 - var numBottomRenders = 0;
361 + let numMiddleRenders = 0;
362 + let numBottomRenders = 0;
363
364 class Top extends React.Component {
365 render() {
@@ -395,10 +395,10 @@ describe('ReactUpdates', () => {
395 });
396
397 it('should flow updates correctly', () => {
398 - var willUpdates = [];
399 - var didUpdates = [];
398 + let willUpdates = [];
399 + let didUpdates = [];
400
401 - var UpdateLoggingMixin = {
401 + const UpdateLoggingMixin = {
402 componentWillUpdate: function() {
403 willUpdates.push(this.constructor.displayName);
404 },
@@ -424,7 +424,7 @@ describe('ReactUpdates', () => {
424 class Switcher extends React.Component {
425 state = {tabKey: 'hello'};
426 render() {
427 - var child = this.props.children;
427 + const child = this.props.children;
428
429 return (
430 <Box ref="box">
@@ -452,11 +452,11 @@ describe('ReactUpdates', () => {
452 }
453 Object.assign(App.prototype, UpdateLoggingMixin);
454
455 - var root = <App />;
455 + let root = <App />;
456 root = ReactTestUtils.renderIntoDocument(root);
457
458 function expectUpdates(desiredWillUpdates, desiredDidUpdates) {
459 - var i;
459 + let i;
460 for (i = 0; i < desiredWillUpdates; i++) {
461 expect(willUpdates).toContain(desiredWillUpdates[i]);
462 }
@@ -472,7 +472,7 @@ describe('ReactUpdates', () => {
472 }
473
474 function testUpdates(components, desiredWillUpdates, desiredDidUpdates) {
475 - var i;
475 + let i;
476
477 ReactDOM.unstable_batchedUpdates(function() {
478 for (i = 0; i < components.length; i++) {
@@ -519,12 +519,12 @@ describe('ReactUpdates', () => {
519 // componentDidUpdate handlers is called, B's DOM should already have been
520 // updated.
521
522 - var bContainer = document.createElement('div');
522 + const bContainer = document.createElement('div');
523
524 - var a;
525 - var b;
524 + let a;
525 + let b;
526
527 - var aUpdated = false;
527 + let aUpdated = false;
528
529 class A extends React.Component {
530 state = {x: 0};
@@ -535,7 +535,7 @@ describe('ReactUpdates', () => {
535 }
536
537 render() {
538 - var portal = null;
538 + let portal = null;
539 // If we're using Fiber, we use Portals instead to achieve this.
540 portal = ReactDOM.createPortal(<B ref={n => (b = n)} />, bContainer);
541 return (
@@ -565,7 +565,7 @@ describe('ReactUpdates', () => {
565 });
566
567 it('should flush updates in the correct order', () => {
568 - var updates = [];
568 + const updates = [];
569
570 class Outer extends React.Component {
571 state = {x: 0};
@@ -580,7 +580,7 @@ describe('ReactUpdates', () => {
580 }
581
582 componentDidUpdate() {
583 - var x = this.state.x;
583 + const x = this.state.x;
584 updates.push('Outer-didUpdate-' + x);
585 updates.push('Inner-setState-' + x);
586 this.refs.inner.setState({x: x}, function() {
@@ -602,7 +602,7 @@ describe('ReactUpdates', () => {
602 }
603 }
604
605 - var instance = ReactTestUtils.renderIntoDocument(<Outer />);
605 + const instance = ReactTestUtils.renderIntoDocument(<Outer />);
606
607 updates.push('Outer-setState-1');
608 instance.setState({x: 1}, function() {
@@ -646,8 +646,8 @@ describe('ReactUpdates', () => {
646 });
647
648 it('should flush updates in the correct order across roots', () => {
649 - var instances = [];
650 - var updates = [];
649 + const instances = [];
650 + const updates = [];
651
652 class MockComponent extends React.Component {
653 render() {
@@ -728,8 +728,8 @@ describe('ReactUpdates', () => {
728 }
729 }
730
731 - var x;
732 - var y;
731 + let x;
732 + let y;
733
734 x = ReactTestUtils.renderIntoDocument(<X />);
735 y = ReactTestUtils.renderIntoDocument(<Y />);
@@ -741,7 +741,7 @@ describe('ReactUpdates', () => {
741
742 it('should queue updates from during mount', () => {
743 // See https://github.com/facebook/react/issues/1353
744 - var a;
744 + let a;
745
746 class A extends React.Component {
747 state = {x: 0};
@@ -779,13 +779,13 @@ describe('ReactUpdates', () => {
779 });
780
781 it('calls componentWillReceiveProps setState callback properly', () => {
782 - var callbackCount = 0;
782 + let callbackCount = 0;
783
784 class A extends React.Component {
785 state = {x: this.props.x};
786
787 componentWillReceiveProps(nextProps) {
788 - var newX = nextProps.x;
788 + const newX = nextProps.x;
789 this.setState({x: newX}, function() {
790 // State should have updated by the time this callback gets called
791 expect(this.state.x).toBe(newX);
@@ -798,15 +798,15 @@ describe('ReactUpdates', () => {
798 }
799 }
800
801 - var container = document.createElement('div');
801 + const container = document.createElement('div');
802 ReactDOM.render(<A x={1} />, container);
803 ReactDOM.render(<A x={2} />, container);
804 expect(callbackCount).toBe(1);
805 });
806
807 it('does not call render after a component as been deleted', () => {
808 - var renderCount = 0;
809 - var componentB = null;
808 + let renderCount = 0;
809 + let componentB = null;
810
811 class B extends React.Component {
812 state = {updates: 0};
@@ -829,7 +829,7 @@ describe('ReactUpdates', () => {
829 }
830 }
831
832 - var component = ReactTestUtils.renderIntoDocument(<A />);
832 + const component = ReactTestUtils.renderIntoDocument(<A />);
833
834 ReactDOM.unstable_batchedUpdates(function() {
835 // B will have scheduled an update but the batching should ensure that its
@@ -857,7 +857,7 @@ describe('ReactUpdates', () => {
857 }
858 }
859
860 - var component = ReactTestUtils.renderIntoDocument(<A />);
860 + let component = ReactTestUtils.renderIntoDocument(<A />);
861
862 expect(() => component.setState({}, 'no')).toThrowError(
863 'Invalid argument passed as callback. Expected a function. Instead ' +
@@ -910,7 +910,7 @@ describe('ReactUpdates', () => {
910 }
911 }
912
913 - var component = ReactTestUtils.renderIntoDocument(<A />);
913 + let component = ReactTestUtils.renderIntoDocument(<A />);
914
915 expect(() => component.forceUpdate('no')).toThrowError(
916 'Invalid argument passed as callback. Expected a function. Instead ' +
@@ -958,9 +958,9 @@ describe('ReactUpdates', () => {
958 }
959 }
960
961 - var renderCount = 0;
962 - var postRenderCount = 0;
963 - var once = false;
961 + let renderCount = 0;
962 + let postRenderCount = 0;
963 + let once = false;
964
965 class Child extends React.Component {
966 state = {updated: false};
@@ -989,8 +989,8 @@ describe('ReactUpdates', () => {
989 }
990 }
991
992 - var parent = ReactTestUtils.renderIntoDocument(<Parent />);
993 - var child = parent.getChild();
992 + const parent = ReactTestUtils.renderIntoDocument(<Parent />);
993 + const child = parent.getChild();
994 ReactDOM.unstable_batchedUpdates(function() {
995 parent.forceUpdate();
996 child.forceUpdate();
@@ -998,7 +998,7 @@ describe('ReactUpdates', () => {
998 });
999
1000 it('does not update one component twice in a batch (#6371)', () => {
1001 - var callbacks = [];
1001 + let callbacks = [];
1002 function emitChange() {
1003 callbacks.forEach(c => c());
1004 }
@@ -1048,14 +1048,14 @@ describe('ReactUpdates', () => {
1048 });
1049
1050 it('unstable_batchedUpdates should return value from a callback', () => {
1051 - var result = ReactDOM.unstable_batchedUpdates(function() {
1051 + const result = ReactDOM.unstable_batchedUpdates(function() {
1052 return 42;
1053 });
1054 expect(result).toEqual(42);
1055 });
1056
1057 it('unmounts and remounts a root in the same batch', () => {
1058 - var container = document.createElement('div');
1058 + const container = document.createElement('div');
1059 ReactDOM.render(<span>a</span>, container);
1060 ReactDOM.unstable_batchedUpdates(function() {
1061 ReactDOM.unmountComponentAtNode(container);
@@ -1065,7 +1065,7 @@ describe('ReactUpdates', () => {
1065 });
1066
1067 it('handles reentrant mounting in synchronous mode', () => {
1068 - var mounts = 0;
1068 + let mounts = 0;
1069 class Editor extends React.Component {
1070 render() {
1071 return <div>{this.props.text}</div>;
@@ -1079,7 +1079,7 @@ describe('ReactUpdates', () => {
1079 }
1080 }
1081
1082 - var container = document.createElement('div');
1082 + const container = document.createElement('div');
1083 function render() {
1084 ReactDOM.render(
1085 <Editor
@@ -1093,7 +1093,7 @@ describe('ReactUpdates', () => {
1093 );
1094 }
1095
1096 - var props = {text: 'hello', rendered: false};
1096 + let props = {text: 'hello', rendered: false};
1097 render();
1098 props = {...props, text: 'goodbye'};
1099 render();
@@ -1102,8 +1102,8 @@ describe('ReactUpdates', () => {
1102 });
1103
1104 it('mounts and unmounts are sync even in a batch', () => {
1105 - var ops = [];
1106 - var container = document.createElement('div');
1105 + const ops = [];
1106 + const container = document.createElement('div');
1107 ReactDOM.unstable_batchedUpdates(() => {
1108 ReactDOM.render(<div>Hello</div>, container);
1109 ops.push(container.textContent);
packages/react-dom/src/__tests__/TapEventPlugin-test.internal.js
+19 -19
@@ -9,25 +9,25 @@
9
10 'use strict';
11
12 -var EventPluginHub;
13 -var React;
14 -var ReactDOM;
15 -var ReactTestUtils;
16 -var TapEventPlugin;
17 -
18 -var tapMoveThreshold;
19 -var idCallOrder;
20 -var recordID = function(id) {
12 +let EventPluginHub;
13 +let React;
14 +let ReactDOM;
15 +let ReactTestUtils;
16 +let TapEventPlugin;
17 +
18 +let tapMoveThreshold;
19 +let idCallOrder;
20 +const recordID = function(id) {
21 idCallOrder.push(id);
22 };
23 -var LISTENER = jest.fn();
24 -var ON_TOUCH_TAP_KEY = 'onTouchTap';
23 +const LISTENER = jest.fn();
24 +const ON_TOUCH_TAP_KEY = 'onTouchTap';
25
26 -var GRANDPARENT;
27 -var PARENT;
28 -var CHILD;
26 +let GRANDPARENT;
27 +let PARENT;
28 +let CHILD;
29
30 -var putListener;
30 +let putListener;
31
32 describe('TapEventPlugin', () => {
33 beforeEach(() => {
@@ -40,11 +40,11 @@ describe('TapEventPlugin', () => {
40 ReactTestUtils = require('react-dom/test-utils');
41 TapEventPlugin = require('react-dom/src/events/TapEventPlugin').default;
42
43 - var container = document.createElement('div');
43 + const container = document.createElement('div');
44
45 - var GRANDPARENT_PROPS = {};
46 - var PARENT_PROPS = {};
47 - var CHILD_PROPS = {};
45 + const GRANDPARENT_PROPS = {};
46 + const PARENT_PROPS = {};
47 + const CHILD_PROPS = {};
48
49 function Child(props) {
50 return <div ref={c => (CHILD = c)} {...props} />;
packages/react-dom/src/__tests__/escapeTextForBrowser-test.js
+10 -10
@@ -9,8 +9,8 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOMServer;
12 +let React;
13 +let ReactDOMServer;
14
15 describe('escapeTextForBrowser', () => {
16 beforeEach(() => {
@@ -20,42 +20,42 @@ describe('escapeTextForBrowser', () => {
20 });
21
22 it('ampersand is escaped when passed as text content', () => {
23 - var response = ReactDOMServer.renderToString(<span>{'&'}</span>);
23 + const response = ReactDOMServer.renderToString(<span>{'&'}</span>);
24 expect(response).toMatch('<span data-reactroot="">&amp;</span>');
25 });
26
27 it('double quote is escaped when passed as text content', () => {
28 - var response = ReactDOMServer.renderToString(<span>{'"'}</span>);
28 + const response = ReactDOMServer.renderToString(<span>{'"'}</span>);
29 expect(response).toMatch('<span data-reactroot="">&quot;</span>');
30 });
31
32 it('single quote is escaped when passed as text content', () => {
33 - var response = ReactDOMServer.renderToString(<span>{"'"}</span>);
33 + const response = ReactDOMServer.renderToString(<span>{"'"}</span>);
34 expect(response).toMatch('<span data-reactroot="">&#x27;</span>');
35 });
36
37 it('greater than entity is escaped when passed as text content', () => {
38 - var response = ReactDOMServer.renderToString(<span>{'>'}</span>);
38 + const response = ReactDOMServer.renderToString(<span>{'>'}</span>);
39 expect(response).toMatch('<span data-reactroot="">&gt;</span>');
40 });
41
42 it('lower than entity is escaped when passed as text content', () => {
43 - var response = ReactDOMServer.renderToString(<span>{'<'}</span>);
43 + const response = ReactDOMServer.renderToString(<span>{'<'}</span>);
44 expect(response).toMatch('<span data-reactroot="">&lt;</span>');
45 });
46
47 it('number is correctly passed as text content', () => {
48 - var response = ReactDOMServer.renderToString(<span>{42}</span>);
48 + const response = ReactDOMServer.renderToString(<span>{42}</span>);
49 expect(response).toMatch('<span data-reactroot="">42</span>');
50 });
51
52 it('number is escaped to string when passed as text content', () => {
53 - var response = ReactDOMServer.renderToString(<img data-attr={42} />);
53 + const response = ReactDOMServer.renderToString(<img data-attr={42} />);
54 expect(response).toMatch('<img data-attr="42" data-reactroot=""/>');
55 });
56
57 it('escape text content representing a script tag', () => {
58 - var response = ReactDOMServer.renderToString(
58 + const response = ReactDOMServer.renderToString(
59 <span>{'<script type=\'\' src=""></script>'}</span>,
60 );
61 expect(response).toMatch(
packages/react-dom/src/__tests__/findDOMNode-test.js
+13 -13
@@ -9,9 +9,9 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactDOM = require('react-dom');
14 -var ReactTestUtils = require('react-dom/test-utils');
12 +const React = require('react');
13 +const ReactDOM = require('react-dom');
14 +const ReactTestUtils = require('react-dom/test-utils');
15
16 describe('findDOMNode', () => {
17 it('findDOMNode should return null if passed null', () => {
@@ -29,9 +29,9 @@ describe('findDOMNode', () => {
29 }
30 }
31
32 - var myNode = ReactTestUtils.renderIntoDocument(<MyNode />);
33 - var myDiv = ReactDOM.findDOMNode(myNode);
34 - var mySameDiv = ReactDOM.findDOMNode(myDiv);
32 + const myNode = ReactTestUtils.renderIntoDocument(<MyNode />);
33 + const myDiv = ReactDOM.findDOMNode(myNode);
34 + const mySameDiv = ReactDOM.findDOMNode(myDiv);
35 expect(myDiv.tagName).toBe('DIV');
36 expect(mySameDiv).toBe(myDiv);
37 });
@@ -49,16 +49,16 @@ describe('findDOMNode', () => {
49 }
50 }
51
52 - var container = document.createElement('div');
52 + const container = document.createElement('div');
53
54 - var myNodeA = ReactDOM.render(<MyNode />, container);
55 - var a = ReactDOM.findDOMNode(myNodeA);
54 + const myNodeA = ReactDOM.render(<MyNode />, container);
55 + const a = ReactDOM.findDOMNode(myNodeA);
56 expect(a).toBe(null);
57
58 - var myNodeB = ReactDOM.render(<MyNode flag={true} />, container);
58 + const myNodeB = ReactDOM.render(<MyNode flag={true} />, container);
59 expect(myNodeA === myNodeB).toBe(true);
60
61 - var b = ReactDOM.findDOMNode(myNodeB);
61 + const b = ReactDOM.findDOMNode(myNodeB);
62 expect(b.tagName).toBe('SPAN');
63 });
64
@@ -77,8 +77,8 @@ describe('findDOMNode', () => {
77 }
78 }
79
80 - var container = document.createElement('div');
81 - var inst = ReactDOM.render(<Foo />, container);
80 + const container = document.createElement('div');
81 + const inst = ReactDOM.render(<Foo />, container);
82 ReactDOM.unmountComponentAtNode(container);
83
84 expect(() => ReactDOM.findDOMNode(inst)).toThrowError(
packages/react-dom/src/__tests__/multiple-copies-of-react-test.js
+1 -1
@@ -10,7 +10,7 @@
10 'use strict';
11
12 let React = require('react');
13 -var ReactTestUtils = require('react-dom/test-utils');
13 +const ReactTestUtils = require('react-dom/test-utils');
14
15 class TextWithStringRef extends React.Component {
16 render() {
packages/react-dom/src/__tests__/quoteAttributeValueForBrowser-test.js
+11 -11
@@ -9,8 +9,8 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOMServer;
12 +let React;
13 +let ReactDOMServer;
14
15 describe('quoteAttributeValueForBrowser', () => {
16 beforeEach(() => {
@@ -20,50 +20,50 @@ describe('quoteAttributeValueForBrowser', () => {
20 });
21
22 it('ampersand is escaped inside attributes', () => {
23 - var response = ReactDOMServer.renderToString(<img data-attr="&" />);
23 + const response = ReactDOMServer.renderToString(<img data-attr="&" />);
24 expect(response).toMatch('<img data-attr="&amp;" data-reactroot=""/>');
25 });
26
27 it('double quote is escaped inside attributes', () => {
28 - var response = ReactDOMServer.renderToString(<img data-attr={'"'} />);
28 + const response = ReactDOMServer.renderToString(<img data-attr={'"'} />);
29 expect(response).toMatch('<img data-attr="&quot;" data-reactroot=""/>');
30 });
31
32 it('single quote is escaped inside attributes', () => {
33 - var response = ReactDOMServer.renderToString(<img data-attr="'" />);
33 + const response = ReactDOMServer.renderToString(<img data-attr="'" />);
34 expect(response).toMatch('<img data-attr="&#x27;" data-reactroot=""/>');
35 });
36
37 it('greater than entity is escaped inside attributes', () => {
38 - var response = ReactDOMServer.renderToString(<img data-attr=">" />);
38 + const response = ReactDOMServer.renderToString(<img data-attr=">" />);
39 expect(response).toMatch('<img data-attr="&gt;" data-reactroot=""/>');
40 });
41
42 it('lower than entity is escaped inside attributes', () => {
43 - var response = ReactDOMServer.renderToString(<img data-attr="<" />);
43 + const response = ReactDOMServer.renderToString(<img data-attr="<" />);
44 expect(response).toMatch('<img data-attr="&lt;" data-reactroot=""/>');
45 });
46
47 it('number is escaped to string inside attributes', () => {
48 - var response = ReactDOMServer.renderToString(<img data-attr={42} />);
48 + const response = ReactDOMServer.renderToString(<img data-attr={42} />);
49 expect(response).toMatch('<img data-attr="42" data-reactroot=""/>');
50 });
51
52 it('object is passed to a string inside attributes', () => {
53 - var sampleObject = {
53 + const sampleObject = {
54 toString: function() {
55 return 'ponys';
56 },
57 };
58
59 - var response = ReactDOMServer.renderToString(
59 + const response = ReactDOMServer.renderToString(
60 <img data-attr={sampleObject} />,
61 );
62 expect(response).toMatch('<img data-attr="ponys" data-reactroot=""/>');
63 });
64
65 it('script tag is escaped inside attributes', () => {
66 - var response = ReactDOMServer.renderToString(
66 + const response = ReactDOMServer.renderToString(
67 <img data-attr={'<script type=\'\' src=""></script>'} />,
68 );
69 expect(response).toMatch(
packages/react-dom/src/__tests__/refs-destruction-test.js
+10 -10
@@ -9,11 +9,11 @@
9
10 'use strict';
11
12 -var React;
13 -var ReactDOM;
14 -var ReactTestUtils;
12 +let React;
13 +let ReactDOM;
14 +let ReactTestUtils;
15
16 -var TestComponent;
16 +let TestComponent;
17
18 describe('refs-destruction', () => {
19 beforeEach(() => {
@@ -37,8 +37,8 @@ describe('refs-destruction', () => {
37 });
38
39 it('should remove refs when destroying the parent', () => {
40 - var container = document.createElement('div');
41 - var testInstance = ReactDOM.render(<TestComponent />, container);
40 + const container = document.createElement('div');
41 + const testInstance = ReactDOM.render(<TestComponent />, container);
42 expect(ReactTestUtils.isDOMComponent(testInstance.refs.theInnerDiv)).toBe(
43 true,
44 );
@@ -54,8 +54,8 @@ describe('refs-destruction', () => {
54 });
55
56 it('should remove refs when destroying the child', () => {
57 - var container = document.createElement('div');
58 - var testInstance = ReactDOM.render(<TestComponent />, container);
57 + const container = document.createElement('div');
58 + const testInstance = ReactDOM.render(<TestComponent />, container);
59 expect(ReactTestUtils.isDOMComponent(testInstance.refs.theInnerDiv)).toBe(
60 true,
61 );
@@ -83,7 +83,7 @@ describe('refs-destruction', () => {
83 }
84
85 componentWillUnmount() {
86 - var self = this;
86 + const self = this;
87 // some async animation
88 setTimeout(function() {
89 expect(function() {
@@ -114,7 +114,7 @@ describe('refs-destruction', () => {
114 }
115 }
116
117 - var container = document.createElement('div');
117 + const container = document.createElement('div');
118 ReactDOM.render(<App />, container);
119 ReactDOM.render(<App hidden={true} />, container);
120 jest.runAllTimers();
packages/react-dom/src/__tests__/refs-test.js
+26 -26
@@ -9,8 +9,8 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var ReactTestUtils = require('react-dom/test-utils');
12 +let React = require('react');
13 +let ReactTestUtils = require('react-dom/test-utils');
14
15 /**
16 * Counts clicks and has a renders an item for each click. Each item rendered
@@ -28,8 +28,8 @@ class ClickCounter extends React.Component {
28 };
29
30 render() {
31 - var children = [];
32 - var i;
31 + const children = [];
32 + let i;
33 for (i = 0; i < this.state.count; i++) {
34 children.push(
35 <div
@@ -84,23 +84,23 @@ class TestRefsComponent extends React.Component {
84 /**
85 * Render a TestRefsComponent and ensure that the main refs are wired up.
86 */
87 -var renderTestRefsComponent = function() {
88 - var testRefsComponent = ReactTestUtils.renderIntoDocument(
87 +const renderTestRefsComponent = function() {
88 + const testRefsComponent = ReactTestUtils.renderIntoDocument(
89 <TestRefsComponent />,
90 );
91 expect(testRefsComponent instanceof TestRefsComponent).toBe(true);
92
93 - var generalContainer = testRefsComponent.refs.myContainer;
93 + const generalContainer = testRefsComponent.refs.myContainer;
94 expect(generalContainer instanceof GeneralContainerComponent).toBe(true);
95
96 - var counter = testRefsComponent.refs.myCounter;
96 + const counter = testRefsComponent.refs.myCounter;
97 expect(counter instanceof ClickCounter).toBe(true);
98
99 return testRefsComponent;
100 };
101
102 -var expectClickLogsLengthToBe = function(instance, length) {
103 - var clickLogs = ReactTestUtils.scryRenderedDOMComponentsWithClass(
102 +const expectClickLogsLengthToBe = function(instance, length) {
103 + const clickLogs = ReactTestUtils.scryRenderedDOMComponentsWithClass(
104 instance,
105 'clickLogDiv',
106 );
@@ -120,8 +120,8 @@ describe('reactiverefs', () => {
120 * perspective of the injected ClickCounter component.
121 */
122 it('Should increase refs with an increase in divs', () => {
123 - var testRefsComponent = renderTestRefsComponent();
124 - var clickIncrementer = ReactTestUtils.findRenderedDOMComponentWithClass(
123 + const testRefsComponent = renderTestRefsComponent();
124 + const clickIncrementer = ReactTestUtils.findRenderedDOMComponentWithClass(
125 testRefsComponent,
126 'clickIncrementer',
127 );
@@ -178,7 +178,7 @@ describe('ref swapping', () => {
178 };
179
180 render() {
181 - var count = this.state.count;
181 + const count = this.state.count;
182 /**
183 * What we have here, is three divs with refs (div1/2/3), but a single
184 * moving cursor ref `hopRef` that "hops" around the three. We'll call the
@@ -206,17 +206,17 @@ describe('ref swapping', () => {
206 });
207
208 it('Allow refs to hop around children correctly', () => {
209 - var refHopsAround = ReactTestUtils.renderIntoDocument(<RefHopsAround />);
209 + const refHopsAround = ReactTestUtils.renderIntoDocument(<RefHopsAround />);
210
211 - var firstDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
211 + const firstDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
212 refHopsAround,
213 'first',
214 );
215 - var secondDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
215 + const secondDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
216 refHopsAround,
217 'second',
218 );
219 - var thirdDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
219 + const thirdDiv = ReactTestUtils.findRenderedDOMComponentWithClass(
220 refHopsAround,
221 'third',
222 );
@@ -252,12 +252,12 @@ describe('ref swapping', () => {
252 }
253 }
254
255 - var instance = ReactTestUtils.renderIntoDocument(<Component />);
255 + const instance = ReactTestUtils.renderIntoDocument(<Component />);
256 expect(!!instance.refs).toBe(true);
257 });
258
259 it('ref called correctly for stateless component', () => {
260 - var refCalled = 0;
260 + let refCalled = 0;
261 function Inner(props) {
262 return <a ref={props.saveA} />;
263 }
@@ -293,13 +293,13 @@ describe('ref swapping', () => {
293
294 describe('root level refs', () => {
295 it('attaches and detaches root refs', () => {
296 - var ReactDOM = require('react-dom');
297 - var inst = null;
296 + const ReactDOM = require('react-dom');
297 + let inst = null;
298
299 // host node
300 - var ref = jest.fn(value => (inst = value));
301 - var container = document.createElement('div');
302 - var result = ReactDOM.render(<div ref={ref} />, container);
300 + let ref = jest.fn(value => (inst = value));
301 + const container = document.createElement('div');
302 + let result = ReactDOM.render(<div ref={ref} />, container);
303 expect(ref).toHaveBeenCalledTimes(1);
304 expect(ref.mock.calls[0][0]).toBeInstanceOf(HTMLDivElement);
305 expect(result).toBe(ref.mock.calls[0][0]);
@@ -336,8 +336,8 @@ describe('root level refs', () => {
336 // fragment
337 inst = null;
338 ref = jest.fn(value => (inst = value));
339 - var divInst = null;
340 - var ref2 = jest.fn(value => (divInst = value));
339 + let divInst = null;
340 + const ref2 = jest.fn(value => (divInst = value));
341 result = ReactDOM.render(
342 [
343 <Comp ref={ref} key="a" />,
packages/react-dom/src/__tests__/renderSubtreeIntoContainer-test.js
+19 -19
@@ -9,16 +9,16 @@
9
10 'use strict';
11
12 -var React = require('react');
13 -var PropTypes = require('prop-types');
14 -var ReactDOM = require('react-dom');
15 -var ReactTestUtils = require('react-dom/test-utils');
16 -var renderSubtreeIntoContainer = require('react-dom')
12 +const React = require('react');
13 +const PropTypes = require('prop-types');
14 +const ReactDOM = require('react-dom');
15 +const ReactTestUtils = require('react-dom/test-utils');
16 +const renderSubtreeIntoContainer = require('react-dom')
17 .unstable_renderSubtreeIntoContainer;
18
19 describe('renderSubtreeIntoContainer', () => {
20 it('should pass context when rendering subtree elsewhere', () => {
21 - var portal = document.createElement('div');
21 + const portal = document.createElement('div');
22
23 class Component extends React.Component {
24 static contextTypes = {
@@ -59,7 +59,7 @@ describe('renderSubtreeIntoContainer', () => {
59 });
60
61 it('should throw if parentComponent is invalid', () => {
62 - var portal = document.createElement('div');
62 + const portal = document.createElement('div');
63
64 class Component extends React.Component {
65 static contextTypes = {
@@ -98,9 +98,9 @@ describe('renderSubtreeIntoContainer', () => {
98 });
99
100 it('should update context if it changes due to setState', () => {
101 - var container = document.createElement('div');
101 + const container = document.createElement('div');
102 document.body.appendChild(container);
103 - var portal = document.createElement('div');
103 + const portal = document.createElement('div');
104
105 class Component extends React.Component {
106 static contextTypes = {
@@ -143,16 +143,16 @@ describe('renderSubtreeIntoContainer', () => {
143 }
144 }
145
146 - var instance = ReactDOM.render(<Parent />, container);
146 + const instance = ReactDOM.render(<Parent />, container);
147 expect(portal.firstChild.innerHTML).toBe('initial-initial');
148 instance.setState({bar: 'changed'});
149 expect(portal.firstChild.innerHTML).toBe('changed-changed');
150 });
151
152 it('should update context if it changes due to re-render', () => {
153 - var container = document.createElement('div');
153 + const container = document.createElement('div');
154 document.body.appendChild(container);
155 - var portal = document.createElement('div');
155 + const portal = document.createElement('div');
156
157 class Component extends React.Component {
158 static contextTypes = {
@@ -198,9 +198,9 @@ describe('renderSubtreeIntoContainer', () => {
198 });
199
200 it('should render portal with non-context-provider parent', () => {
201 - var container = document.createElement('div');
201 + const container = document.createElement('div');
202 document.body.appendChild(container);
203 - var portal = document.createElement('div');
203 + const portal = document.createElement('div');
204
205 class Parent extends React.Component {
206 render() {
@@ -217,9 +217,9 @@ describe('renderSubtreeIntoContainer', () => {
217 });
218
219 it('should get context through non-context-provider parent', () => {
220 - var container = document.createElement('div');
220 + const container = document.createElement('div');
221 document.body.appendChild(container);
222 - var portal = document.createElement('div');
222 + const portal = document.createElement('div');
223
224 class Parent extends React.Component {
225 render() {
@@ -256,10 +256,10 @@ describe('renderSubtreeIntoContainer', () => {
256 });
257
258 it('should get context through middle non-context-provider layer', () => {
259 - var container = document.createElement('div');
259 + const container = document.createElement('div');
260 document.body.appendChild(container);
261 - var portal1 = document.createElement('div');
262 - var portal2 = document.createElement('div');
261 + const portal1 = document.createElement('div');
262 + const portal2 = document.createElement('div');
263
264 class Parent extends React.Component {
265 render() {
packages/react-dom/src/__tests__/utils/ReactDOMServerIntegrationTestUtils.js
+6 -6
@@ -57,7 +57,7 @@ module.exports = function(initModules) {
57 );
58 if (console.error.calls.count() > 0) {
59 console.log(`We saw these warnings:`);
60 - for (var i = 0; i < console.error.calls.count(); i++) {
60 + for (let i = 0; i < console.error.calls.count(); i++) {
61 console.log(console.error.calls.argsFor(i)[0]);
62 }
63 }
@@ -97,7 +97,7 @@ module.exports = function(initModules) {
97 // Does not render on client or perform client-side revival.
98 async function serverRender(reactElement, errorCount = 0) {
99 const markup = await renderIntoString(reactElement, errorCount);
100 - var domElement = document.createElement('div');
100 + const domElement = document.createElement('div');
101 domElement.innerHTML = markup;
102 return domElement.firstChild;
103 }
@@ -133,7 +133,7 @@ module.exports = function(initModules) {
133 // Does not render on client or perform client-side revival.
134 async function streamRender(reactElement, errorCount = 0) {
135 const markup = await renderIntoStream(reactElement, errorCount);
136 - var domElement = document.createElement('div');
136 + const domElement = document.createElement('div');
137 domElement.innerHTML = markup;
138 return domElement.firstChild;
139 }
@@ -147,7 +147,7 @@ module.exports = function(initModules) {
147 const markup = await renderIntoString(element, errorCount);
148 resetModules();
149
150 - var domElement = document.createElement('div');
150 + const domElement = document.createElement('div');
151 domElement.innerHTML = markup;
152 let serverNode = domElement.firstChild;
153
@@ -178,13 +178,13 @@ module.exports = function(initModules) {
178
179 const clientRenderOnBadMarkup = async (element, errorCount = 0) => {
180 // First we render the top of bad mark up.
181 - var domElement = document.createElement('div');
181 + const domElement = document.createElement('div');
182 domElement.innerHTML =
183 '<div id="badIdWhichWillCauseMismatch" data-reactroot="" data-reactid="1"></div>';
184 await renderIntoDom(element, domElement, true, errorCount + 1);
185
186 // This gives us the resulting text content.
187 - var hydratedTextContent = domElement.textContent;
187 + const hydratedTextContent = domElement.textContent;
188
189 // Next we render the element into a clean DOM node client side.
190 const cleanDomElement = document.createElement('div');
packages/react-dom/src/__tests__/validateDOMNesting-test.internal.js
+6 -6
@@ -9,10 +9,10 @@
9
10 'use strict';
11
12 -var validateDOMNesting;
12 +let validateDOMNesting;
13
14 // https://html.spec.whatwg.org/multipage/syntax.html#special
15 -var specialTags = [
15 +const specialTags = [
16 'address',
17 'applet',
18 'area',
@@ -99,7 +99,7 @@ var specialTags = [
99 ];
100
101 // https://html.spec.whatwg.org/multipage/syntax.html#formatting
102 -var formattingTags = [
102 +const formattingTags = [
103 'a',
104 'b',
105 'big',
@@ -117,8 +117,8 @@ var formattingTags = [
117 ];
118
119 function isTagStackValid(stack) {
120 - var ancestorInfo = null;
121 - for (var i = 0; i < stack.length; i++) {
120 + let ancestorInfo = null;
121 + for (let i = 0; i < stack.length; i++) {
122 if (!validateDOMNesting.isTagValidInContext(stack[i], ancestorInfo)) {
123 return false;
124 }
@@ -143,7 +143,7 @@ describe('validateDOMNesting', () => {
143 if (__DEV__) {
144 // With renderToString (for example), we don't know where we're mounting the
145 // tag so we must err on the side of leniency.
146 - var allTags = [].concat(specialTags, formattingTags, ['mysterytag']);
146 + const allTags = [].concat(specialTags, formattingTags, ['mysterytag']);
147 allTags.forEach(function(tag) {
148 expect(validateDOMNesting.isTagValidInContext(tag, null)).toBe(true);
149 });