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 { NumberPortingComponent } from './number-porting.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 } from '../../../../shared/mock-data'; import { HttpClient, HttpHandler } from '@angular/common/http'; describe('Number Porting Component', () => { let numberPortingObject: NumberPortingComponent; let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ providers: [ SharedService, UserService, CartService, CustomerService, LookupService, CatalogService, TradeinService, LoggingService, CheckoutService, HttpClient, HttpHandler ], imports: [ FormsModule, RouterTestingModule ], declarations: [NumberPortingComponent] }); fixture = TestBed.createComponent(NumberPortingComponent); TestBed.get(SharedService); TestBed.get(UserService); TestBed.get(CartService); numberPortingObject = fixture.componentInstance; numberPortingObject.package = cartData.packages[0]; })); it('should be created', () => { expect(numberPortingObject).toBeTruthy(); }); it('All methods are defined', async(() => { expect(numberPortingObject.switchPhoneNumber).toBeDefined(); expect(numberPortingObject.validatePortingNumber).toBeDefined(); expect(numberPortingObject.updatePortingNumber).toBeDefined(); })); it('switch PhoneNumber are updated correctly', async(() => { spyOn(numberPortingObject, 'updatePortingNumber'); numberPortingObject.switchPhoneNumber(false); expect(numberPortingObject.portPhoneNumber).toBeFalsy(); })); it('updatePortingNumber are working correctly', async(() => { const inputData = { numberPortingId: 123456, phoneNumber: 123456, accountNumber: 123456, accountPin: 123456, } numberPortingObject.package = cartData.packages[0]; numberPortingObject.checkoutService.customerInfo = { firstName: 'test', packages: cartData.packages[0] } numberPortingObject.updatePortingNumber(inputData); expect(numberPortingObject.checkoutService.customerInfo.packages.numberPorting).toEqual(inputData); })); it('validate dealer code is working fine', async(() => { const elementData = { value: 'S0000001', valid: true } numberPortingObject.validatePortingNumber(elementData); expect(numberPortingObject.portingModel.isValidPorting).toEqual(false); })); });