Merge pull request #406 from ing-bank/fix/set-initial-fieldset-value

fix(fieldset): wait for registration before setting values
This commit is contained in:
Thijs Louisse 2019-12-11 16:17:39 +01:00 committed by GitHub
commit fb6b77e790
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 1 deletions

View file

@ -266,7 +266,11 @@ export class LionFieldset extends FormRegistrarMixin(
});
}
_setValueMapForAllFormElements(property, values) {
async _setValueMapForAllFormElements(property, values) {
if (!this.__readyForRegistration) {
await this.registrationReady;
}
if (values && typeof values === 'object') {
Object.keys(values).forEach(name => {
if (Array.isArray(this.formElements[name])) {

View file

@ -260,6 +260,36 @@ describe('<lion-fieldset>', () => {
expect(el.formElements.sub.formElements['hobbies[]'][1].disabled).to.be.true;
});
it('can set initial modelValue on creation', async () => {
const initialModelValue = {
lastName: 'Bar',
};
const el = await fixture(html`
<${tag} .modelValue=${initialModelValue}>
<${childTag} name="lastName"></${childTag}>
</${tag}>
`);
await el.registrationReady;
await el.updateComplete;
expect(el.modelValue).to.eql(initialModelValue);
});
it('can set initial serializedValue on creation', async () => {
const initialSerializedValue = {
lastName: 'Bar',
};
const el = await fixture(html`
<${tag} .modelValue=${initialSerializedValue}>
<${childTag} name="lastName"></${childTag}>
</${tag}>
`);
await el.registrationReady;
await el.updateComplete;
expect(el.modelValue).to.eql(initialSerializedValue);
});
describe('validation', () => {
it('validates on init', async () => {
class IsCat extends Validator {