From 0bd47f8d6a6f8f9ce77702a7b9c7cce9a05cbf50 Mon Sep 17 00:00:00 2001 From: joquitch Date: Mon, 7 Feb 2022 09:01:29 +0100 Subject: [PATCH 1/4] fix(collapsible): moved binding to constructor --- packages/collapsible/src/LionCollapsible.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/collapsible/src/LionCollapsible.js b/packages/collapsible/src/LionCollapsible.js index da520e244..8be97e18b 100644 --- a/packages/collapsible/src/LionCollapsible.js +++ b/packages/collapsible/src/LionCollapsible.js @@ -43,6 +43,7 @@ export class LionCollapsible extends LitElement { constructor() { super(); this.opened = false; + this.toggle = this.toggle.bind(this); } connectedCallback() { @@ -51,7 +52,7 @@ export class LionCollapsible extends LitElement { const uid = uuid(); if (this._invokerNode) { - this._invokerNode.addEventListener('click', this.toggle.bind(this)); + this._invokerNode.addEventListener('click', this.toggle); this._invokerNode.setAttribute('aria-expanded', `${this.opened}`); this._invokerNode.setAttribute('id', `collapsible-invoker-${uid}`); this._invokerNode.setAttribute('aria-controls', `collapsible-content-${uid}`); From 3c9acaa77e144c9f05a284a8b3eaab99712d30ae Mon Sep 17 00:00:00 2001 From: joquitch Date: Mon, 7 Feb 2022 09:01:29 +0100 Subject: [PATCH 2/4] fix(collapsible): moved binding to constructor --- .changeset/tender-islands-wait.md | 5 +++++ packages/collapsible/test/lion-collapsible.test.js | 8 ++++++++ 2 files changed, 13 insertions(+) create mode 100644 .changeset/tender-islands-wait.md diff --git a/.changeset/tender-islands-wait.md b/.changeset/tender-islands-wait.md new file mode 100644 index 000000000..06047bade --- /dev/null +++ b/.changeset/tender-islands-wait.md @@ -0,0 +1,5 @@ +--- +'@lion/collapsible': patch +--- + +Moved binding to constructor to be be able to remove the event listener in disconnectedCallback diff --git a/packages/collapsible/test/lion-collapsible.test.js b/packages/collapsible/test/lion-collapsible.test.js index 28b5b1e0d..edcb453fe 100644 --- a/packages/collapsible/test/lion-collapsible.test.js +++ b/packages/collapsible/test/lion-collapsible.test.js @@ -100,6 +100,14 @@ describe('', () => { await collapsible.updateComplete; expect(isCollapsibleOpen).to.equal(false); }); + + it('opens a invoker on click even if moved once', async () => { + const collapsible = await fixture(defaultCollapsible); + collapsible.remove(); + const invoker = collapsible.querySelector('[slot=invoker]'); + invoker?.dispatchEvent(new Event('click')); + expect(collapsible.opened).to.equal(true); + }); }); describe('Accessibility', () => { From 98ddad249dc921136d98ebf6058a43ea230de547 Mon Sep 17 00:00:00 2001 From: joquitch Date: Tue, 8 Feb 2022 09:30:44 +0100 Subject: [PATCH 3/4] removed unwanted test I accidentally added an unfinished test when adding changeset. In this commit it's removed. --- packages/collapsible/test/lion-collapsible.test.js | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/collapsible/test/lion-collapsible.test.js b/packages/collapsible/test/lion-collapsible.test.js index edcb453fe..6dea66065 100644 --- a/packages/collapsible/test/lion-collapsible.test.js +++ b/packages/collapsible/test/lion-collapsible.test.js @@ -101,15 +101,6 @@ describe('', () => { expect(isCollapsibleOpen).to.equal(false); }); - it('opens a invoker on click even if moved once', async () => { - const collapsible = await fixture(defaultCollapsible); - collapsible.remove(); - const invoker = collapsible.querySelector('[slot=invoker]'); - invoker?.dispatchEvent(new Event('click')); - expect(collapsible.opened).to.equal(true); - }); - }); - describe('Accessibility', () => { it('[collapsed] is a11y AXE accessible', async () => { const collapsible = await fixture(defaultCollapsible); From b9ba4412e1adf17802d2fcbc8b5b7a4417351d1f Mon Sep 17 00:00:00 2001 From: qa46hx Date: Wed, 16 Feb 2022 14:04:28 +0100 Subject: [PATCH 4/4] chore: fix collapsible test --- packages/collapsible/test/lion-collapsible.test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/collapsible/test/lion-collapsible.test.js b/packages/collapsible/test/lion-collapsible.test.js index 6dea66065..28b5b1e0d 100644 --- a/packages/collapsible/test/lion-collapsible.test.js +++ b/packages/collapsible/test/lion-collapsible.test.js @@ -100,6 +100,7 @@ describe('', () => { await collapsible.updateComplete; expect(isCollapsibleOpen).to.equal(false); }); + }); describe('Accessibility', () => { it('[collapsed] is a11y AXE accessible', async () => {