Merge branch 'develop' into feature/humphries/INSR-8493

This commit is contained in:
Alex Humphries 2026-06-18 15:05:11 -04:00
commit c534517fd4
5 changed files with 694 additions and 806 deletions

1433
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -48,7 +48,7 @@
"@types/dotenv-safe": "^8.1.6", "@types/dotenv-safe": "^8.1.6",
"@types/form-data": "^2.2.1", "@types/form-data": "^2.2.1",
"@types/node": "^22.7.5", "@types/node": "^22.7.5",
"@vitejs/plugin-vue": "5.2.1", "@vitejs/plugin-vue": "6.0.7",
"@vitest/coverage-v8": "^4.1.8", "@vitest/coverage-v8": "^4.1.8",
"@vue/cli-plugin-babel": "^5.0.8", "@vue/cli-plugin-babel": "^5.0.8",
"@vue/cli-plugin-router": "~5.0.0", "@vue/cli-plugin-router": "~5.0.0",
@ -73,7 +73,7 @@
"jest": "^27.0.5", "jest": "^27.0.5",
"jest-junit": "^13.0.0", "jest-junit": "^13.0.0",
"jest-serializer-vue": "^3.1.0", "jest-serializer-vue": "^3.1.0",
"jsdoc": "^4.0.2", "jsdoc": "^4.0.5",
"jsdom": "^22.1.0", "jsdom": "^22.1.0",
"luxon": "^3.5.0", "luxon": "^3.5.0",
"ortoni-report": "^2.0.8", "ortoni-report": "^2.0.8",
@ -82,7 +82,7 @@
"sass-loader": "^12.0.0", "sass-loader": "^12.0.0",
"saucectl": "^0.188.0", "saucectl": "^0.188.0",
"typescript-eslint": "^8.11.0", "typescript-eslint": "^8.11.0",
"vite": "^6.4.2", "vite": "^8.0.16",
"vitest": "^4.1.8", "vitest": "^4.1.8",
"vue-eslint-parser": "^10.2.0", "vue-eslint-parser": "^10.2.0",
"wait-on": "^8.0.2" "wait-on": "^8.0.2"

View file

@ -82,6 +82,7 @@ export default {
sessionKey: getSessionKeyValue(), sessionKey: getSessionKeyValue(),
pageName: currentPageName, pageName: currentPageName,
referralSequenceNumber: order.referralSequenceNumber, referralSequenceNumber: order.referralSequenceNumber,
referralNumber: order.referralNumber,
parentAccountNumber: parentAccountNumber, parentAccountNumber: parentAccountNumber,
sessionId: getSessionIdValue(), sessionId: getSessionIdValue(),
action: '', action: '',
@ -111,6 +112,7 @@ export default {
sessionKey: getSessionKeyValue(), sessionKey: getSessionKeyValue(),
pageName: currentPageName, pageName: currentPageName,
referralSequenceNumber: order.referralSequenceNumber, referralSequenceNumber: order.referralSequenceNumber,
referralNumber: order.referralNumber,
parentAccountNumber: parentAccountNumber, parentAccountNumber: parentAccountNumber,
sessionId: getSessionIdValue(), sessionId: getSessionIdValue(),
category, category,

View file

@ -125,7 +125,8 @@ export const getDefaultState = () => ({
}, },
firstName: null, firstName: null,
lastName: null, lastName: null,
emailAddress: null emailAddress: null,
companyCode: null
}, },
serviceLocation: { serviceLocation: {
address: null, address: null,
@ -596,6 +597,7 @@ export const useMainStore = defineStore({
order.customer.address.zipCode = insured?.zipCode?.toString(); order.customer.address.zipCode = insured?.zipCode?.toString();
order.customer.firstName = insured?.firstName; order.customer.firstName = insured?.firstName;
order.customer.lastName = insured?.lastName; order.customer.lastName = insured?.lastName;
order.customer.companyCode = insured?.companyCode;
// populate additional fields // populate additional fields
order.policy.policyData = responsePolicy.policyData; 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. // This is here in case we have to deploy site for other fixes before coverage service gets updated.
isRepair: this.order.damage.isRepair, isRepair: this.order.damage.isRepair,
isItac: isITAC, isItac: isITAC,
sourceSystem: applicationConfig.APPLICATION_NAME,
insured: { insured: {
firstName: this.order.customer.firstName, firstName: this.order.customer.firstName,
lastName: this.order.customer.lastName, lastName: this.order.customer.lastName,
@ -676,6 +679,7 @@ export const useMainStore = defineStore({
actualDeductible: this.currentDeductible.toString() ?? '', actualDeductible: this.currentDeductible.toString() ?? '',
currentRepairDeductible: this.order.currentDeductible.repair, currentRepairDeductible: this.order.currentDeductible.repair,
currentReplaceDeductible: this.order.currentDeductible.replace, currentReplaceDeductible: this.order.currentDeductible.replace,
company: this.order.customer.companyCode
}, },
lossInfo: { lossInfo: {
dateOfLoss: this.order.policy.dateOfLoss, dateOfLoss: this.order.policy.dateOfLoss,
@ -2175,6 +2179,7 @@ export const useMainStore = defineStore({
this.order.customer.address.zipCode = null; this.order.customer.address.zipCode = null;
this.order.customer.address.streetAddress = null; this.order.customer.address.streetAddress = null;
this.order.customer.address.streetAddress2 = null; this.order.customer.address.streetAddress2 = null;
this.order.customer.companyCode = null;
}, },
resetContactInfo() { resetContactInfo() {
@ -2574,13 +2579,14 @@ export const useMainStore = defineStore({
}); });
} }
}, },
async logPageView({ userId, sessionKey, pageName, referralSequenceNumber, parentAccountNumber, sessionId, action, event, shouldUseSessionId, experimentsForUser }) { async logPageView({ userId, sessionKey, pageName, referralSequenceNumber, referralNumber, parentAccountNumber, sessionId, action, event, shouldUseSessionId, experimentsForUser }) {
const payload = { const payload = {
userId, userId,
sessionKey, sessionKey,
sessionId, sessionId,
pageName, pageName,
referralSequenceNumber, referralSequenceNumber,
referralNumber,
parentAccountNumber, parentAccountNumber,
applicationName: applicationConfig.APPLICATION_NAME, applicationName: applicationConfig.APPLICATION_NAME,
action, action,
@ -2602,7 +2608,7 @@ export const useMainStore = defineStore({
} }
); );
}, },
async logCustomEvent({ userId, sessionKey, pageName, sessionId, category, action, label, value, shouldUseSessionId, experimentsForUser, referralSequenceNumber, parentAccountNumber }) { async logCustomEvent({ userId, sessionKey, pageName, sessionId, category, action, label, value, shouldUseSessionId, experimentsForUser, referralSequenceNumber, referralNumber, parentAccountNumber }) {
if (pageName == null || pageName.length === 0) { pageName = 'none'; } if (pageName == null || pageName.length === 0) { pageName = 'none'; }
const payload = { const payload = {
@ -2618,6 +2624,7 @@ export const useMainStore = defineStore({
shouldUseSessionId, shouldUseSessionId,
experimentsForUser, experimentsForUser,
referralSequenceNumber, referralSequenceNumber,
referralNumber,
parentAccountNumber parentAccountNumber
}; };

View file

@ -16,6 +16,7 @@ import coverageType from '@/constants/coverage-type';
import { getEnumName } from '@/helpers/unit-test-helper'; import { getEnumName } from '@/helpers/unit-test-helper';
import { strictEqual } from 'assert'; import { strictEqual } from 'assert';
import partNumberStrings from '@/constants/part-number-strings'; import partNumberStrings from '@/constants/part-number-strings';
import applicationConfig from '@/constants/application-config';
describe('Store', () => { describe('Store', () => {
let store; let store;
@ -481,6 +482,42 @@ describe('Store', () => {
expect(store.order.insuranceCoverage.coverageStatus).toBe(coverageStatuses.NO_COVERAGE); expect(store.order.insuranceCoverage.coverageStatus).toBe(coverageStatuses.NO_COVERAGE);
expect(store.order.insuranceCoverage.claimNumber).toBe(null); 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', () => { describe('updateContactInfo method', () => {
@ -1299,6 +1336,7 @@ describe('Store', () => {
const zipCode = getRandomString(6, 6); const zipCode = getRandomString(6, 6);
const firstName = getRandomString(6, 6); const firstName = getRandomString(6, 6);
const lastName = getRandomString(6, 6); const lastName = getRandomString(6, 6);
const companyCode = getRandomString(6, 6);
const vehicle = { id: '123' }; const vehicle = { id: '123' };
@ -1313,7 +1351,8 @@ describe('Store', () => {
state, state,
zipCode, zipCode,
firstName, firstName,
lastName lastName,
companyCode
} }
], ],
vehicles: [ vehicles: [
@ -1335,6 +1374,7 @@ describe('Store', () => {
await expect(store.order.customer.address.zipCode).toBe(zipCode); await expect(store.order.customer.address.zipCode).toBe(zipCode);
await expect(store.order.customer.firstName).toBe(firstName); await expect(store.order.customer.firstName).toBe(firstName);
await expect(store.order.customer.lastName).toBe(lastName); await expect(store.order.customer.lastName).toBe(lastName);
await expect(store.order.customer.companyCode).toBe(companyCode)
await expect(store.order.policy.vehicles).toStrictEqual([vehicle]); await expect(store.order.policy.vehicles).toStrictEqual([vehicle]);
}); });
it('calls api with expected data', async () => { it('calls api with expected data', async () => {
@ -1404,7 +1444,8 @@ describe('Store', () => {
lastName: getRandomString(6, 6), lastName: getRandomString(6, 6),
city: getRandomString(6, 6), city: getRandomString(6, 6),
state: getRandomString(6, 6), state: getRandomString(6, 6),
zipCode: getRandomString(6, 6) zipCode: getRandomString(6, 6),
companyCode: getRandomString(6, 6)
}; };
const vehicles = [ const vehicles = [
{ name: getRandomString(6, 6) }, { name: getRandomString(6, 6) },
@ -1435,6 +1476,7 @@ describe('Store', () => {
expect(store.order.customer.address.zipCode).toBe(insured.zipCode); expect(store.order.customer.address.zipCode).toBe(insured.zipCode);
expect(store.order.customer.firstName).toBe(insured.firstName); expect(store.order.customer.firstName).toBe(insured.firstName);
expect(store.order.customer.lastName).toBe(insured.lastName); expect(store.order.customer.lastName).toBe(insured.lastName);
expect(store.order.customer.companyCode).toBe(insured.companyCode);
expect(store.order.policy.vehicles).toEqual(vehicles); expect(store.order.policy.vehicles).toEqual(vehicles);
}); });