From a5cbb5e71a43fe11107a8e13fb68c6bfd99cb0e7 Mon Sep 17 00:00:00 2001 From: Johann-S Date: Thu, 22 Aug 2019 22:02:06 +0200 Subject: dropdown show method should do the same as toggle --- js/src/dropdown/dropdown.spec.js | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'js/src/dropdown/dropdown.spec.js') diff --git a/js/src/dropdown/dropdown.spec.js b/js/src/dropdown/dropdown.spec.js index b025ed423..46374453c 100644 --- a/js/src/dropdown/dropdown.spec.js +++ b/js/src/dropdown/dropdown.spec.js @@ -174,7 +174,6 @@ describe('Dropdown', () => { expect(firstDropdownEl.classList.contains('show')).toEqual(true) spyOn(dropdown1._popper, 'destroy') dropdown2.toggle() - done() }) secondDropdownEl.addEventListener('shown.bs.dropdown', () => { @@ -679,6 +678,33 @@ describe('Dropdown', () => { dropdown.hide() }) + it('should hide a dropdown and destroy popper', done => { + fixtureEl.innerHTML = [ + '' + ].join('') + + const btnDropdown = fixtureEl.querySelector('[data-toggle="dropdown"]') + const dropdownEl = fixtureEl.querySelector('.dropdown') + const dropdown = new Dropdown(btnDropdown) + + dropdownEl.addEventListener('shown.bs.dropdown', () => { + spyOn(dropdown._popper, 'destroy') + dropdown.hide() + }) + + dropdownEl.addEventListener('hidden.bs.dropdown', () => { + expect(dropdown._popper.destroy).toHaveBeenCalled() + done() + }) + + dropdown.show() + }) + it('should not hide a dropdown if the element is disabled', done => { fixtureEl.innerHTML = [ '