From 1adeb46e34a1d15e3318fdd15906fa2712931d16 Mon Sep 17 00:00:00 2001 From: Ben Romijn Date: Thu, 22 Aug 2019 11:15:39 +0200 Subject: [PATCH 1/2] fix(lion-radio-group): handle unchecked state --- packages/radio-group/src/LionRadioGroup.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/radio-group/src/LionRadioGroup.js b/packages/radio-group/src/LionRadioGroup.js index ab7d471ef..a70fcc695 100644 --- a/packages/radio-group/src/LionRadioGroup.js +++ b/packages/radio-group/src/LionRadioGroup.js @@ -35,7 +35,8 @@ export class LionRadioGroup extends LionFieldset { } get serializedValue() { - return this._getCheckedRadioElement().serializedValue; + const el = this._getCheckedRadioElement(); + return el ? el.serializedValue : ''; } set serializedValue(value) { @@ -43,7 +44,8 @@ export class LionRadioGroup extends LionFieldset { } get formattedValue() { - return this._getCheckedRadioElement().formattedValue; + const el = this._getCheckedRadioElement(); + return el ? el.formattedValue : ''; } set formattedValue(value) { From 7f12d3cd2c960820f1b4f2bdf36968b96f3f6b8f Mon Sep 17 00:00:00 2001 From: Ben Romijn Date: Mon, 9 Sep 2019 09:46:55 +0200 Subject: [PATCH 2/2] chore(lion-radio-group): add tests for serialized value --- .../radio-group/test/lion-radio-group.test.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/radio-group/test/lion-radio-group.test.js b/packages/radio-group/test/lion-radio-group.test.js index 77b26eccd..8f5b56835 100644 --- a/packages/radio-group/test/lion-radio-group.test.js +++ b/packages/radio-group/test/lion-radio-group.test.js @@ -211,4 +211,31 @@ describe('', () => { el.formElements['gender[]'][0].choiceChecked = true; expect(el.error.required).to.be.undefined; }); + + it('returns serialized value', async () => { + const group = await fixture(html` + + + + + `); + + await nextFrame(); + group.formElements['gender[]'][0].choiceChecked = true; + + expect(group.serializedValue).to.deep.equal({ checked: true, value: 'male' }); + }); + + it('returns serialized value on unchecked state', async () => { + const group = await fixture(html` + + + + + `); + + await nextFrame(); + + expect(group.serializedValue).to.deep.equal(''); + }); });