Skip to content

Commit 0d02686

Browse files
committed
add tests
1 parent 21b8936 commit 0d02686

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

js/tests/unit/dropdown.spec.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,30 @@ describe('Dropdown', () => {
279279
})
280280
})
281281

282+
it('should toggle a centered dropdown', () => {
283+
return new Promise(resolve => {
284+
fixtureEl.innerHTML = [
285+
'<div class="dropdown-center">',
286+
' <button class="btn dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</button>',
287+
' <div class="dropdown-menu">',
288+
' <a class="dropdown-item" href="#">Secondary link</a>',
289+
' </div>',
290+
'</div>'
291+
].join('')
292+
293+
const btnDropdown = fixtureEl.querySelector('[data-bs-toggle="dropdown"]')
294+
const dropdown = new Dropdown(btnDropdown)
295+
296+
btnDropdown.addEventListener('shown.bs.dropdown', () => {
297+
expect(btnDropdown).toHaveClass('show')
298+
expect(btnDropdown.getAttribute('aria-expanded')).toEqual('true')
299+
resolve()
300+
})
301+
302+
dropdown.toggle()
303+
})
304+
})
305+
282306
it('should toggle a dropup', () => {
283307
return new Promise(resolve => {
284308
fixtureEl.innerHTML = [
@@ -304,6 +328,31 @@ describe('Dropdown', () => {
304328
})
305329
})
306330

331+
it('should toggle a dropup centered', () => {
332+
return new Promise(resolve => {
333+
fixtureEl.innerHTML = [
334+
'<div class="dropup-center">',
335+
' <button class="btn dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</button>',
336+
' <div class="dropdown-menu">',
337+
' <a class="dropdown-item" href="#">Secondary link</a>',
338+
' </div>',
339+
'</div>'
340+
].join('')
341+
342+
const btnDropdown = fixtureEl.querySelector('[data-bs-toggle="dropdown"]')
343+
const dropupEl = fixtureEl.querySelector('.dropup-center')
344+
const dropdown = new Dropdown(btnDropdown)
345+
346+
dropupEl.addEventListener('shown.bs.dropdown', () => {
347+
expect(btnDropdown).toHaveClass('show')
348+
expect(btnDropdown.getAttribute('aria-expanded')).toEqual('true')
349+
resolve()
350+
})
351+
352+
dropdown.toggle()
353+
})
354+
})
355+
307356
it('should toggle a dropup at the right', () => {
308357
return new Promise(resolve => {
309358
fixtureEl.innerHTML = [

0 commit comments

Comments
 (0)