Skip to content

Commit

Permalink
Merge ae75415 into 7599194
Browse files Browse the repository at this point in the history
  • Loading branch information
pekam committed Oct 7, 2019
2 parents 7599194 + ae75415 commit b176c34
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/vaadin-number-field.html
Expand Up @@ -303,7 +303,13 @@
}

_stepChanged(step) {
this.inputElement.step = step;
if (!this.__stepChangedCalled) {
// Setting the initial value, avoid using it in validation.
this.inputElement.step = 'any';
this.__stepChangedCalled = true;
} else {
this.inputElement.step = step;
}
}

_minChanged(min) {
Expand Down
43 changes: 43 additions & 0 deletions test/number-field.html
Expand Up @@ -749,6 +749,49 @@
expect(numberField.validate(), 'value should not be greater than max').to.be.false;
});

it('should validate by step when defined by user', () => {
numberField.step = 1.5;

numberField.value = '0';
expect(numberField.validate()).to.be.true;

numberField.value = '-1.5';
expect(numberField.validate()).to.be.true;

numberField.value = '3';
expect(numberField.validate()).to.be.true;

numberField.value = '-1';
expect(numberField.validate()).to.be.false;

numberField.value = '2';
expect(numberField.validate()).to.be.false;
});

it('should use min as step basis in validation when both are defined', () => {
numberField.min = 1;
numberField.step = 1.5;

numberField.value = '1';
expect(numberField.validate()).to.be.true;

numberField.value = '2.5';
expect(numberField.validate()).to.be.true;

numberField.value = '4';
expect(numberField.validate()).to.be.true;

numberField.value = '1.5';
expect(numberField.validate()).to.be.false;
});

it('should not validate by step when only min and max are set', () => {
numberField.min = 1;
numberField.max = 5;
numberField.value = 1.5; // would be invalid by default step=1
expect(numberField.validate()).to.be.true;
});

describe('removing validation constraints', () => {
it('should update "invalid" state when "min" is removed', () => {
numberField.value = '42';
Expand Down

0 comments on commit b176c34

Please sign in to comment.