From a0fc4d1142196e1dcf8d8fce451bc2133ddd7e56 Mon Sep 17 00:00:00 2001 From: Cole Blanchard <33158416+blanchco@users.noreply.github.com> Date: Wed, 29 May 2024 09:59:06 -0400 Subject: [PATCH] nist to number fix (#3725) Co-authored-by: Cole Blanchard --- .../src/components/widgets/tera-input.vue | 4 ++-- .../client/hmi-client/src/utils/number.ts | 7 +++---- .../tests/unit/utils/number.spec.ts | 21 ++++++------------- 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/packages/client/hmi-client/src/components/widgets/tera-input.vue b/packages/client/hmi-client/src/components/widgets/tera-input.vue index 6bc2b8456f..6d0828d924 100644 --- a/packages/client/hmi-client/src/components/widgets/tera-input.vue +++ b/packages/client/hmi-client/src/components/widgets/tera-input.vue @@ -64,14 +64,14 @@ watch( () => props.modelValue, (newValue) => { if (isNistType) { - maskedValue.value = numberToNist(newValue.toString()); + maskedValue.value = numberToNist(newValue?.toString() ?? ''); } } ); onMounted(() => { if (isNistType) { - maskedValue.value = numberToNist(props.modelValue.toString()); + maskedValue.value = numberToNist(props.modelValue?.toString() ?? ''); } }); diff --git a/packages/client/hmi-client/src/utils/number.ts b/packages/client/hmi-client/src/utils/number.ts index 44d3d6174f..5e1fc7a3e4 100644 --- a/packages/client/hmi-client/src/utils/number.ts +++ b/packages/client/hmi-client/src/utils/number.ts @@ -46,11 +46,10 @@ export function numberToNist(num: string) { * @param {string} num - The number string in NIST form to convert. * @returns {string} The number in normal form. */ -export function nistToNumber(num: string): string { +export function nistToNumber(numStr: string): number { // Remove any spaces from the formatted number - let numStr = num.replace(/\s/g, ''); - numStr = parseFloat(numStr).toString(); - return numStr; + numStr = numStr.replace(/\s/g, ''); + return parseFloat(numStr); } /** diff --git a/packages/client/hmi-client/tests/unit/utils/number.spec.ts b/packages/client/hmi-client/tests/unit/utils/number.spec.ts index 72dcd7e001..1a6376d569 100644 --- a/packages/client/hmi-client/tests/unit/utils/number.spec.ts +++ b/packages/client/hmi-client/tests/unit/utils/number.spec.ts @@ -65,33 +65,24 @@ describe('number util tests', () => { describe('nistToNumber', () => { it('should correctly convert numbers without a decimal part', () => { - expect(nistToNumber('1')).to.eq('1'); - expect(nistToNumber('12')).to.eq('12'); - expect(nistToNumber('123')).to.eq('123'); - expect(nistToNumber('1 234 567')).to.eq('1234567'); + expect(nistToNumber('1 234 567')).to.eq(1234567); }); it('should correctly convert numbers with a decimal part', () => { - expect(nistToNumber('1.1')).to.eq('1.1'); - expect(nistToNumber('12.12')).to.eq('12.12'); - expect(nistToNumber('123.123')).to.eq('123.123'); - expect(nistToNumber('1 234 567.123 456 7')).to.eq('1234567.1234567'); + expect(nistToNumber('1 234 567.123 456 7')).to.eq(1234567.1234567); }); it('should correctly convert negative numbers', () => { - expect(nistToNumber('-1')).to.eq('-1'); - expect(nistToNumber('-12')).to.eq('-12'); - expect(nistToNumber('-123')).to.eq('-123'); - expect(nistToNumber('-1 234 567.123 456 7')).to.eq('-1234567.1234567'); + expect(nistToNumber('-1 234 567.123 456 7')).to.eq(-1234567.1234567); }); it('should return "NaN" for non-numeric strings', () => { - expect(nistToNumber('abc')).to.eq('NaN'); - expect(nistToNumber('1.23abc')).to.eq('1.23'); + expect(Number.isNaN(nistToNumber('abc'))).to.equal(true); + expect(nistToNumber('1.23abc')).to.eq(1.23); }); it('should correctly handle multiple spaces between groups', () => { - expect(nistToNumber('1 234.123 4')).to.eq('1234.1234'); + expect(nistToNumber('1 234.123 4')).to.eq(1234.1234); }); });