From 49cfa8e3138854f73e46318ae523d9f9485ab68f Mon Sep 17 00:00:00 2001 From: GeoSot Date: Sun, 30 Jan 2022 02:04:04 +0200 Subject: [PATCH] add test --- js/tests/unit/collapse.spec.js | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/js/tests/unit/collapse.spec.js b/js/tests/unit/collapse.spec.js index fbfb2d94ef..1757bfba39 100644 --- a/js/tests/unit/collapse.spec.js +++ b/js/tests/unit/collapse.spec.js @@ -333,6 +333,51 @@ describe('Collapse', () => { }) }) + it('should be able to handle quick toggling between siblings', () => + new Promise(resolve => { + fixtureEl.innerHTML = [ + '
', + '
', + ' ', + '
', + '
', + '
', + '
', + ' ', + '
', + '
', + '
', + '
' + ].join('') + + const el = selector => fixtureEl.querySelector(selector) + + const btn1 = el('[data-bs-target="#collapseOne"]') + const btn2 = el('[data-bs-target="#collapseTwo"]') + + const collapseEl1 = el('#collapseOne') + const collapseEl2 = el('#collapseTwo') + + collapseEl2.addEventListener('shown.bs.collapse', () => { + throw new Error('should not fire shown event') + }) + + collapseEl1.addEventListener('shown.bs.collapse', () => { + setTimeout(() => { + expect(collapseEl2).not.toHaveClass('show') + resolve() + }, 1000) + }) + + btn1.click() + btn2.click() + }) + ) + it('should not change tab tabpanels descendants on accordion', () => { return new Promise(resolve => { fixtureEl.innerHTML = [ -- 2.47.2