import { Component, OnInit, OnDestroy, Pipe } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; import { DebugElement } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { Observable } from 'rxjs/Rx'; import { TestBed, async, ComponentFixture } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { ShippingComponent } from './shipping.component'; import { SharedService } from '../../../shared/shared.service'; import { UserService } from '../../../services/user.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 { CheckoutService } from '../../../services/checkout.service'; import { cartData, ShippingData } from '../../../shared/mock-data'; import { HttpClient, HttpHandler } from '@angular/common/http'; describe('shipping Component', () => { let shippingObject: ShippingComponent; let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ providers: [ SharedService, UserService, CartService, CustomerService, LookupService, CatalogService, TradeinService, LoggingService, CheckoutService, HttpClient, HttpHandler ], imports: [ FormsModule, RouterTestingModule ], declarations: [ShippingComponent] }); fixture = TestBed.createComponent(ShippingComponent); TestBed.get(SharedService); TestBed.get(UserService); TestBed.get(CartService); shippingObject = fixture.componentInstance; shippingObject.cart = cartData; shippingObject.storeId = 10553; })); it('should be created', () => { expect(shippingObject).toBeTruthy(); }); it('All methods are defined', async(() => { expect(shippingObject.validateAddress).toBeDefined(); expect(shippingObject.switchShippingAddress).toBeDefined(); expect(shippingObject.getShippingModes).toBeDefined(); })); it('should resolve getShippingModes test data', async(() => { const checkoutdata = fixture.debugElement.injector.get(CheckoutService); const spy = spyOn(checkoutdata, 'getUsableShippingInfo').and.returnValue( Observable.of(ShippingData) ); shippingObject.getShippingModes('98210'); fixture.detectChanges(); expect(shippingObject.karmaTestResult).toEqual(ShippingData); })); it('shipping address is set correctly', async(() => { const adress = { address1: '22213 30TH DR SE FL 1', zipCode: '98021', city: 'bothell', } shippingObject.setShippingAddress(adress); expect(shippingObject.shippingModel.address1).toEqual(adress.address1); expect(shippingObject.shippingModel.zipCode).toEqual(adress.zipCode); expect(shippingObject.shippingModel.city).toEqual(adress.city); })); });