SSR-1127 Continue flow on load session fail
This commit is contained in:
parent
71fa711843
commit
6c855b73a4
2 changed files with 69 additions and 91 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
Loading…
Reference in a new issue