From 81543e014914f8b954017186d0f5f8a4ede97161 Mon Sep 17 00:00:00 2001 From: Sergey Vinogradov Date: Thu, 14 Oct 2021 16:11:55 +0300 Subject: [PATCH] fix: set has-value attribute on radio-button click (#2862) --- .../radio-group/src/vaadin-radio-group.js | 4 -- packages/radio-group/test/radio-group.test.js | 42 ++++++++++++++----- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/packages/radio-group/src/vaadin-radio-group.js b/packages/radio-group/src/vaadin-radio-group.js index 14f1a2a6a27..de1766b3762 100644 --- a/packages/radio-group/src/vaadin-radio-group.js +++ b/packages/radio-group/src/vaadin-radio-group.js @@ -357,10 +357,6 @@ class RadioGroup extends FieldMixin(FocusMixin(DisabledMixin(KeyboardMixin(DirMi return; } - if (this.__selectedRadioButton && this.__selectedRadioButton.value === newValue) { - return; - } - const newSelectedRadioButton = this.__radioButtons.find((radioButton) => { return radioButton.value === newValue; }); diff --git a/packages/radio-group/test/radio-group.test.js b/packages/radio-group/test/radio-group.test.js index 43e600fadd4..dfc30a32380 100644 --- a/packages/radio-group/test/radio-group.test.js +++ b/packages/radio-group/test/radio-group.test.js @@ -267,17 +267,6 @@ describe('radio-group', () => { expect(buttons[1].checked).to.be.false; }); - it('should not have has-value attribute by default', () => { - expect(group.hasAttribute('has-value')).to.be.false; - }); - - it('should toggle has-value attribute on value change', () => { - group.value = '2'; - expect(group.hasAttribute('has-value')).to.be.true; - group.value = ''; - expect(group.hasAttribute('has-value')).to.be.false; - }); - it('should dispatch value-changed event when value changes', () => { const spy = sinon.spy(); group.addEventListener('value-changed', spy); @@ -302,6 +291,37 @@ describe('radio-group', () => { }); }); + describe('has-value attribute', () => { + beforeEach(async () => { + group = fixtureSync(` + + + + + `); + await nextFrame(); + buttons = [...group.querySelectorAll('vaadin-radio-button')]; + }); + + it('should not have has-value attribute by default', () => { + expect(group.hasAttribute('has-value')).to.be.false; + }); + + it('should set has-value on radio button click', () => { + buttons[0].click(); + expect(group.hasAttribute('has-value')).to.be.true; + buttons[1].click(); + expect(group.hasAttribute('has-value')).to.be.true; + }); + + it('should toggle has-value attribute on value change', () => { + group.value = '2'; + expect(group.hasAttribute('has-value')).to.be.true; + group.value = ''; + expect(group.hasAttribute('has-value')).to.be.false; + }); + }); + describe('change event', () => { let spy;