import { Component, Input, ViewChild, OnInit, OnDestroy } from '@angular/core'; import { Router } from '@angular/router'; import * as Constants from '../../shared/constants' import { SharedService } from '../../shared/shared.service'; import { CartService } from '../../services/cart.service'; import { CustomerService } from '../../services/customer.service'; import { CheckoutService } from '../../services/checkout.service'; import { DebugElement } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { Observable } from 'rxjs/Rx'; 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 { MockBackend, MockConnection } from '@angular/http/testing'; import { UserService } from '../../services/user.service'; import { LookupService } from '../../services/lookup.service'; import { CatalogService } from '../../services/catalog.service'; import { cartData } from '../../shared/mock-data'; import { TradeinService } from '../../services/tradein.service'; import { LoggingService } from '../../services/logging.service'; import CartUtils from '../cart.utils'; import { PopupComponent } from './popup.component'; import {HttpClient, HttpHandler} from '@angular/common/http'; describe('Popup component', () => { let obj: PopupComponent; let fixture: ComponentFixture; let debugElement: DebugElement; let el: HTMLElement; beforeEach(async(() => { TestBed.configureTestingModule({ providers: [ MockBackend, SharedService, CartService, CustomerService, UserService, LookupService, CheckoutService, TradeinService, LoggingService, CatalogService, HttpClient, HttpHandler ], imports: [ FormsModule, RouterTestingModule ], declarations: [PopupComponent] }); fixture = TestBed.createComponent(PopupComponent); obj = fixture.componentInstance; obj['cart'] = cartData; TestBed.compileComponents(); })); it('should be created', () => { expect(obj).toBeTruthy(); }); it('All methods are defined', () => { expect(obj.show).toBeDefined(); expect(obj.hide).toBeDefined(); expect(obj.onContainerClicked).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(false); })); });