import { SmartMeterBookingClient } from './SmartMeterBookingClient'; // import { appConfig } from '../entities/AppConfig.fixture'; import { config } from '../entities/ApplicationConfig.fixture'; import { AreaEligibilityResponse, MeterEligibilityResponse, AvailableAppointmentsResponse } from '../entities/Eligibility'; import { areaEligibilityResponse, meterEligibilityResponse, availableAppointmentsResponse } from '../entities/Eligibility.fixture'; import { Mock, It, IMock, Times } from 'typemoq'; import { expect } from 'chai'; describe('Smart meter booking client', () => { const $http: IMock = Mock.ofType(); const smartMeterBookingClient = new SmartMeterBookingClient(config, $http.object); it('should get the area eligibility', () => { $http.setup(x => x.get('apiUrl/smart-meter-booking/eligibility/area', It.isAny())).returns(() => Promise.resolve({ data: areaEligibilityResponse })); return expect(smartMeterBookingClient.getAreaEligibility("AB1 2CD")).to.eventually.deep.equal({ data: areaEligibilityResponse }); }); it('should get the meter eligibility', () => { $http.setup(x => x.get('apiUrl/smart-meter-booking/eligibility/meter/details', It.isAny())).returns(() => Promise.resolve({ data: meterEligibilityResponse })); return expect(smartMeterBookingClient.getMeterEligibility({})).to.eventually.deep.equal({ data: meterEligibilityResponse }); }); it('should get the available appointments', () => { $http.setup(x => x.get('apiUrl/smart-meter-booking/available-appointments', It.isAny())).returns(() => Promise.resolve({ data: availableAppointmentsResponse })); return expect(smartMeterBookingClient.getAvailableAppointments({ postcode: '', mpan: '', fuel: 'Electricity' })).to.eventually.deep.equal({ data: availableAppointmentsResponse }); }); });