mirror of
https://github.com/tenrok/bootstrap.git
synced 2026-05-15 11:59:39 +03:00
add test
This commit is contained in:
@@ -333,6 +333,51 @@ describe('Collapse', () => {
|
||||
})
|
||||
})
|
||||
|
||||
it('should be able to handle quick toggling between siblings', () =>
|
||||
new Promise(resolve => {
|
||||
fixtureEl.innerHTML = [
|
||||
'<div class="accordion" id="accordionExample">',
|
||||
' <div class="accordion-item">',
|
||||
' <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">',
|
||||
' Accordion Item #1',
|
||||
' </button>',
|
||||
' <div id="collapseOne" class="accordion-collapse collapse" aria-labelledby="headingOne" data-bs-parent="#accordionExample">',
|
||||
' </div>',
|
||||
' </div>',
|
||||
' <div class="accordion-item">',
|
||||
' <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">',
|
||||
' Accordion Item #2',
|
||||
' </button>',
|
||||
' <div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo" data-bs-parent="#accordionExample">',
|
||||
' </div>',
|
||||
' </div>',
|
||||
'</div>'
|
||||
].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 = [
|
||||
|
||||
Reference in New Issue
Block a user