import { SuccessEVController } from './SuccessEV'; import { Mock, IMock, It, Times } from 'typemoq'; import { UserDataState } from '../../common/state/UserDataState'; import { QuoteService } from '../../common/services/QuoteService'; import {Quote, QuoteWithMeters} from '../../common/entities/Quote'; import { AnalyticsService } from '../../common/services/AnalyticsService'; import { LayoutState } from "../../common/state/LayoutState"; import {quote, quoteWithMeters} from '../../common/entities/Quote.fixture'; import { expect } from 'chai'; describe('SuccessEV controller', () => { let userDataState: UserDataState, layoutState: LayoutState, $window: IMock, quoteService: IMock, $state: IMock, analyticsService: IMock; beforeEach(() => { userDataState = {} as UserDataState; $state = Mock.ofType(); $window = Mock.ofType(); layoutState = new LayoutState(); quoteService = Mock.ofType(); analyticsService = Mock.ofType(); }); function newController() { userDataState.tariffId = '2YearFixed'; userDataState.bundleName = 'EV'; return new SuccessEVController($state.object, $window.object, layoutState, userDataState, quoteService.object, analyticsService.object); } it('should set tariff and bundle', () => { const ctrl = newController(); quoteService.setup(x => x.getQuote()).returns(() => Promise.resolve(quoteWithMeters)); return ctrl.$onInit().then(() => { expect(ctrl.tariff.name).to.equal('2 Year Fixed'); expect(ctrl.bundle.name).to.equal('EV') } ); }); it('should get boltons from quote', () => { const ctrl = newController(); const bundle = quote.bundles.find(bundle => bundle.name === userDataState.bundleName); const result = ctrl.getBoltonsFromQuote(quote, bundle); expect(result.length).to.equal(2); }); });