import expandCollapseAll from '../../app/javascript/utils/expandCollapseAll';
describe('expandCollapseAll test suite', () => {
beforeAll(() => fixture.setBase('spec/javascripts/fixtures'));
beforeEach(() => {
$('body').html(fixture.load('accordion.html'));
expandCollapseAll({ selector: '#accordion' });
});
afterEach(() => {
fixture.cleanup();
});
it('should be able to expand all sections when all are either expanded or collapsed', () => {
// Collapse all of the sections
// - click on 'collapse all' should have no effect
// - click on 'expand all' should expand all sections
$('#accordion div.panel-collapse').collapse('hide');
expect($('.in').length === 0);
$('a[data-toggle-direction="hide"]').click();
expect($('.in').length === 0);
$('a[data-toggle-direction="show"]').click();
expect($('.in').length === 3);
// Expand all of the sections
// - click on 'expand all' should have no effect
// - click on 'collapse all' should collapse all sections
$('#accordion div.panel-collapse').collapse('show');
expect($('.in').length === 3);
$('a[data-toggle-direction="show"]').click();
expect($('.in').length === 3);
$('a[data-toggle-direction="hide"]').click();
expect($('.in').length === 0);
});
it('should be able to expand all sections when some are open and some collapsed', () => {
// Expand 2 of the 3 sections - click 'collapse all' - verify that all are collapsed
$('#collapseA, #collapseC').collapse('show');
$('a[data-toggle-direction="hide"]').click();
expect($('.in').length === 0);
// Expand 2 of the 3 sections - click 'expand all' - verify that all are expanded
$('#collapseA, #collapseC').collapse('show');
$('a[data-toggle-direction="show"]').click();
expect($('.in').length === 3);
});
});