Skip to content

Commit eb8470d

Browse files
authored
refactor: make required and invalid properties use sync update (#8332)
1 parent ece6317 commit eb8470d

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

packages/custom-field/src/vaadin-custom-field-mixin.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ export const CustomFieldMixin = (superClass) =>
5656
type: String,
5757
observer: '__valueChanged',
5858
notify: true,
59+
sync: true,
5960
},
6061

6162
/**

packages/field-base/src/validate-mixin.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export const ValidateMixin = dedupingMixin(
2323
reflectToAttribute: true,
2424
notify: true,
2525
value: false,
26+
sync: true,
2627
},
2728

2829
/**
@@ -47,6 +48,7 @@ export const ValidateMixin = dedupingMixin(
4748
required: {
4849
type: Boolean,
4950
reflectToAttribute: true,
51+
sync: true,
5052
},
5153
};
5254
}

packages/field-base/test/validate-mixin.test.js

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from '@vaadin/chai-plugins';
2-
import { defineLit, definePolymer, fixtureSync, nextRender, nextUpdate } from '@vaadin/testing-helpers';
2+
import { defineLit, definePolymer, fixtureSync, nextRender } from '@vaadin/testing-helpers';
33
import sinon from 'sinon';
44
import { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';
55
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
@@ -16,36 +16,32 @@ const runTests = (defineHelper, baseMixin) => {
1616
await nextRender();
1717
});
1818

19-
it('should reflect required property to attribute', async () => {
19+
it('should reflect required property to attribute', () => {
2020
expect(element.hasAttribute('required')).to.be.false;
2121

2222
element.required = true;
23-
await nextUpdate(element);
2423
expect(element.hasAttribute('required')).to.be.true;
2524
});
2625

27-
it('should reflect invalid property to attribute', async () => {
26+
it('should reflect invalid property to attribute', () => {
2827
expect(element.hasAttribute('invalid')).to.be.false;
2928

3029
element.invalid = true;
31-
await nextUpdate(element);
3230
expect(element.hasAttribute('invalid')).to.be.true;
3331
});
3432

3533
it('should have manual validation disabled by default', () => {
3634
expect(element.manualValidation).to.be.false;
3735
});
3836

39-
it('should fire invalid-changed event on invalid property change', async () => {
37+
it('should fire invalid-changed event on invalid property change', () => {
4038
const spy = sinon.spy();
4139
element.addEventListener('invalid-changed', spy);
4240
element.invalid = true;
43-
await nextUpdate(element);
4441
expect(spy.calledOnce).to.be.true;
4542

4643
spy.resetHistory();
4744
element.invalid = false;
48-
await nextUpdate(element);
4945
expect(spy.calledOnce).to.be.true;
5046
});
5147

0 commit comments

Comments
 (0)