Skip to content

Commit ae96f21

Browse files
committed
Remove inputValueTracking from ReactDOMComponent-test dependency
1 parent 3990294 commit ae96f21

File tree

1 file changed

+28
-9
lines changed

1 file changed

+28
-9
lines changed

packages/react-dom/src/__tests__/ReactDOMComponent-test.js

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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(/\(at .+?:\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

Comments
 (0)