From bfb3852942bf25198a8a5b5a44f4eeadae190300 Mon Sep 17 00:00:00 2001 From: Troy DeMonbreun Date: Mon, 15 Aug 2016 13:38:53 -0500 Subject: [PATCH] Fix for #7170 (#7486) * Write failing test * Ensure .min and .max are set before .value * Adjusting test for false negative * Revert test adjustment (apparently it was only failing locally) (cherry picked from commit 3013afe2d566cc0f76eae39817815541bd78b67c) --- src/renderers/dom/client/wrappers/ReactDOMInput.js | 4 ++++ .../dom/client/wrappers/__tests__/ReactDOMInput-test.js | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/renderers/dom/client/wrappers/ReactDOMInput.js b/src/renderers/dom/client/wrappers/ReactDOMInput.js index 1b649f828d..dfa860a2db 100644 --- a/src/renderers/dom/client/wrappers/ReactDOMInput.js +++ b/src/renderers/dom/client/wrappers/ReactDOMInput.js @@ -67,6 +67,10 @@ var ReactDOMInput = { // Make sure we set .step before .value (setting .value before .step // means .value is rounded on mount, based upon step precision) step: undefined, + // Make sure we set .min & .max before .value (to ensure proper order + // in corner cases such as min or max deriving from value, e.g. Issue #7170) + min: undefined, + max: undefined, }, DisabledInputUtils.getHostProps(inst, props), { defaultChecked: undefined, defaultValue: undefined, diff --git a/src/renderers/dom/client/wrappers/__tests__/ReactDOMInput-test.js b/src/renderers/dom/client/wrappers/__tests__/ReactDOMInput-test.js index 46387715b7..342d96e194 100644 --- a/src/renderers/dom/client/wrappers/__tests__/ReactDOMInput-test.js +++ b/src/renderers/dom/client/wrappers/__tests__/ReactDOMInput-test.js @@ -733,7 +733,7 @@ describe('ReactDOMInput', function() { ); }); - it('sets type and step before value always', function() { + it('sets type, step, min, max before value always', function() { if (!ReactDOMFeatureFlags.useCreateElement) { return; } @@ -760,10 +760,10 @@ describe('ReactDOMInput', function() { 'set data-reactroot', 'set type', 'set step', - 'set value', 'set min', 'set max', 'set value', + 'set value', 'set checked', 'set checked', ]);