From 537c60769887b4327f8be279254c2dd5eac867bc Mon Sep 17 00:00:00 2001 From: Sameer Kolhar Date: Mon, 23 Nov 2020 00:15:52 +0530 Subject: [PATCH 1/4] update formattedValue var with check for null --- src/number_format.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/number_format.js b/src/number_format.js index 1ec6a277..7b50eab3 100644 --- a/src/number_format.js +++ b/src/number_format.js @@ -149,7 +149,7 @@ class NumberFormat extends React.Component { const lastValueWithNewFormat = this.formatNumString(lastNumStr); - const formattedValue = props.value === undefined ? lastValueWithNewFormat : this.formatValueProp(); + const formattedValue = props.value === undefined || props.value !== null ? lastValueWithNewFormat : this.formatValueProp(); const numAsString = this.removeFormatting(formattedValue); const floatValue = parseFloat(numAsString); From fb78ec9006c86b92ee3368a37c6f41dfea63008a Mon Sep 17 00:00:00 2001 From: Sameer Kolhar Date: Mon, 23 Nov 2020 00:30:49 +0530 Subject: [PATCH 2/4] minor fix on eq. sign --- src/number_format.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/number_format.js b/src/number_format.js index 7b50eab3..408a7cc1 100644 --- a/src/number_format.js +++ b/src/number_format.js @@ -149,7 +149,7 @@ class NumberFormat extends React.Component { const lastValueWithNewFormat = this.formatNumString(lastNumStr); - const formattedValue = props.value === undefined || props.value !== null ? lastValueWithNewFormat : this.formatValueProp(); + const formattedValue = props.value === undefined || props.value === null ? lastValueWithNewFormat : this.formatValueProp(); const numAsString = this.removeFormatting(formattedValue); const floatValue = parseFloat(numAsString); From b1e6c8eb17b3e71bd93ed0641ae5524862fcdc26 Mon Sep 17 00:00:00 2001 From: Sameer Kolhar Date: Sun, 29 Nov 2020 00:09:33 +0530 Subject: [PATCH 3/4] add 2 new tests --- test/library/format_as_text.spec.js | 2 +- test/library/input.spec.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/test/library/format_as_text.spec.js b/test/library/format_as_text.spec.js index a2c677eb..dce363fc 100644 --- a/test/library/format_as_text.spec.js +++ b/test/library/format_as_text.spec.js @@ -42,7 +42,7 @@ describe('NumberFormat as text', () => { expect(wrapper.find('span').text()).toEqual('4111.36'); }); - it('it should add zeros if fixedDecimalScale is provided', () => { + it('should add zeros if fixedDecimalScale is provided', () => { const wrapper = shallow(); expect(wrapper.find('span').text()).toEqual('4111.1100'); diff --git a/test/library/input.spec.js b/test/library/input.spec.js index 0e640497..f2917e6e 100644 --- a/test/library/input.spec.js +++ b/test/library/input.spec.js @@ -11,6 +11,7 @@ import { shallow, mount } from '../test_util'; +import { exact } from 'prop-types'; /*** format_number input as input ****/ describe('NumberFormat as input', () => { @@ -56,6 +57,33 @@ describe('NumberFormat as input', () => { expect(wrapper.find('input').instance().value).toEqual('$2,456,981'); }); + it('should load the default value when initial value is null', () => { + const wrapper = mount(); + expect(wrapper.state().value).toEqual('89'); + }); + + it('should load the prevous valid value if the state is changed to null', () => { + class WrapperComponent extends React.Component { + constructor() { + super (); + this.state = { + testState: 90, + }; + } + render() { + return () + } + } + + const wrapper = mount(); + const input = wrapper.find('input'); + const domInput = input.instance(); + + expect(domInput.value).toEqual('90'); + wrapper.setState({testState: null}); + expect(domInput.value).toEqual('90'); + }); + it('should use defaultValue as initial value', () => { const wrapper = mount(); expect(wrapper.state().value).toEqual('$2,456,981'); From 514bf2a3dd3a1bed9f0199ca2bfc1a0c4515e0be Mon Sep 17 00:00:00 2001 From: Sameer Kolhar Date: Sun, 29 Nov 2020 00:10:30 +0530 Subject: [PATCH 4/4] remove line --- test/library/input.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/library/input.spec.js b/test/library/input.spec.js index f2917e6e..e58e47b4 100644 --- a/test/library/input.spec.js +++ b/test/library/input.spec.js @@ -11,7 +11,6 @@ import { shallow, mount } from '../test_util'; -import { exact } from 'prop-types'; /*** format_number input as input ****/ describe('NumberFormat as input', () => {