diff --git a/src/store/index.js b/src/store/index.js index 3da801c2..b973ca25 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -279,7 +279,7 @@ export const getDefaultState = () => ({ buildInfo: (typeof __BUILD_INFO__ !== 'undefined') ? __BUILD_INFO__ : null, // Contains the build info for the website, set during the build process. Version, Time, Git info etc.... siteType: null, // SiteType / SubType the site is set to (Essential/Advanced). enableNoCompQuote: false, - useMemberNumber: false, // Indicates if member number should be included for policy lookup purposes + useMemberNumber: false, // Indicates if member number should be included for coverage related purposes callClaimRegistrationAtEnd: false, // Indicates if claim registration should be called at the end of the flow. } }); @@ -768,7 +768,7 @@ export const useMainStore = defineStore({ vehicleVin: this.order.vehicle.vin, policyData: this.order.policy.policyData, isItac: this.isITAC - } + }; // Clients (i.e. USAA) may sometimes use member number, which is just policy number by a different name if (this.issConfig.useMemberNumber) { payload.memberNumber = this.order.policy.policyNumber; diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 0798bb36..a6f71db2 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -541,8 +541,7 @@ describe('Store', () => { repair: currentDeductible.repair }; store.order.customer.companyCode = companyCode; - store.order.policy.policyNumber = policyNumber; - globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({})); + store.order.policy.policyNumber = policyNumber;globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({ data: { claimNumber: 'CLM123', isSuccess: true } })); // Act await store.registerClaim(); @@ -1969,6 +1968,95 @@ describe('Store', () => { bailoutOnError: false })); }); + it('includes memberNumber wehn flag is set', () => { + // Arrange + const response = { + data: { + deductible: getRandomInt(0, 5000), + policyData: getRandomString(100, 200) + } + }; + + const location = getRandomString(10, 15).toUpperCase(); + store.order.damage.glassToReplace = [ + { + glassLocation: location + } + ]; + const referralCorrelationId = getRandomGuid(); + const parentAccountNumber = getRandomString(6, 6); + const endorsements = []; + const manualGlassNames = [location]; + const policyState = getRandomString(2, 2); + const status = getRandomString(6, 8); + const currentDeductible = 500; + const originalDeductible = 500; + 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); + + store.order.referralCorrelationId = referralCorrelationId; + store.order.parentAccountNumber = parentAccountNumber; + store.order.currentDeductible = { + replace: currentDeductible, + repair: currentDeductible + }; + store.order.originalDeductible = { + replace: originalDeductible, + repair: originalDeductible + }; + store.order.policy.status = status; + store.order.customer.address.state = policyState; + store.order.damage.isRepair = isRepair; + 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.issConfig.useMemberNumber = true; + + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response)); + + // Act + store.getFinalDeductible(); + + // Assert + expect(globalMethods.callHttpClient).toHaveBeenCalledWith(({ + method: endpoints.FinalDeductible.method, + endpoint: endpoints.FinalDeductible.url, + payload: ({ + referralCorrelationId, + accountNumber: parentAccountNumber, + endorsements, + manualGlassNames, + policyState, + status, + currentDeductible, + originalDeductible, + currentRepairDeductible: store.order.currentDeductible.repair, + currentReplaceDeductible: store.order.currentDeductible.replace, + noCoverage: store.isNoComp, + isRepair, + policyNumber, + insuredFirstName, + insuredLastName, + insuredZipCode, + policyVehicleId, + vehicleVin, + policyData, + isItac: store.isITAC, + memberNumber: policyNumber + }), + bailoutOnError: false + })); + }); it('only "Yes" endorsement answers are added to payload', () => { // Arrange const response = {