import { $, $$, browser, ExpectedConditions } from 'protractor'; import { leftPanelTests } from './leftPanelTests.po'; import { DataProvider } from '../data-provider/data-provider.po'; let using = require('jasmine-data-provider'); const buttonToggleLastPanel = $('accordion-demo>p button:nth-child(1)'); const buttonEnableDisablePanel = $('accordion-demo>p button:nth-child(2)'); const buttonAddItem = $('.panel-body .btn'); const checkboxOnlyOne = $('.checkbox .ng-valid'); const getItemsCount = $$('accordion-group:nth-child(4) .panel-body > div'); const buttonArrow = $('.pull-right'); const EC = ExpectedConditions; const getTabHeader = (tabNumber:number) => { return $('accordion-group:nth-child(' + tabNumber + ') .panel-heading'); }; const getTabContent = (tabNumber:number) => { return $('accordion-group:nth-child(' + tabNumber + ') .panel-body'); }; describe('Check the Accordion page in bootstrap 3', () => { beforeAll(() => { browser.get('#/accordion'); leftPanelTests.checkLeftPanelMini(); leftPanelTests.checkLeftPanelMaxi(); }); it('Close/open first tab by click', () => { getTabHeader(1).click(); expect(getTabContent(1).isDisplayed()).toBe(false); getTabHeader(1).click(); expect(getTabContent(1).isDisplayed()).toBe(true); }); it('Open/close last tab with button Toggle Last Panel', () => { buttonToggleLastPanel.click(); expect(getTabContent(5).isDisplayed()).toBe(true); expect(buttonArrow.getAttribute('class')).toContain('glyphicon-chevron-down'); buttonToggleLastPanel.click(); expect(getTabContent(5).isDisplayed()).toBe(false); expect(buttonArrow.getAttribute('class')).toContain('glyphicon-chevron-right'); }); it('Button Enable/Disable first panel is ON', () => { buttonEnableDisablePanel.click(); getTabHeader(1).click(); expect(getTabContent(1).isDisplayed()).toBe(false); }); it('Button Enable/Disable first panel is OFF', () => { buttonEnableDisablePanel.click(); getTabHeader(1).click(); expect(getTabHeader(1).isDisplayed()).toBe(true); }); it('Add items in 4th tab', () => { getTabHeader(4).click(); expect(getItemsCount.count()).toBe(3); buttonAddItem.click(); buttonAddItem.click(); expect(getItemsCount.count()).toBe(5); getTabHeader(4).click(); }); it('Open all tabs together', () => { checkboxOnlyOne.click(); getTabHeader(1).click(); browser.wait(EC.visibilityOf(getTabContent(1)), 500); getTabHeader(2).click(); browser.wait(EC.visibilityOf(getTabContent(2)), 500); getTabHeader(3).click(); browser.wait(EC.visibilityOf(getTabContent(3)), 500); getTabHeader(4).click(); browser.wait(EC.visibilityOf(getTabContent(4)), 500); getTabHeader(5).click(); }); using (DataProvider.accordionTableContent, (data:any, description:string) => { it ('Check table texts: ' + description, () => { expect(data.element().getText()).toBe(data.actualResult); }); }); });