import {async, ComponentFixture, TestBed} from '@angular/core/testing'; import { CardComponent } from './card.component'; import { CardService } from './card.service'; describe('CardComponent', () => { let component: CardComponent; let fixture: ComponentFixture; let card: CardService; beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [CardComponent], providers: [CardService], }).compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(CardComponent); component = fixture.componentInstance; card = TestBed.inject(CardService); component.cardTitle = 'cardTitle'; component.styleTitle = 'font-weight-bold font-size-16'; component.showBorder = true; component.link = { show: false, text: null }; component.showToggle = { status: false, display: '' }; component.showCardExpansion = false; component.showSeparator = false; component.toogleState = false; component.expansionState = false; component.linkState = false; component.classes = null; fixture.detectChanges(); }); it('should implement ngOnInit', () => { component.applyClasses = jest.fn(); component.ngOnInit(); expect(component.applyClasses).toHaveBeenCalled(); }); it('should return valid classes passed', () => { const classes = [component.styleTitle, component.showBorder ? 'title-border' : ''].join(' '); component.applyClasses(component.styleTitle, component.showBorder); expect(classes).toBe(component.classes); }); it('should toggle', () => { card.triggerEvent = jest.fn(); component.onToggle(); expect(component.toogleState).toBe(true); expect(card.triggerEvent).toHaveBeenCalled(); }); it('should expand', () => { card.triggerEvent = jest.fn(); component.onExpansion(); expect(component.expansionState).toBe(true); expect(card.triggerEvent).toHaveBeenCalled(); }); it('should respond to link clicked', () => { card.triggerEvent = jest.fn(); component.onLink(); expect(component.linkState).toBe(true); expect(card.triggerEvent).toHaveBeenCalled(); }); it('should trigger an event', done => { card.exposeEvent().subscribe(data => { expect(data).toBe(true); done(); }); card.triggerEvent(true); }); it('should create', () => { expect(component).toBeTruthy(); }); });