From 50287fba72aa80c736acc1bd127055e75772b766 Mon Sep 17 00:00:00 2001 From: Joren Broekema Date: Mon, 28 Sep 2020 11:17:02 +0200 Subject: [PATCH] feat(radio-group): add types for radio-group --- .changeset/early-houses-punch.md | 5 +++++ packages/radio-group/src/LionRadio.js | 3 +-- packages/radio-group/src/LionRadioGroup.js | 4 +--- packages/radio-group/test/lion-radio-group.test.js | 11 +++++++++-- 4 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 .changeset/early-houses-punch.md diff --git a/.changeset/early-houses-punch.md b/.changeset/early-houses-punch.md new file mode 100644 index 000000000..825f267b9 --- /dev/null +++ b/.changeset/early-houses-punch.md @@ -0,0 +1,5 @@ +--- +'@lion/radio-group': minor +--- + +Added types for the radio-group package. diff --git a/packages/radio-group/src/LionRadio.js b/packages/radio-group/src/LionRadio.js index 2e33b5106..0d340701f 100644 --- a/packages/radio-group/src/LionRadio.js +++ b/packages/radio-group/src/LionRadio.js @@ -19,11 +19,10 @@ import { LionInput } from '@lion/input'; * * * @customElement lion-radio - * @extends {LionInput} */ export class LionRadio extends ChoiceInputMixin(LionInput) { connectedCallback() { - if (super.connectedCallback) super.connectedCallback(); + super.connectedCallback(); this.type = 'radio'; } } diff --git a/packages/radio-group/src/LionRadioGroup.js b/packages/radio-group/src/LionRadioGroup.js index 41b229d67..db61cbd14 100644 --- a/packages/radio-group/src/LionRadioGroup.js +++ b/packages/radio-group/src/LionRadioGroup.js @@ -3,12 +3,10 @@ import { ChoiceGroupMixin, FormGroupMixin } from '@lion/form-core'; /** * A wrapper around multiple radios. - * - * @extends {LionFieldset} */ +// @ts-expect-error https://github.com/microsoft/TypeScript/issues/40110 export class LionRadioGroup extends ChoiceGroupMixin(FormGroupMixin(LitElement)) { connectedCallback() { - // eslint-disable-next-line wc/guard-super-call super.connectedCallback(); this.setAttribute('role', 'radiogroup'); } diff --git a/packages/radio-group/test/lion-radio-group.test.js b/packages/radio-group/test/lion-radio-group.test.js index 70059c2c2..edeb85b11 100644 --- a/packages/radio-group/test/lion-radio-group.test.js +++ b/packages/radio-group/test/lion-radio-group.test.js @@ -1,8 +1,15 @@ -import { expect, fixture, html } from '@open-wc/testing'; +import { expect, fixture as _fixture, html } from '@open-wc/testing'; import '../lion-radio-group.js'; import '../lion-radio.js'; +/** + * @typedef {import('../src/LionRadioGroup').LionRadioGroup} LionRadioGroup + * @typedef {import('../src/LionRadio').LionRadio} LionRadio + * @typedef {import('lit-html').TemplateResult} TemplateResult + */ +const fixture = /** @type {(arg: TemplateResult) => Promise} */ (_fixture); + describe('', () => { it('should have role = radiogroup', async () => { const el = await fixture(html` @@ -24,7 +31,7 @@ describe('', () => { el.children[1].focus(); expect(el.touched).to.equal(false, 'initially, touched state is false'); - el.children[1].checked = true; + /** @type {LionRadio} */ (el.children[1]).checked = true; expect(el.touched, `focused via a mouse click, group should be touched`).to.be.true; });