// 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 { TestBed, async, ComponentFixture } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { SharedService } from '../../../../shared/shared.service'; import { UserService } from '../../../../services/user.service'; import { CartServiceStub } from '../../../../services/cart.service.stub'; 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 { pricingResponse, userMockData } from '../../../../shared/mock-data'; import { cartData, cartDataResponse } from '../../../../shared/spec.constants'; import { By } from '@angular/platform-browser'; import { PayExtraComponent } from './pay-extra.component'; import { CheckoutService } from '../../../../services/checkout.service'; import { HttpClient, HttpHandler } from '@angular/common/http'; // import {Conne} describe('Payextra Component', () => { let payExtraObject: PayExtraComponent; let fixture: ComponentFixture; let dataStub: CartServiceStub; let debugElement: DebugElement; let el: HTMLElement; beforeEach(async(() => { TestBed.configureTestingModule({ providers: [ SharedService, UserService, CartService, CustomerService, LookupService, CatalogService, CheckoutService, TradeinService, LoggingService, HttpClient, HttpHandler ], imports: [ FormsModule, RouterTestingModule ], declarations: [PayExtraComponent] }); fixture = TestBed.createComponent(PayExtraComponent); payExtraObject = fixture.componentInstance; dataStub = fixture.debugElement.injector.get(CartService); TestBed.compileComponents(); TestBed.get(SharedService); TestBed.get(CartService); TestBed.get(UserService); })); it('should be created', () => { expect(payExtraObject).toBeTruthy(); }); it('All methods are deined', async(() => { expect(payExtraObject.payExtraAmount).toBeDefined(); })); it('should resolve payextra price test data', async(() => { const dataStub = fixture.debugElement.injector.get(CartService); const spy = spyOn(dataStub, 'payExtraAmount').and.returnValue( Observable.of(cartDataResponse) ); payExtraObject.payExtraAmount(12); fixture.detectChanges(); expect(payExtraObject.karmaTestResult).toEqual(cartDataResponse); })); it('should hide the compare modal', () => { payExtraObject.visibleAnimate = true; payExtraObject.hide(); expect(payExtraObject.visibleAnimate).toBeFalsy(); }); it('should show the compare modal', () => { payExtraObject.visibleAnimate = false; payExtraObject.show(); expect(payExtraObject.visible).toBeTruthy(); }); it('Should open the modal if it is opened and viceverse', async(() => { debugElement = fixture.debugElement.query(By.css('.fade')); el = debugElement.nativeElement; payExtraObject.show(); el.click(); expect(payExtraObject.visible).toEqual(true); })); });