diff --git a/src/store/index.js b/src/store/index.js index 4dbb9428..978dc68a 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -125,7 +125,8 @@ export const getDefaultState = () => ({ }, firstName: null, lastName: null, - emailAddress: null + emailAddress: null, + companyCode: null }, serviceLocation: { address: null, @@ -596,6 +597,7 @@ export const useMainStore = defineStore({ order.customer.address.zipCode = insured?.zipCode?.toString(); order.customer.firstName = insured?.firstName; order.customer.lastName = insured?.lastName; + order.customer.companyCode = insured?.companyCode; // populate additional fields order.policy.policyData = responsePolicy.policyData; @@ -646,6 +648,7 @@ export const useMainStore = defineStore({ // This is here in case we have to deploy site for other fixes before coverage service gets updated. isRepair: this.order.damage.isRepair, isItac: isITAC, + sourceSystem: applicationConfig.APPLICATION_NAME, insured: { firstName: this.order.customer.firstName, lastName: this.order.customer.lastName, @@ -676,6 +679,7 @@ export const useMainStore = defineStore({ actualDeductible: this.currentDeductible.toString() ?? '', currentRepairDeductible: this.order.currentDeductible.repair, currentReplaceDeductible: this.order.currentDeductible.replace, + company: this.order.customer.companyCode }, lossInfo: { dateOfLoss: this.order.policy.dateOfLoss, @@ -2175,6 +2179,7 @@ export const useMainStore = defineStore({ this.order.customer.address.zipCode = null; this.order.customer.address.streetAddress = null; this.order.customer.address.streetAddress2 = null; + this.order.customer.companyCode = null; }, resetContactInfo() { diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 7b9d4355..8cf40ee3 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -16,6 +16,7 @@ import coverageType from '@/constants/coverage-type'; import { getEnumName } from '@/helpers/unit-test-helper'; import { strictEqual } from 'assert'; import partNumberStrings from '@/constants/part-number-strings'; +import applicationConfig from '@/constants/application-config'; describe('Store', () => { let store; @@ -481,6 +482,42 @@ describe('Store', () => { expect(store.order.insuranceCoverage.coverageStatus).toBe(coverageStatuses.NO_COVERAGE); expect(store.order.insuranceCoverage.claimNumber).toBe(null); }); + + it('calls api with expected data', async () => { + // Arrange + const companyCode = getRandomString(6, 6); + const originalDeductible = { + replace: 500, + repair: 0 + }; + const currentDeductible = { + replace: 500, + repair: 0 + }; + store.order.originalDeductible = { + replace: originalDeductible.replace, + repair: originalDeductible.repair + }; + store.order.currentDeductible = { + replace: currentDeductible.replace, + repair: currentDeductible.repair + }; + store.order.customer.companyCode = companyCode; + globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({})); + + // Act + await store.registerClaim(); + + // Asserts + expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({ + payload: expect.objectContaining({ + sourceSystem: applicationConfig.APPLICATION_NAME, + policyInfo: expect.objectContaining({ + company: companyCode + }) + }) + })); + }); }); describe('updateContactInfo method', () => { @@ -1299,6 +1336,7 @@ describe('Store', () => { const zipCode = getRandomString(6, 6); const firstName = getRandomString(6, 6); const lastName = getRandomString(6, 6); + const companyCode = getRandomString(6, 6); const vehicle = { id: '123' }; @@ -1313,7 +1351,8 @@ describe('Store', () => { state, zipCode, firstName, - lastName + lastName, + companyCode } ], vehicles: [ @@ -1335,6 +1374,7 @@ describe('Store', () => { await expect(store.order.customer.address.zipCode).toBe(zipCode); await expect(store.order.customer.firstName).toBe(firstName); await expect(store.order.customer.lastName).toBe(lastName); + await expect(store.order.customer.companyCode).toBe(companyCode) await expect(store.order.policy.vehicles).toStrictEqual([vehicle]); }); it('calls api with expected data', async () => { @@ -1404,7 +1444,8 @@ describe('Store', () => { lastName: getRandomString(6, 6), city: getRandomString(6, 6), state: getRandomString(6, 6), - zipCode: getRandomString(6, 6) + zipCode: getRandomString(6, 6), + companyCode: getRandomString(6, 6) }; const vehicles = [ { name: getRandomString(6, 6) }, @@ -1435,6 +1476,7 @@ describe('Store', () => { expect(store.order.customer.address.zipCode).toBe(insured.zipCode); expect(store.order.customer.firstName).toBe(insured.firstName); expect(store.order.customer.lastName).toBe(insured.lastName); + expect(store.order.customer.companyCode).toBe(insured.companyCode); expect(store.order.policy.vehicles).toEqual(vehicles); });