From 67e624e16cf7f9a91b7dd074850b4027feec1895 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Thu, 2 Jul 2026 11:30:31 -0400 Subject: [PATCH 1/2] INSR-10142: Include member number in policy lookup based on client flag --- src/layouts/entry-page/entry-page.vue | 4 ++++ src/store/index.js | 25 +++++++++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/layouts/entry-page/entry-page.vue b/src/layouts/entry-page/entry-page.vue index bdbe78ae..ce114928 100644 --- a/src/layouts/entry-page/entry-page.vue +++ b/src/layouts/entry-page/entry-page.vue @@ -216,6 +216,10 @@ export default { if ( clientFlags.EncryptedParametersPattern != null ) { this.mainStore.issConfig.encryptedParametersPattern = clientFlags.EncryptedParametersPattern; } + + if (clientFlags.UseMemberNumber) { + this.mainStore.issConfig.useMemberNumber = true; + } } }, combineClientParameters(configParams, queryStringParams) { diff --git a/src/store/index.js b/src/store/index.js index dee920e0..530dd124 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -272,7 +272,8 @@ 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 + enableNoCompQuote: false, + useMemberNumber: false // Indicates if member number should be included for policy lookup purposes } }); @@ -566,17 +567,21 @@ export const useMainStore = defineStore({ try { order.policy.policyLookupErrorCode = 0; + const payload = { + accountNumber: order.parentAccountNumber?.toString(), + policyNumber: policy.policyNumber, + dateOfLoss: policy.dateOfLoss, + zipCode: policy.policyZipCode, + referralCorrelationId: order.referralCorrelationId, + referralNumber: order.referralNumber + } + if (this.issConfig.useMemberNumber) { + payload.memberNumber = policy.policyNumber; + } const response = await globalMethods.callHttpClient({ method: endpoints.CoveragePolicyInfo.method, endpoint: endpoints.CoveragePolicyInfo.url, - payload: { - accountNumber: order.parentAccountNumber?.toString(), - policyNumber: policy.policyNumber, - dateOfLoss: policy.dateOfLoss, - zipCode: policy.policyZipCode, - referralCorrelationId: order.referralCorrelationId, - referralNumber: order.referralNumber - }, + payload, bailoutOnError: false }); @@ -2270,7 +2275,7 @@ export const useMainStore = defineStore({ this.issConfig.siteType = null; this.issConfig.enableNoCompQuote = false; this.issConfig.billToAccountNumber = null; - + this.issConfig.useMemberNumber = false; // NOTE: Do not wipe out build info. }, From 8312c43a24724b24c311fefb2a97e31520e279c8 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Thu, 2 Jul 2026 12:27:13 -0400 Subject: [PATCH 2/2] INSR-10142: Various copilot suggestions - Add comment to clarify member number - Adjust tests to account for member number - Add missing semicolon --- src/store/index.js | 3 ++- src/store/store.spec.js | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/store/index.js b/src/store/index.js index 530dd124..386832f3 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -574,7 +574,8 @@ export const useMainStore = defineStore({ zipCode: policy.policyZipCode, referralCorrelationId: order.referralCorrelationId, referralNumber: order.referralNumber - } + }; + // Clients (i.e. USAA) may sometimes use member number, which is just policy number by a different name if (this.issConfig.useMemberNumber) { payload.memberNumber = policy.policyNumber; } diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 271d1a34..61813d5c 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -1406,6 +1406,43 @@ describe('Store', () => { referralCorrelationId }) })); + expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({ + payload: expect.not.objectContaining({ + memberNumber: expect.anything() + }) + })); + }); + it('calls api with member number when useMemberNumber is true', async () => { + // Arrange + const parentAccountNumber = getRandomString(6, 6); + const policyNumber = getRandomString(6, 6); + const dateOfLoss = getRandomString(6, 6); + const zipCode = getRandomString(6, 6); + const referralCorrelationId = getRandomString(6, 6); + store.order.parentAccountNumber = parentAccountNumber; + store.order.policy.policyNumber = policyNumber; + store.order.policy.dateOfLoss = dateOfLoss; + store.order.policy.policyZipCode = zipCode; + store.order.referralCorrelationId = referralCorrelationId; + store.issConfig.isCoverageEnabled = true; + store.issConfig.useMemberNumber = true; + store.applicationUser.coverageLookupAttempts = 0; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({})); + + // Act + await store.getCoveragePolicyInfo(); + + // Asserts + expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({ + payload: expect.objectContaining({ + accountNumber: parentAccountNumber, + policyNumber, + memberNumber: policyNumber, + dateOfLoss, + zipCode, + referralCorrelationId + }) + })); }); it('null response by api => insuranceCoverage.coverageType is NONE', async () => { // Arrange