diff --git a/src/store/index.js b/src/store/index.js index 4a911552..3d33c91c 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1375,90 +1375,83 @@ export const useMainStore = defineStore({ async loadSession(duplicate) { const { order, issConfig } = this; - try { - const response = await globalMethods.callHttpClient({ - method: endpoints.LoadSession.method, - endpoint: endpoints.LoadSession.url, - payload: { - referralNumber: duplicate.referralNumber, - referralDate: duplicate.responseDate, - parentAccountNumber: issConfig.parentAccountNumber, - referralCorrelationId: duplicate.correlationId + const response = await globalMethods.callHttpClient({ + method: endpoints.LoadSession.method, + endpoint: endpoints.LoadSession.url, + payload: { + referralNumber: duplicate.referralNumber, + referralDate: duplicate.responseDate, + parentAccountNumber: issConfig.parentAccountNumber, + referralCorrelationId: duplicate.correlationId + } + }); + const { data } = response; + if (!data) { + return; + } + + if (this.isPolicyLookupSuccessful) { + order.customer.address.streetAddress = data.customer?.address?.streetAddress; + order.customer.address.streetAddress2 = data.customer?.address?.streetAddress2; + order.customer.address.city = data.customer?.address?.city; + order.customer.address.state = data.customer?.address?.state; + order.customer.address.zipCode = data.customer?.address?.zipCode; + + order.contactInfo.firstName = data?.customer?.firstName; + order.contactInfo.lastName = data?.customer?.lastName; + order.contactInfo.emailAddress = data?.customer?.emailAddress; + order.contactInfo.homePhone = data?.customer?.homePhone; + order.contactInfo.servicephone = data?.customer?.servicePhone; + order.contactInfo.alternativePhone = data?.customer?.alternativePhone; + order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; + + if (data.insuranceCoverage) { + order.insuranceCoverage.coverageType = data?.insuranceCoverage?.coverageType; + order.insuranceCoverage.coverageStatus = data?.insuranceCoverage?.coverageStatus; + order.insuranceCoverage.claimNumber = data?.insuranceCoverage?.claimNumber; + } else if (data?.payment?.insuranceCoverage) { + if (data?.payment?.insuranceCoverage?.isVerified) { + order.insuranceCoverage.coverageStatus = coverageStatuses.VERIFIED; } - }); - const { data } = response; - if (!data) { - // TODO how should we handle this case? - return response; + order.insuranceCoverage.claimNumber = data?.payment?.insuranceCoverage?.claimNumber; } - if (this.isPolicyLookupSuccessful) { - order.customer.address.streetAddress = data.customer?.address?.streetAddress; - order.customer.address.streetAddress2 = data.customer?.address?.streetAddress2; - order.customer.address.city = data.customer?.address?.city; - order.customer.address.state = data.customer?.address?.state; - order.customer.address.zipCode = data.customer?.address?.zipCode; - - order.contactInfo.firstName = data?.customer?.firstName; - order.contactInfo.lastName = data?.customer?.lastName; - order.contactInfo.emailAddress = data?.customer?.emailAddress; - order.contactInfo.homePhone = data?.customer?.homePhone; - order.contactInfo.servicephone = data?.customer?.servicePhone; - order.contactInfo.alternativePhone = data?.customer?.alternativePhone; - order.contactInfo.requestTextUpdates = data?.customer?.isSmsOptIn; - - if (data.insuranceCoverage) { - order.insuranceCoverage.coverageType = data?.insuranceCoverage?.coverageType; - order.insuranceCoverage.coverageStatus = data?.insuranceCoverage?.coverageStatus; - order.insuranceCoverage.claimNumber = data?.insuranceCoverage?.claimNumber; - } else if (data?.payment?.insuranceCoverage) { - if (data?.payment?.insuranceCoverage?.isVerified) { - order.insuranceCoverage.coverageStatus = coverageStatuses.VERIFIED; - } - order.insuranceCoverage.claimNumber = data?.payment?.insuranceCoverage?.claimNumber; - } - - if (order.policy.vehicles.length !== 0 && data.vehicle?.carId) { - order.vehicle.registration.licensePlate = data?.vehicle?.licensePlateNumber; - if (data.vehicle.vin) { - const vehicle = order.policy.vehicles.find((v) => v.vin === data.vehicle.vin); - if (vehicle) { - const vehicleResponse = await this.lookupVehicleByVin(vehicle.vin); - if (vehicleResponse) { - this.updateVehicle({ - ...vehicleResponse.data, - policyVehicleId: vehicle.id, - vin: vehicle.vin - }); - this.updateVehicleCoverage({ - noCoverage: noCoverageForSelectedVehicle(vehicle), - deductible: deductibleForSelectedVehicle(vehicle), - repairWaived: repairWaivedForSelectedVehicle(vehicle), - endorsements: endorsementsForSelectedVehicle(vehicle) - }); - } + if (order.policy.vehicles.length !== 0 && data.vehicle?.carId) { + order.vehicle.registration.licensePlate = data?.vehicle?.licensePlateNumber; + if (data.vehicle.vin) { + const vehicle = order.policy.vehicles.find((v) => v.vin === data.vehicle.vin); + if (vehicle) { + const vehicleResponse = await this.lookupVehicleByVin(vehicle.vin); + if (vehicleResponse) { + this.updateVehicle({ + ...vehicleResponse.data, + policyVehicleId: vehicle.id, + vin: vehicle.vin + }); + this.updateVehicleCoverage({ + noCoverage: noCoverageForSelectedVehicle(vehicle), + deductible: deductibleForSelectedVehicle(vehicle), + repairWaived: repairWaivedForSelectedVehicle(vehicle), + endorsements: endorsementsForSelectedVehicle(vehicle) + }); } } - - order.vehicle.year = data.vehicle.year; - order.vehicle.make = data.vehicle.make; - order.vehicle.model = data.vehicle.model; - order.vehicle.style = data.vehicle.style; } - } - order.referralNumber = data?.referralNumber; - order.referralDate = data?.referralDate; - order.referralCorrelationId = data?.referralCorrelationId; - order.referralSequenceNumber = data?.referralSequenceNumber; - order.eon = data?.eon; - order.loadedFromDupeCheck = true; - order.loadedSessionClearedPreviousData = false; - return data; - } catch (ex) { - // TODO how should we handle this case? - throw ex; + order.vehicle.year = data.vehicle.year; + order.vehicle.make = data.vehicle.make; + order.vehicle.model = data.vehicle.model; + order.vehicle.style = data.vehicle.style; + } } + + order.referralNumber = data?.referralNumber; + order.referralDate = data?.referralDate; + order.referralCorrelationId = data?.referralCorrelationId; + order.referralSequenceNumber = data?.referralSequenceNumber; + order.eon = data?.eon; + order.loadedFromDupeCheck = true; + order.loadedSessionClearedPreviousData = false; }, updateCreditCardToken(token) { this.order.payment.creditCardToken.subscriptionId = token.subscriptionId; diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 866e5773..e461b626 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -1107,21 +1107,6 @@ describe('Store', () => { endpoint: endpoints.LoadSession.url })); }); - it('Returns expected response object', async () => { - // Arrange - const response = { data: { ReferralNumber: getRandomString(6, 6) } }; - globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response)); - const duplicate = { - referralNumber: getRandomString(6, 6), - referralCorrelationId: getRandomGuid() - }; - - // Act - const result = store.loadSession(duplicate); - - // Asserts - await expect(result).resolves.toBe(response.data); - }); it('sets expected vehicle data', async () => { // Arrange globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(fullApiResponse));