alfresco-ng2-components/lib/core/collapsable/accordion-group.component.spec.ts
Eugenio Romano 9e4b2e74e9
[ADF-2159] Update angular-cli to latest version (#2874)
* Update angular cli version 1.6.5

* fix tslint problems and update devdependencies using the angularcli 1.6.4

* test fixing

* [ADF-2159] start fixing userinfo test

* [ADF-2159] fixed userinfo tests

* [ADF-2159] added async to accordion component test

* [ADF-2159] testing probable failed test on CI

* [ADF-2159] check removing fake destroyed view test

* [ADF-2159] check viewer tests

* [ADF-2159] attempt on test fix

* [ADF-2159] test fix

* [ADF-2159] fix test

* [ADF-2159] fix test

* [ADF-2159] rebased

* [ADF-2159] check test

* [ADF-2159] fixing test

* [ADF-2159] Fix#1

* [ADF-2159] Fix#2

* [ADF-2159] Fix#3

* [ADF-2159] Fix #4

* [ADF-2159] Fix #5

* [ADF-2159] Fix #6

* [ADF-2159] fixed viewer test

* [ADF-2159] fixed cast element
2018-02-01 10:08:25 +00:00

118 lines
4.5 KiB
TypeScript

/*!
* @license
* Copyright 2016 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { AccordionGroupComponent } from './accordion-group.component';
import { AccordionComponent } from './accordion.component';
import { MaterialModule } from '../material.module';
describe('AccordionGroupComponent', () => {
let fixture: ComponentFixture<AccordionGroupComponent>;
let component: AccordionGroupComponent;
let element: any;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
MaterialModule
],
declarations: [
AccordionGroupComponent
],
providers: [AccordionComponent]
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(AccordionGroupComponent);
element = fixture.nativeElement;
component = fixture.componentInstance;
});
it('should be closed by default', async(() => {
component.heading = 'Fake Header';
component.headingIcon = 'fake-icon';
component.contentWrapper.nativeElement.innerHTML = '<a>Test</a>';
fixture.whenStable().then(() => {
fixture.detectChanges();
let headerText = element.querySelector('#heading-text');
expect(headerText.innerText).toEqual('Fake Header');
let headerIcon = element.querySelector('#heading-icon .material-icons');
expect(headerIcon.innerText).toEqual('fake-icon');
let headerToggle = element.querySelector('#accordion-button .material-icons');
expect(headerToggle.innerText).toEqual('expand_more');
});
}));
it('should be open when click', async(() => {
component.isSelected = true;
component.heading = 'Fake Header';
component.headingIcon = 'fake-icon';
component.contentWrapper.nativeElement.innerHTML = '<a>Test</a>';
fixture.detectChanges();
element.querySelector('#accordion-button').click();
fixture.whenStable().then(() => {
fixture.detectChanges();
let headerText = element.querySelector('#heading-text');
expect(headerText.innerText).toEqual('Fake Header');
let headerIcon = element.querySelector('#heading-icon .material-icons');
expect(headerIcon.innerText).toEqual('fake-icon');
let headerToggle = element.querySelector('#accordion-button .material-icons');
expect(headerToggle.innerText).toEqual('expand_less');
});
}));
it('should show expand icon by default', async(() => {
component.heading = 'Fake Header';
component.headingIcon = 'fake-icon';
component.contentWrapper.nativeElement.innerHTML = '<a>Test</a>';
fixture.whenStable().then(() => {
fixture.detectChanges();
let headerIcon = element.querySelector('#accordion-button');
expect(headerIcon).toBeDefined();
});
}));
it('should hide expand icon', async(() => {
component.heading = 'Fake Header';
component.headingIcon = 'fake-icon';
component.hasAccordionIcon = false;
component.contentWrapper.nativeElement.innerHTML = '<a>Test</a>';
fixture.whenStable().then(() => {
fixture.detectChanges();
let headerIcon = element.querySelector('#accordion-button');
expect(headerIcon).toBeNull();
});
}));
it('should emit an event when a heading clicked', async(() => {
component.heading = 'Fake Header';
fixture.detectChanges();
let heading: string = component.heading;
component.headingClick.subscribe((headName: string) => {
expect(headName).toBeDefined();
expect(headName).toEqual(heading);
});
let header = element.querySelector('.adf-panel-heading');
header.click();
}));
});