From b9f8c962a6ced8ea483bb9b0db54e32d13005a57 Mon Sep 17 00:00:00 2001 From: Daniel Alarcon Amador Date: Thu, 5 Dec 2019 10:09:59 +0100 Subject: [PATCH 1/2] fix(fieldset): 0 is now a valid serializedValue --- packages/fieldset/src/LionFieldset.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/fieldset/src/LionFieldset.js b/packages/fieldset/src/LionFieldset.js index cfccbd53a..99c84519b 100644 --- a/packages/fieldset/src/LionFieldset.js +++ b/packages/fieldset/src/LionFieldset.js @@ -210,7 +210,7 @@ export class LionFieldset extends FormRegistrarMixin( serializedValues[name] = this.__serializeElements(element); } else { const serializedValue = this.__serializeElement(element); - if (serializedValue) { + if (serializedValue || serializedValue === 0) { serializedValues[name] = serializedValue; } } @@ -353,7 +353,7 @@ export class LionFieldset extends FormRegistrarMixin( const serializedValues = []; elements.forEach(element => { const serializedValue = this.__serializeElement(element); - if (serializedValue) { + if (serializedValue || serializedValue === 0) { serializedValues.push(serializedValue); } }); From c1f35030bd2c6849facc79f9c79dd8c45eac5419 Mon Sep 17 00:00:00 2001 From: Daniel Alarcon Amador Date: Thu, 5 Dec 2019 12:10:40 +0100 Subject: [PATCH 2/2] chore(fieldset): added missing tests for serializeGroup/Elements --- packages/fieldset/test/lion-fieldset.test.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/fieldset/test/lion-fieldset.test.js b/packages/fieldset/test/lion-fieldset.test.js index 1c6b82668..0ae6d64c2 100644 --- a/packages/fieldset/test/lion-fieldset.test.js +++ b/packages/fieldset/test/lion-fieldset.test.js @@ -566,6 +566,23 @@ describe('', () => { }); }); + it('0 is a valid value to be serialized', async () => { + const fieldset = await fixture(html` + <${tag}> + <${childTag} name="price"> + `); + await nextFrame(); + fieldset.formElements.price.modelValue = 0; + expect(fieldset.serializeGroup()).to.deep.equal({ price: 0 }); + }); + + it('__serializeElements serializes 0 as a valid value', async () => { + const fieldset = await fixture(html`<${tag}>`); + await nextFrame(); + const elements = [{ serializedValue: 0 }]; + expect(fieldset.__serializeElements(elements)).to.deep.equal([0]); + }); + it('form elements which are not disabled', async () => { const fieldset = await fixture(html`<${tag}>${inputSlots}`); await nextFrame();