import { Component, OnInit, OnDestroy } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; import { SharedService } from '../../../shared/shared.service'; import { CartService } from '../../../services/cart.service'; import { CustomerService } from '../../../services/customer.service'; import { DebugElement } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { Observable } from 'rxjs/Rx'; 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 { DummyCheckComponent } from './dummy-check.component'; import { creditCheckResponse, cartData, customerSearchResponse, conflictsResponse, userMockData } from '../../../shared/mock-data'; import { PopupComponent } from '../../../shared/popup/popup.component'; import { UserService } from '../../../services/user.service'; import { LookupService } from '../../../services/lookup.service'; import { CatalogService } from '../../../services/catalog.service'; import { Customer } from '../../../shared/modal/customer'; import { Cart } from '../../../shared/modal/cart'; import { CartServiceStub } from '../../../services/cart.service.stub'; import { CustomerSearchStub } from '../../../services/customer.service.stub'; import * as Constants from '../../../shared/constants'; import { TradeinService } from '../../../services/tradein.service'; import { LoggingService } from '../../../services/logging.service'; import { CheckoutService } from '../../../services/checkout.service'; import { HttpClient, HttpHandler } from '@angular/common/http'; describe('Dummy-check component', () => { let dummyCheckObject: DummyCheckComponent; let fixture: ComponentFixture; let dataStub: CustomerSearchStub; let cartDataStub: CartServiceStub; beforeEach(async(() => { TestBed.configureTestingModule({ providers: [ MockBackend, SharedService, CatalogService, LookupService, UserService, CartService, CustomerService, CheckoutService, TradeinService, LoggingService, HttpClient, HttpHandler ], imports: [ FormsModule, RouterTestingModule ], declarations: [DummyCheckComponent, PopupComponent] }); fixture = TestBed.createComponent(DummyCheckComponent); dummyCheckObject = fixture.componentInstance; dummyCheckObject.cartService.cart = cartData; dummyCheckObject.customerModel = { 'firstName': 'dsa', 'lastName': 'dsa', 'phone1': '5415466544', 'validDealerCode': true }; dummyCheckObject.creditType = 'CC'; dummyCheckObject.dummyCheckModel = { idNumber: 1234, employeeId: '1234', idExpiration: '2018-06', idIssuedState: 'california', idType: 'DL', ssn: '1234', pin: '1234', dateOfBirth: '01/01/2017', confirmPin: '1234' } dummyCheckObject['cart'] = dummyCheckObject.cartService.cart; dummyCheckObject.storeId= 10553; dummyCheckObject.userService.user = userMockData; dummyCheckObject.user = userMockData; dataStub = fixture.debugElement.injector.get(CustomerService); cartDataStub = fixture.debugElement.injector.get(CartService); TestBed.compileComponents(); })); // tests here it('should be created', () => { expect(dummyCheckObject).toBeTruthy(); }); it('All methods are defined', async(() => { expect(dummyCheckObject.checkEligibility).toBeDefined(); expect(dummyCheckObject.processDummyCheck).toBeDefined(); expect(dummyCheckObject.resolveConflicts).toBeDefined(); expect(dummyCheckObject.removeConflicts).toBeDefined(); })); it('should resolve remove conflicts test data', fakeAsync(() => { const cartStub = fixture.debugElement.injector.get(CartService); const spy = spyOn(cartStub, 'resolveConflicts').and.returnValue( Observable.of(conflictsResponse) ); dummyCheckObject.removeConflicts(); expect(dummyCheckObject.karmaTestResult).toEqual(conflictsResponse); })); it('should resolve getCreditOptionDetails test data', fakeAsync(() => { const customerStub = fixture.debugElement.injector.get(CustomerService); const spy = spyOn(customerStub, 'getCreditOptionDetails').and.returnValue( Observable.of(customerSearchResponse) ); dummyCheckObject.initCreditDetails(); expect(dummyCheckObject.karmaTestResult).toEqual(customerSearchResponse); })); });