ipsos-components
Version:
Material Design components for Angular
45 lines (29 loc) • 1.37 kB
text/typescript
import {browser, by, element} from 'protractor';
import {screenshot} from '../screenshot';
describe('expansion', () => {
beforeEach(() => browser.get('/expansion'));
it('should show an accordion', async () => {
expect(element(by.css('.mat-accordion'))).toBeDefined();
screenshot();
});
it('should show two panels', async () => {
expect(await element.all(by.css('.mat-expansion-panel')).count()).toBe(2);
screenshot();
});
it('should hide contents of the expansion panel on click', async () => {
const panelHeader = element.all(by.css('.mat-expansion-panel-header')).get(0);
const panelContent = element.all(by.css('.mat-expansion-panel-content')).get(0);
expect(await panelContent.isDisplayed()).toBe(false);
panelHeader.click();
expect(await panelContent.isDisplayed()).toBe(true);
});
it('should emit events for expanding and collapsing', async () => {
const panelHeader = element.all(by.css('.mat-expansion-panel-header')).get(1);
const panelDescription = element
.all(by.css('.mat-expansion-panel-header mat-panel-description')).get(1);
panelHeader.click();
expect(panelDescription.getText()).toContain('Currently I am open');
panelHeader.click();
expect(panelDescription.getText()).toContain('Currently I am closed');
});
});