Skip to content

Commit 2a0c2e0

Browse files
authored
fix(module:input-number): consider input value ends with 0 as incomplete (#9051)
1 parent bb48232 commit 2a0c2e0

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

components/input-number/input-number.component.spec.ts

+21-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { Component, ElementRef, viewChild } from '@angular/core';
88
import { ComponentFixture, TestBed } from '@angular/core/testing';
99
import { FormsModule } from '@angular/forms';
1010

11+
import { dispatchKeyboardEvent } from 'ng-zorro-antd/core/testing';
1112
import { NzSizeLDSType, NzStatus } from 'ng-zorro-antd/core/types';
1213
import { provideNzIconsTesting } from 'ng-zorro-antd/icon/testing';
1314

@@ -373,6 +374,19 @@ describe('Input number', () => {
373374
expect(hostElement.querySelector('.ant-input-number-handler-wrap')).toBeNull();
374375
});
375376

377+
it('should not format input value if incomplete', () => {
378+
fixture.detectChanges();
379+
380+
input('1.0');
381+
expect(component.displayValue).toBe('1.0');
382+
383+
input('1.00'); // 2 consecutive zeros
384+
expect(component.displayValue).toBe('1.00');
385+
386+
input('1.10'); // zero is not preceded by a `.`
387+
expect(component.displayValue).toBe('1.10');
388+
});
389+
376390
function upStepByHandler(eventInit?: MouseEventInit): void {
377391
const handler = hostElement.querySelector('.ant-input-number-handler-up')!;
378392
handler.dispatchEvent(new MouseEvent('mousedown', eventInit));
@@ -385,13 +399,13 @@ describe('Input number', () => {
385399
}
386400

387401
function upStepByKeyboard(): void {
388-
hostElement.dispatchEvent(new KeyboardEvent('keydown', { keyCode: UP_ARROW }));
402+
dispatchKeyboardEvent(hostElement, 'keydown', UP_ARROW);
389403
}
390404
function downStepByKeyboard(): void {
391-
hostElement.dispatchEvent(new KeyboardEvent('keydown', { keyCode: DOWN_ARROW }));
405+
dispatchKeyboardEvent(hostElement, 'keydown', DOWN_ARROW);
392406
}
393407
function enter(): void {
394-
hostElement.dispatchEvent(new KeyboardEvent('keydown', { keyCode: ENTER }));
408+
dispatchKeyboardEvent(hostElement, 'keydown', ENTER);
395409
}
396410

397411
function getInputElement(): HTMLInputElement {
@@ -496,6 +510,10 @@ class InputNumberTestComponent {
496510
value: number | null = null;
497511
controlDisabled = false;
498512
inputNumber = viewChild.required(NzInputNumberComponent);
513+
514+
get displayValue(): string {
515+
return this.inputNumber()['displayValue']();
516+
}
499517
}
500518

501519
@Component({

components/input-number/input-number.component.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -557,5 +557,5 @@ function getDecimalPlaces(num: number): number {
557557
}
558558

559559
function isNotCompleteNumber(value: string | number): boolean {
560-
return /[.]$/.test(value.toString());
560+
return /[.](\d*0)?$/.test(value.toString());
561561
}

0 commit comments

Comments
 (0)