73 lines
2.4 KiB
TypeScript
73 lines
2.4 KiB
TypeScript
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
|
import { AlertService, AlertModel, AlertType } from '../../services/alert.service';
|
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
|
|
import { AlertComponent } from './alert.component';
|
|
|
|
describe('AlertComponent', () => {
|
|
let component: AlertComponent;
|
|
let fixture: ComponentFixture<AlertComponent>;
|
|
let debugElement,
|
|
alertService;
|
|
|
|
beforeEach(async(() => {
|
|
TestBed.configureTestingModule({
|
|
imports: [BrowserAnimationsModule],
|
|
declarations: [AlertComponent],
|
|
providers: [AlertService]
|
|
})
|
|
.compileComponents();
|
|
}));
|
|
|
|
beforeEach(() => {
|
|
alertService = TestBed.get(AlertService);
|
|
fixture = TestBed.createComponent(AlertComponent);
|
|
component = fixture.componentInstance;
|
|
debugElement = fixture.debugElement.nativeElement;
|
|
fixture.detectChanges();
|
|
});
|
|
|
|
afterEach(() => {
|
|
document.body.removeChild(debugElement);
|
|
})
|
|
|
|
it('should create', () => {
|
|
expect(component).toBeTruthy();
|
|
});
|
|
|
|
it('should show alert message', () => {
|
|
alertService.triggerAlert(new AlertModel(AlertType.SUCCESS, 'some custom text', ));
|
|
fixture.detectChanges();
|
|
expect(debugElement.querySelector('.alert.alert-success')).toBeDefined();
|
|
expect(debugElement.querySelector('.alert.alert-success').innerText).toBe('some custom text');
|
|
});
|
|
|
|
it('should have differents alert types', () => {
|
|
alertService.triggerAlert(new AlertModel(AlertType.DANGER, 'some custom text', ));
|
|
fixture.detectChanges();
|
|
expect(debugElement.querySelector('.alert.alert-danger')).toBeDefined();
|
|
|
|
alertService.triggerAlert(new AlertModel(AlertType.WARNING, 'some custom text', ));
|
|
fixture.detectChanges();
|
|
expect(debugElement.querySelector('.alert.alert-warning')).toBeDefined();
|
|
});
|
|
|
|
it('should define a closing timeout if alert has autoclosing property', (done) => {
|
|
alertService.triggerAlert(new AlertModel(AlertType.SUCCESS, 'some custom text', true, 5));
|
|
fixture.detectChanges();
|
|
expect(component.alert).toBeDefined();
|
|
setTimeout(() => {
|
|
fixture.detectChanges();
|
|
expect(component.alert).toBeUndefined();
|
|
done();
|
|
}, 6)
|
|
});
|
|
|
|
it('should have defined a closing button if alert has no autoclosing property', () => {
|
|
alertService.triggerAlert(new AlertModel(AlertType.DANGER, 'some custom text', false));
|
|
fixture.detectChanges();
|
|
expect(debugElement.querySelector('.alert.alert-danger > button')).toBeDefined();
|
|
});
|
|
|
|
});
|