import { BoltOnService } from './BoltOnService'; import { MultiMocks } from '../../helpers/helpers'; import { Mock, IMock, It, Times } from 'typemoq'; import { expect } from 'chai'; describe('BoltOn service', () => { let quoteState: IMock<{ get(): any }>; let $stateParams: ng.ui.IStateParamsService; let userDataState: any; let SERVICE_TYPES: any; let boltOnService: BoltOnService; beforeEach(() => { quoteState = Mock.ofType(); $stateParams = { supplyId: 'Dual' }; userDataState = { serviceType: 'Online' }; SERVICE_TYPES = { ONLINE: "Online", FULL_SERVICE: "FullService" }; quoteState.setup(x => x.get()).returns(() => MultiMocks.getContent('quick-quote-4tariffs.json')); boltOnService = new BoltOnService(quoteState.object, $stateParams, userDataState, SERVICE_TYPES); }); it('should return bolt ons for "Fixed" tariff', () => { let boltOns = boltOnService.getBoltOnsForTariff('Fixed'); expect(boltOns.length).to.equal(1); }); it('should not return bolt ons for "Simpler" tariff', () => { let boltOns = boltOnService.getBoltOnsForTariff('Simpler'); expect(boltOns.length).to.equal(0); }); it('should calculate the correct cost for the bolt on', () => { let greenBoltOn = boltOnService.getBoltOnsForTariff('Fixed')[0]; expect(greenBoltOn.cost).to.equal(3); }); });