import { Component, OnInit, OnDestroy } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; import { Observable } from 'rxjs/Rx'; import { DebugElement } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; import { inject, tick, TestBed, getTestBed, async, fakeAsync, ComponentFixture } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { SharedService } from '../shared.service'; import { UserService } from '../../services/user.service'; import { CheckoutService } from '../../services/checkout.service'; import { CartService } from '../../services/cart.service'; import { CustomerService } from '../../services/customer.service'; import { LookupService } from '../../services/lookup.service'; import { CatalogService } from '../../services/catalog.service'; import { TradeinService } from '../../services/tradein.service'; import { LoggingService } from '../../services/logging.service'; import { FavoritesComponent } from './favorites.component'; import { userMockData } from '../mock-data'; import {HttpClient, HttpHandler} from '@angular/common/http'; // import {Conne} describe('Favorites Component', () => { let obj: FavoritesComponent; let fixture: ComponentFixture; let debugElement: DebugElement; let el: HTMLElement; beforeEach(async(() => { TestBed.configureTestingModule({ providers: [ SharedService, UserService, CartService, CustomerService, LookupService, CatalogService, TradeinService, LoggingService, CheckoutService, HttpClient, HttpHandler ], imports: [ FormsModule, RouterTestingModule ], declarations: [FavoritesComponent] }); fixture = TestBed.createComponent(FavoritesComponent); obj = fixture.componentInstance; TestBed.compileComponents(); obj.userService.user = userMockData; obj.user = userMockData; })); // tests here it('should be created', () => { expect(obj).toBeTruthy(); expect(obj.isNotEqual).toBeDefined(); expect(obj.resetDefaults).toBeDefined(); }); it('should hide the compare modal', () => { obj.visibleAnimate = true; obj.hide(); expect(obj.visibleAnimate).toBeFalsy(); }); it('should show the compare modal', () => { obj.visibleAnimate = false; obj.show(); expect(obj.visible).toBeTruthy(); }); it('Should open the modal if it is opened and viceverse', async(() => { debugElement = fixture.debugElement.query(By.css('.fade')); el = debugElement.nativeElement; obj.show(); el.click(); expect(obj.visible).toEqual(true); })); it('Hide functionality is working fine', async(() => { spyOn(obj, 'ngOnDestroy1'); obj.hide(); expect(obj.ngOnDestroy1).toHaveBeenCalled(); expect(obj.visibleAnimate).toBeFalsy(); })); it('Show functionality is working fine', async(() => { spyOn(obj, 'ngOnInit1'); obj.show(); expect(obj.ngOnInit1).toHaveBeenCalled(); expect(obj.visible).toBeTruthy(); })); it('isNotEqual functionality is working fine', async(() => { expect(obj.isNotEqual('1,2,3', '4')).toEqual(true); })); it('Hide popup is working fine', async(() => { spyOn(obj, 'ngOnDestroy1'); obj.hide(); expect(obj.ngOnDestroy1).toHaveBeenCalled(); })); it('should resolve reset defaults test data', fakeAsync(() => { const userStub = fixture.debugElement.injector.get(UserService); const spy = spyOn(userStub, 'updateProfile').and.returnValue( Observable.of(userMockData) ); obj.resetDefaults(); tick(500); expect(obj.user).toEqual(userMockData); })); it('should resolve update Profile test data', fakeAsync(() => { const userStub = fixture.debugElement.injector.get(UserService); const spy = spyOn(userStub, 'updateProfile').and.returnValue( Observable.of(userMockData) ); obj.updateProfile(); tick(500); expect(obj.user).toEqual(userMockData); })); });