chore: sync with main

This commit is contained in:
Liam DeBeasi
2023-10-11 09:50:48 -04:00
35 changed files with 392 additions and 166 deletions

View File

@ -200,7 +200,11 @@ export class Radio implements ComponentInterface {
};
private onClick = () => {
const { radioGroup, checked } = this;
const { radioGroup, checked, disabled } = this;
if (disabled) {
return;
}
/**
* The legacy control uses a native input inside

View File

@ -31,3 +31,27 @@ describe('ion-radio', () => {
expect(radio.classList.contains('radio-checked')).toBe(true);
});
});
describe('ion-radio: disabled', () => {
it('clicking disabled radio should not set checked state', async () => {
const page = await newSpecPage({
components: [Radio, RadioGroup],
html: `
<ion-radio-group>
<ion-radio disabled="true" value="a">Radio</ion-radio>
</ion-radio-group>
`,
});
const radio = page.body.querySelector('ion-radio');
const radioGroup = page.body.querySelector('ion-radio-group');
expect(radioGroup.value).toBe(undefined);
radio.click();
await page.waitForChanges();
expect(radioGroup.value).toBe(undefined);
});
});