import { QuoteRequestConversions } from './QuoteRequestConversions'; import { UserDataState } from '../state/UserDataState'; import { Mock, It, IMock, Times } from 'typemoq'; import { expect } from 'chai'; const userDataState = { postcode: 'AB1 2CD', paymentMethod: 'Paym', fuel: 'Electricity', serviceType: 'Online', economy7: false, usage: 'Low', energyUsage: 'EveningsAndWeekends', insulation: 'Average', numberOfOccupants: 3, numberOfRooms: 4, electricityPeriod: 'Yearly', previousElectricitySupplier: { id: '23' }, previousElectricityTariff: { id: '48' }, electricityUnit: 'Spend', electricityUsage: 234, gasPeriod: 'Yearly', previousGasSupplier: { id: '23' }, previousGasTariff: { id: '48' }, gasUnit: 'Spend', gasUsage: 234 } as UserDataState; describe('Quote request conversions', () => { let quoteRequestConversions: QuoteRequestConversions; beforeEach(() => { quoteRequestConversions = new QuoteRequestConversions(userDataState, 'OVO'); }); it('should convert to quick quote request params', () => { expect(quoteRequestConversions.convertToQuickQuoteParams()).to.deep.equal({ retailer: 'OVO', postcode: 'AB1 2CD', paymentMethod: 'Paym', fuel: 'Electricity', serviceType: 'Online', economy7: false, usage: 'Low' }); }); it('should convert to estimated quote request params', () => { expect(quoteRequestConversions.convertToEstimatedQuoteParams()).to.deep.equal({ retailer: 'OVO', postcode: 'AB1 2CD', paymentMethod: 'Paym', fuel: 'Electricity', serviceType: 'Online', economy7: false, energyUsage: 'EveningsAndWeekends', insulation: 'Average', numberOfOccupants: 3, numberOfRooms: 4 }); }); it('should convert to usage based quote request params', () => { expect(quoteRequestConversions.convertToUsageBasedQuoteParams()).to.deep.equal({ retailer: 'OVO', postcode: 'AB1 2CD', paymentMethod: 'Paym', fuel: 'Electricity', serviceType: 'Online', economy7: false, electricityPeriod: 'Yearly', electricitySupplierId: '23', electricityTariffId: '48', electricityUnit: 'Spend', electricityUsage: 234 }); }); it('should convert to move in quote request params', () => { expect(quoteRequestConversions.convertToMoveInQuoteParams()).to.deep.equal({ retailer: 'OVO', postcode: 'AB1 2CD', paymentMethod: 'Paym', fuel: 'Electricity', serviceType: 'Online', economy7: false, electricityUsage: 234 }); }); });