Merge pull request #507 from Safelite/feature/SSR-704

SSR-704: Updated logic for calling final-deductible.
This commit is contained in:
Jeremy-Z 2023-11-20 15:42:49 -05:00 committed by GitHub
commit 916576a8bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 98 additions and 8 deletions

View file

@ -546,10 +546,19 @@ export const useMainStore = defineStore({
status: this.order.policy.status,
currentDeductible: this.order.currentDeductible,
noCoverage: this.order.policy.noCoverage,
isRepair: this.order.damage.isRepair
isRepair: this.order.damage.isRepair,
policyNumber: this.order.policy.policyNumber,
insuredFirstName: this.order.customer.firstName,
insuredLastName: this.order.customer.lastName,
insuredZipCode: this.order.customer.address.zipCode,
policyVehicleId: this.order.vehicle.policyVehicleId?.toString() ?? '',
vehicleVin: this.order.vehicle.vin,
policyData: this.order.policy.policyData,
isItac: this.order.policy.isITAC
}
}).then((r) => {
this.updateDeductible(r.data);
this.order.policy.policyData = r.data.policyData;
this.updateDeductible(r.data.deductible);
return resolve(r);
}).catch((error) => reject(error));
});

View file

@ -1699,7 +1699,14 @@ describe('Store', () => {
describe('successful method call', () => {
it('calls get final deductible api endpoint', () => {
// Arrange
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
const response = {
data: {
deductible: getRandomInt(0, 5000),
policyData: getRandomString(100, 200)
}
};
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response));
store.order.damage.glassToReplace = [getRandomString(10, 15)];
// Act
@ -1713,7 +1720,13 @@ describe('Store', () => {
});
it('returns expected response object', async () => {
// Arrange
const response = { deductible: getRandomInt(0, 5000) };
const response = {
data: {
deductible: getRandomInt(0, 5000),
policyData: getRandomString(100, 200)
}
};
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response));
store.order.damage.glassToReplace = [getRandomString(10, 15)];
@ -1725,6 +1738,13 @@ describe('Store', () => {
});
it('calls api with expected payload', () => {
// Arrange
const response = {
data: {
deductible: getRandomInt(0, 5000),
policyData: getRandomString(100, 200)
}
};
const location = getRandomString(10, 15).toUpperCase();
store.order.damage.glassToReplace = [
{
@ -1740,6 +1760,15 @@ describe('Store', () => {
const currentDeductible = getRandomInt(0, 5000);
const noCoverage = getRandomBoolean();
const isRepair = getRandomBoolean();
const policyNumber = getRandomString(10, 20);
const insuredFirstName = getRandomString(10, 20);
const insuredLastName = getRandomString(10, 20);
const insuredZipCode = getRandomInt(10000, 99999).toString();
const policyVehicleId = getRandomInt(1, 2).toString();
const vehicleVin = getRandomString(17, 17);
const policyData = getRandomString(100, 200);
const isItac = getRandomBoolean();
store.order.referralCorrelationId = referralCorrelationId;
store.issConfig.parentAccountNumber = accountNumber;
store.order.currentDeductible = currentDeductible;
@ -1747,7 +1776,17 @@ describe('Store', () => {
store.order.policy.status = status;
store.order.customer.address.state = policyState;
store.order.damage.isRepair = isRepair;
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
store.order.policy.policyNumber = policyNumber;
store.order.customer.firstName = insuredFirstName;
store.order.customer.lastName = insuredLastName;
store.order.customer.address.zipCode = insuredZipCode;
store.order.vehicle.policyVehicleId = policyVehicleId;
store.order.vehicle.vin = vehicleVin;
store.order.policy.policyData = policyData;
store.updatePolicyITACFlag(isItac);
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response));
// Act
store.getFinalDeductible();
@ -1765,12 +1804,27 @@ describe('Store', () => {
status,
currentDeductible,
noCoverage,
isRepair
isRepair,
policyNumber,
insuredFirstName,
insuredLastName,
insuredZipCode,
policyVehicleId,
vehicleVin,
policyData,
isItac
})
}));
});
it('only "Yes" endorsement answers are added to payload', () => {
// Arrange
const response = {
data: {
deductible: getRandomInt(0, 5000),
policyData: getRandomString(100, 200)
}
};
const location = getRandomString(10, 15).toUpperCase();
store.order.damage.glassToReplace = [
{
@ -1805,6 +1859,15 @@ describe('Store', () => {
selectedAnswer: 'No'
}
];
const policyNumber = getRandomString(10, 20);
const insuredFirstName = getRandomString(10, 20);
const insuredLastName = getRandomString(10, 20);
const insuredZipCode = getRandomInt(10000, 99999).toString();
const policyVehicleId = getRandomInt(1, 2).toString();
const vehicleVin = getRandomString(17, 17);
const policyData = getRandomString(100, 200);
const isItac = false;
store.order.referralCorrelationId = referralCorrelationId;
store.issConfig.parentAccountNumber = accountNumber;
store.order.currentDeductible = currentDeductible;
@ -1813,7 +1876,17 @@ describe('Store', () => {
store.order.customer.address.state = policyState;
store.order.policy.endorsementQuestionAnswers = endorsementAnswers;
store.order.damage.isRepair = isRepair;
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
store.order.policy.policyNumber = policyNumber;
store.order.customer.firstName = insuredFirstName;
store.order.customer.lastName = insuredLastName;
store.order.customer.address.zipCode = insuredZipCode;
store.order.vehicle.policyVehicleId = policyVehicleId;
store.order.vehicle.vin = vehicleVin;
store.order.policy.policyData = policyData;
store.updatePolicyITACFlag(isItac);
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response));
// Act
store.getFinalDeductible();
@ -1832,7 +1905,15 @@ describe('Store', () => {
status,
currentDeductible,
noCoverage,
isRepair
isRepair,
policyNumber,
insuredFirstName,
insuredLastName,
insuredZipCode,
policyVehicleId,
vehicleVin,
policyData,
isItac
})
}));
});