diff --git a/js/tests/unit/collapse.spec.js b/js/tests/unit/collapse.spec.js
index e2d2864905ed..1e204366aadf 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 = [