Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
[required]="isRequired()"
[value]="displayValue"
[(ngModel)]="field.value"
(ngModelChange)="onFieldChanged(field)"
(ngModelChange)="onNumberChange($event)"
[disabled]="field.readOnly"
[placeholder]="field.placeholder"
[title]="field.tooltip"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,45 @@ describe('NumberWidgetComponent', () => {
testingUtils = new UnitTestingUtils(fixture.debugElement, loader);
});

describe('with default value', () => {
beforeEach(() => {
widget.field = new FormFieldModel(new FormModel({ taskId: '<id>' }), {
type: FormFieldTypes.NUMBER,
value: 123,
id: 'number-id'
});
fixture.detectChanges();
});

it('should display the value', async () => {
const input = await testingUtils.getMatInput();

expect(await input.getValue()).toBe('123');
expect(widget.field.value).toBe(123);
});

it('should have value null when field is cleared', async () => {
const input = await testingUtils.getMatInput();
await input.setValue('');

expect(widget.field.value).toBeNull();
});

it('should have value null when value is undefined', async () => {
const input = await testingUtils.getMatInput();
await input.setValue(undefined);

expect(widget.field.value).toBeNull();
});

it('should have value null when value is null', async () => {
const input = await testingUtils.getMatInput();
await input.setValue(null);

expect(widget.field.value).toBeNull();
});
});

describe('when tooltip is set', () => {
beforeEach(() => {
widget.field = new FormFieldModel(new FormModel({ taskId: '<id>' }), {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,12 @@ export class NumberWidgetComponent extends WidgetComponent implements OnInit {
this.displayValue = this.field.value;
}
}

protected onNumberChange(value: string) {
if (value === null || value === undefined || value === '') {
this.field.value = null;
}

this.onFieldChanged(this.field);
}
}
Loading