File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed
src/renderers/dom/client/__tests__ Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change 11
11
'use strict' ;
12
12
13
13
var React = require ( 'React' ) ;
14
+ var ReactDOM = require ( 'ReactDOM' ) ;
14
15
var ReactTestUtils = require ( 'ReactTestUtils' ) ;
15
16
var inputValueTracking = require ( 'inputValueTracking' ) ;
16
17
@@ -151,4 +152,31 @@ describe('inputValueTracking', function() {
151
152
152
153
expect ( input . hasOwnProperty ( 'value' ) ) . toBe ( false ) ;
153
154
} ) ;
155
+
156
+
157
+ it ( 'does not crash for nodes with custom value property' , ( ) => {
158
+ // https://github.com/facebook/react/issues/10196
159
+ try {
160
+ var originalCreateElement = document . createElement ;
161
+ document . createElement = function ( ) {
162
+ var node = originalCreateElement . apply ( this , arguments ) ;
163
+ Object . defineProperty ( node , 'value' , {
164
+ get ( ) { } ,
165
+ set ( ) { } ,
166
+ } ) ;
167
+ return node ;
168
+ } ;
169
+ var div = document . createElement ( 'div' ) ;
170
+ // Mount
171
+ var node = ReactDOM . render ( < input type = "text" /> , div ) ;
172
+ // Update
173
+ ReactDOM . render ( < input type = "text" /> , div ) ;
174
+ // Change
175
+ ReactTestUtils . SimulateNative . change ( node ) ;
176
+ // Unmount
177
+ ReactDOM . unmountComponentAtNode ( div ) ;
178
+ } finally {
179
+ document . createElement = originalCreateElement ;
180
+ }
181
+ } ) ;
154
182
} ) ;
You can’t perform that action at this time.
0 commit comments