diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 510cc288..de887a8e 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -1,5 +1,9 @@ diff --git a/src/layouts/policy-vehicles/policy-vehicles.spec.js b/src/layouts/policy-vehicles/policy-vehicles.spec.js index 8b585428..cd505ff7 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.spec.js +++ b/src/layouts/policy-vehicles/policy-vehicles.spec.js @@ -66,7 +66,7 @@ describe('policy-vehicles.vue', () => { const expectedInput = { year: year, vin: vin, - noCompensation: true, + noCoverage: true, deductible: 0, repairWaived: false } @@ -132,7 +132,7 @@ describe('policy-vehicles.vue', () => { }); }) - describe('noCompensationForSelectedVehicle computed property', () => { + describe('noCoverageForSelectedVehicle computed property', () => { it('No vehicle match => returns true', async () => { // Arrange const selectedVin = getRandomString(17,17); @@ -147,7 +147,7 @@ describe('policy-vehicles.vue', () => { } // Act - const result = policyVehicles.computed.noCompensationForSelectedVehicle.call(testValues); + const result = policyVehicles.computed.noCoverageForSelectedVehicle.call(testValues); // Assert expect(result).toBeTruthy(); @@ -167,7 +167,7 @@ describe('policy-vehicles.vue', () => { } // Act - const result = policyVehicles.computed.noCompensationForSelectedVehicle.call(testValues); + const result = policyVehicles.computed.noCoverageForSelectedVehicle.call(testValues); // Assert expect(result).toBeTruthy(); @@ -191,7 +191,7 @@ describe('policy-vehicles.vue', () => { } // Act - const result = policyVehicles.computed.noCompensationForSelectedVehicle.call(testValues); + const result = policyVehicles.computed.noCoverageForSelectedVehicle.call(testValues); // Assert expect(result).toBeFalsy(); diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index 2e59d880..29e793ef 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -107,6 +107,7 @@ export default { noCompensationForSelectedVehicle() { const vehicle = this.policyVehicles.find((policyVehicle) => policyVehicle.vin === this.selectedVehicleVin); + console.log((vehicle?.coverages?.length ?? 0) === 0); return (vehicle?.coverages?.length ?? 0) === 0; }, deductibleForSelectedVehicle() { @@ -174,7 +175,7 @@ export default { this.vehicleFromLookup = Object.assign(vehicleLookupResponse.data, { vin: this.selectedVehicleVin, - noCompensation: this.noCompensationForSelectedVehicle, + noCoverage: this.noCompensationForSelectedVehicle, deductible: this.deductibleForSelectedVehicle, repairWaived: this.repairWaivedForSelectedVehicle }); diff --git a/src/store/index.js b/src/store/index.js index 2204a474..379fc0b8 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -53,7 +53,7 @@ const getDefaultState = () => damageState: null, damageCity: null, isDamageGlassOnly: null, - noCompensation: null, + noCoverage: null, deductible: { repair: null, // numerical value; how much customer owes on deductible in repair case replace: null // numerical value; how much customer owes on deductible in replace case, @@ -396,6 +396,10 @@ export const useMainStore = defineStore({ number: this.order.customer.phoneNumber?.replaceAll(nonNumberCharRegex, '') ?? '' } }, + driver: { + firstName: this.order.customer.firstName, + lastName: this.order.customer.lastName + }, caller: { homePhone: {} }, @@ -424,11 +428,13 @@ export const useMainStore = defineStore({ }).then((response) => { const registerClaimFailed = response.data.isError; this.order.payment.insuranceCoverage.isVerified = !registerClaimFailed; - this.order.payment.insuranceCoverage.coverageStatus = registerClaimFailed - ? coverageStatuses.PENDING - : this.policy.noCompensation - ? coverageStatuses.NO_COMP - : coverageStatuses.VERIFIED; + if (registerClaimFailed) { + this.order.payment.insuranceCoverage.coverageStatus = coverageStatuses.PENDING; + } else if (this.policy.noCoverage) { + this.order.payment.insuranceCoverage.coverageStatus = coverageStatuses.NO_COMP; + } else { + this.order.payment.insuranceCoverage.coverageStatus = coverageStatuses.VERIFIED; + } }, (error) => { this.order.payment.insuranceCoverage.isVerified = false; this.order.payment.insuranceCoverage.coverageStatus = coverageStatuses.PENDING; @@ -764,7 +770,7 @@ export const useMainStore = defineStore({ this.order.vehicle.imageColor = vehicle.imageVifColor; // These could be undefined - this.order.policy.noCompensation = vehicle.noCoverage; + this.order.policy.noCoverage = vehicle.noCoverage; this.order.policy.deductible.replace = vehicle.deductible; this.order.policy.deductible.repair = vehicle?.repairWaived ?? false ? 0 : vehicle.deductible; diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 57a24367..aa4a6b5d 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -1,7 +1,7 @@ -import { useMainStore } from '@/store'; +import { useMainStore } from '@/store/index.js'; import { setActivePinia, createPinia } from 'pinia'; -import globalMethods from '@/global-methods'; -import { getRandomString, getRandomGuid, getRandomInt, getRandomBoolean } from '@/helpers/data-generation'; +import globalMethods from '@/global-methods.js'; +import { getRandomString, getRandomGuid, getRandomInt, getRandomBoolean } from '@/helpers/data-generation.js'; import { coverageStatuses } from '@/constants/coverage-statuses.js'; describe('Store', () => { @@ -29,15 +29,15 @@ describe('Store', () => { const copy = getRandomString(5, 25); const headline = getRandomString(5, 25); const type = getRandomString(5, 15); - let event = { - category: category, - subCategory: subCategory, + const event = { + category, + subCategory, eventValue: { - isDismissible: isDismissible, + isDismissible, messageCopy: copy, messageHeadline: headline, - type: type, - }, + type + } }; // Act @@ -55,15 +55,15 @@ describe('Store', () => { const copy = getRandomString(5, 25); const headline = getRandomString(5, 25); const type = getRandomString(5, 15); - let event = { - category: category, - subCategory: subCategory, + const event = { + category, + subCategory, eventValue: { - isDismissible: isDismissible, + isDismissible, messageCopy: copy, messageHeadline: headline, - type: type, - }, + type + } }; store.addEventToBus(event); @@ -85,21 +85,21 @@ describe('Store', () => { const copy = getRandomString(5, 25); const headline = getRandomString(5, 25); const type = getRandomString(5, 15); - let event = { - category: category, - subCategory: subCategory, + const event = { + category, + subCategory, eventValue: { - isDismissible: isDismissible, + isDismissible, messageCopy: copy, messageHeadline: headline, - type: type, - }, + type + } }; store.addEventToBus(event); // Act - const actual = store.eventBusItem(event.category, event.subCategory) + const actual = store.eventBusItem(event.category, event.subCategory); // Assert expect(actual).toEqual(event.eventValue); @@ -107,38 +107,38 @@ describe('Store', () => { it('UpdateVehicle should merge vehicle with response object', () => { // Arrange - const carId = getRandomString(10,14); - const category = getRandomString(3,7); + const carId = getRandomString(10, 14); + const category = getRandomString(3, 7); const year = getRandomInt(1960, 2023); - const make = getRandomString(4,10); - const model = getRandomString(4,10); - const style = getRandomString(4,15); - const imageUrl = getRandomString(50,100); - const imageVifNumber = getRandomInt(10000,99999).toString(); - const imageColor = getRandomString(4,10); + const make = getRandomString(4, 10); + const model = getRandomString(4, 10); + const style = getRandomString(4, 15); + const imageUrl = getRandomString(50, 100); + const imageVifNumber = getRandomInt(10000, 99999).toString(); + const imageColor = getRandomString(4, 10); const providedVehicle = { - carId: carId, - category: category, - year: year, - make: make, - model: model, - style: style, - imageUrl: imageUrl, - imageVifNumber: imageVifNumber, + carId, + category, + year, + make, + model, + style, + imageUrl, + imageVifNumber, imageVifColor: imageColor }; const expectedVehicle = { - carId: carId, - category: category, - year: year, - make: make, - model: model, - style: style, - imageUrl: imageUrl, - imageVifNumber: imageVifNumber, - imageColor: imageColor - } + carId, + category, + year, + make, + model, + style, + imageUrl, + imageVifNumber, + imageColor + }; // Act store.updateVehicle(providedVehicle); @@ -149,16 +149,16 @@ describe('Store', () => { it('UpdateVehicle should set policy values appropriately with repair waived', () => { // Arrange - const noCompensation = getRandomBoolean(); - const deductible = getRandomInt(1,500); + const noCoverage = getRandomBoolean(); + const deductible = getRandomInt(1, 500); const vehicle = { - noCoverage: noCompensation, - deductible: deductible, + noCoverage, + deductible, repairWaived: true }; const expectedPolicy = { - noCompensation: noCompensation, + noCoverage, deductible: { replace: deductible, repair: 0 @@ -174,16 +174,16 @@ describe('Store', () => { it('UpdateVehicle should set policy values appropriately with repair not waived', () => { // Arrange - const noCompensation = getRandomBoolean(); - const deductible = getRandomInt(1,500); + const noCoverage = getRandomBoolean(); + const deductible = getRandomInt(1, 500); const vehicle = { - noCoverage: noCompensation, - deductible: deductible, + noCoverage, + deductible, repairWaived: false }; const expectedPolicy = { - noCompensation: noCompensation, + noCoverage, deductible: { replace: deductible, repair: deductible @@ -200,25 +200,25 @@ describe('Store', () => { // TODO update test to work also checking store values it('setVehicle should call globalMethods.callHttpClient', () => { // Arrange - const carId = getRandomString(10,14); - const category = getRandomString(3,7); + const carId = getRandomString(10, 14); + const category = getRandomString(3, 7); const year = getRandomInt(1960, 2023); - const make = getRandomString(4,10); - const model = getRandomString(4,10); - const style = getRandomString(4,15); - const imageUrl = getRandomString(50,100); - const imageVifNumber = getRandomInt(10000,99999).toString(); - const imageColor = getRandomString(4,10); + const make = getRandomString(4, 10); + const model = getRandomString(4, 10); + const style = getRandomString(4, 15); + const imageUrl = getRandomString(50, 100); + const imageVifNumber = getRandomInt(10000, 99999).toString(); + const imageColor = getRandomString(4, 10); const response = { data: { - carId: carId, - category: category, - year: year, - make: make, - model: model, - style: style, - imageUrl: imageUrl, - imageVifNumber: imageVifNumber, + carId, + category, + year, + make, + model, + style, + imageUrl, + imageVifNumber, imageVifColor: imageColor } }; @@ -235,14 +235,14 @@ describe('Store', () => { it('saveVehicleDamage with windshield repair should update damage with number of chips not null', () => { // Arrange - const glassName = getRandomString(4,10); - const glassLocation = getRandomString(5,15); + const glassName = getRandomString(4, 10); + const glassLocation = getRandomString(5, 15); const isWindshieldRepair = true; const selectedGlassToReplace = [{ - glassName: glassName, - glassLocation: glassLocation + glassName, + glassLocation }]; - const chipCount = getRandomInt(0,3); + const chipCount = getRandomInt(0, 3); // Act store.saveVehicleDamage(isWindshieldRepair, selectedGlassToReplace, chipCount); @@ -255,14 +255,14 @@ describe('Store', () => { it('saveVehicleDamage without windshield repair should update damage with number of chips null', () => { // Arrange - const glassName = getRandomString(4,10); - const glassLocation = getRandomString(5,15); + const glassName = getRandomString(4, 10); + const glassLocation = getRandomString(5, 15); const isWindshieldRepair = false; const selectedGlassToReplace = [{ - glassName: glassName, - glassLocation: glassLocation + glassName, + glassLocation }]; - const chipCount = getRandomInt(0,3); + const chipCount = getRandomInt(0, 3); const expectedChipCount = null; @@ -276,77 +276,77 @@ describe('Store', () => { }); it('should return registration data if available', () => { - //Arrange - const streetAddress = getRandomString(5,15); - const city = getRandomString(5,15); - const state = getRandomString(5,10); - const zipCode = getRandomInt(10000,99999).toString(); - const firstName = getRandomString(5,20); - const lastName = getRandomString(5,20); + // Arrange + const streetAddress = getRandomString(5, 15); + const city = getRandomString(5, 15); + const state = getRandomString(5, 10); + const zipCode = getRandomInt(10000, 99999).toString(); + const firstName = getRandomString(5, 20); + const lastName = getRandomString(5, 20); const expected = { addressQuestions: { - streetAddress: streetAddress, - city: city, - state: state, - zipCode: zipCode, + streetAddress, + city, + state, + zipCode }, - firstName: firstName, - lastName: lastName, - } + firstName, + lastName + }; store.order.vehicle.registration = { licensePlate: null, address: streetAddress, - city: city, - state: state, - zipCode: zipCode, - firstName: firstName, - lastName: lastName, + city, + state, + zipCode, + firstName, + lastName }; - //Act + // Act const actual = store.customerData; - //Assert + // Assert expect(actual).toEqual(expected); }); it('should return customer data if registration data unavailable', () => { - //Arrange - const address = getRandomString(1,25); - const city = getRandomString(5,20); - const state = getRandomString(4,20); + // Arrange + const address = getRandomString(1, 25); + const city = getRandomString(5, 20); + const state = getRandomString(4, 20); const zipCode = getRandomInt(10000, 99999).toString(); - const firstName = getRandomString(5,25); - const lastName = getRandomString(5,25); + const firstName = getRandomString(5, 25); + const lastName = getRandomString(5, 25); const expected = { addressQuestions: { streetAddress: address, - city: city, - state: state, - zipCode: zipCode, + city, + state, + zipCode }, - firstName: firstName, - lastName: lastName, - } + firstName, + lastName + }; store.order.vehicle.registration.address = null; store.order.customer = { address: { streetAddress: address, - city: city, - state: state, - zipCode: zipCode + city, + state, + zipCode }, - firstName: firstName, - lastName: lastName + firstName, + lastName }; - //Act + // Act const actual = store.customerData; - //Assert + // Assert expect(actual).toMatchObject(expected); }); @@ -364,7 +364,7 @@ describe('Store', () => { deductible: 0 } }; - store.policy.noCompensation = true; + store.policy.noCoverage = true; globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response)); @@ -390,7 +390,7 @@ describe('Store', () => { deductible: 0 } }; - store.policy.noCompensation = false; + store.policy.noCoverage = false; globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response));