@@ -14,7 +14,6 @@ describe('ReactDOMComponent', () => {
1414 var ReactTestUtils ;
1515 var ReactDOM ;
1616 var ReactDOMServer ;
17- var inputValueTracking ;
1817
1918 function normalizeCodeLocInfo ( str ) {
2019 return str && str . replace ( / \( a t .+ ?: \d + \) / g, '(at **)' ) ;
@@ -26,8 +25,6 @@ describe('ReactDOMComponent', () => {
2625 ReactDOM = require ( 'react-dom' ) ;
2726 ReactDOMServer = require ( 'react-dom/server' ) ;
2827 ReactTestUtils = require ( 'react-dom/test-utils' ) ;
29- // TODO: can we express this test with only public API?
30- inputValueTracking = require ( '../client/inputValueTracking' ) ;
3128 } ) ;
3229
3330 describe ( 'updateDOM' , ( ) => {
@@ -832,6 +829,32 @@ describe('ReactDOMComponent', () => {
832829
833830 describe ( 'mountComponent' , ( ) => {
834831 var mountComponent ;
832+ var getTracker = ( node : any ) => {
833+ var descriptor = Object . getOwnPropertyDescriptor (
834+ node . constructor . prototype ,
835+ 'value' ,
836+ ) ;
837+
838+ var currentValue = '' + node . value ;
839+
840+ Object . defineProperty ( node , 'value' , {
841+ enumerable : descriptor . enumerable ,
842+ configurable : true ,
843+ get : ( ) => {
844+ return descriptor . get . call ( this ) ;
845+ } ,
846+ set : ( value ) => {
847+ currentValue = '' + value ;
848+ descriptor . set . call ( this , value ) ;
849+ } ,
850+ } ) ;
851+
852+ return {
853+ getValue ( ) {
854+ return currentValue ;
855+ } ,
856+ } ;
857+ } ;
835858
836859 beforeEach ( ( ) => {
837860 mountComponent = function ( props ) {
@@ -1151,18 +1174,14 @@ describe('ReactDOMComponent', () => {
11511174 < input type = "text" defaultValue = "foo" /> ,
11521175 container ,
11531176 ) ;
1154-
1155- var tracker = inputValueTracking . _getTrackerFromNode ( inst ) ;
1156-
1177+ var tracker = getTracker ( inst ) ;
11571178 expect ( tracker . getValue ( ) ) . toEqual ( 'foo' ) ;
11581179 } ) ;
11591180
11601181 it ( 'should track textarea values' , ( ) => {
11611182 var container = document . createElement ( 'div' ) ;
11621183 var inst = ReactDOM . render ( < textarea defaultValue = "foo" /> , container ) ;
1163-
1164- var tracker = inputValueTracking . _getTrackerFromNode ( inst ) ;
1165-
1184+ var tracker = getTracker ( inst ) ;
11661185 expect ( tracker . getValue ( ) ) . toEqual ( 'foo' ) ;
11671186 } ) ;
11681187
0 commit comments