Merge pull request #284 from Safelite/feature/Digital/SSR-394-policyholderdetails

policyholder details update
This commit is contained in:
hiteshkumar87 2023-05-04 11:05:31 +05:30 committed by GitHub
commit 7d3489c4fa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 69 additions and 37 deletions

View file

@ -87,6 +87,14 @@ describe("navigation", () => {
state: "OH", state: "OH",
zipCode: "43215", zipCode: "43215",
}; };
const mockvehicles = [
{
vin: "TEST_VIN",
},
{
vin: "TEST_VIN2",
}
];
const { wrapper } = setupMocks(); const { wrapper } = setupMocks();
@ -97,22 +105,17 @@ describe("navigation", () => {
addressQuestions: mockRegistrationAddress, addressQuestions: mockRegistrationAddress,
}, },
isCoverageEnabled : true, isCoverageEnabled : true,
vehiclesCount:2,
vehiclesFound:mockvehicles
}); });
const vehiclesFound = [{
vehicles:[
{
vin: "TEST_VIN",
},
{
vin: "TEST_VIN2",
}
]}];
useMainStore().order.policy.policyNumber = "p_0001"; useMainStore().order.policy.policyNumber = "p_0001";
useMainStore().order.policy.dateOfLoss = "2022-01-28"; useMainStore().order.policy.dateOfLoss = "2022-01-28";
useMainStore().order.accountNumber = "00000"; useMainStore().order.accountNumber = "00000";
// Act // Act
await wrapper.vm.forwardButtonAction(); await wrapper.vm.forwardButtonAction();
// Assert // Assert
@ -121,7 +124,7 @@ describe("navigation", () => {
undefined, undefined,
{}, {},
{}, {},
vehiclesFound mockvehicles
); );
}); });

View file

@ -65,7 +65,8 @@ export default {
mixins: [BaseFormMixin], mixins: [BaseFormMixin],
data() { data() {
return { return {
customerQuestions: this.getPolicyHolderDetailsFromStore() customerQuestions: this.getPolicyHolderDetailsFromStore(),
vehiclesFound: [],
}; };
}, },
setup() { setup() {
@ -84,13 +85,16 @@ export default {
promise: cmsContentPromise, promise: cmsContentPromise,
},]; },];
//use resultMap to populate layout content. //use resultMap to populate layout content.
let resultMap = await settleAllPromises(promiseResultMap); let resultMap = await settleAllPromises(promiseResultMap);
next((vm) => { next((vm) => {
vm.setCmsContent(resultMap.cmsContent); vm.setCmsContent(resultMap.cmsContent);
}); });
},
created(){
this.getVehiclesfromPolicyLookup();
}, },
methods: methods:
{ {
@ -100,36 +104,18 @@ export default {
async forwardButtonAction() async forwardButtonAction()
{ {
this.mainStore.updatePolicyHolderDetails(this.customerQuestions); this.mainStore.updatePolicyHolderDetails(this.customerQuestions);
//call coverage policy lookup if isCoverageEnabled flag enabled return this.navigateForward();
var vehiclesFound = {};
if(this.isCoverageEnabled){
const policyLookupResponse = this.mainStore.getCoveragePolicyInfo({
accountNumber:this.mainStore.order.accountNumber.toString(),
policyNumber:this.mainStore.order.policy.policyNumber,
dateOfLoss:this.mainStore.order.policy.dateOfLoss});
// Settle promises and get results
const promisePolicyLookupResultMap = [
{
resultKey: "policyLookupResponse",
promise: policyLookupResponse,
}
];
const policyLookupResultMap = await settleAllPromises(promisePolicyLookupResultMap);
vehiclesFound = policyLookupResultMap.policyLookupResponse?.policies;
}
return this.navigateForward(vehiclesFound);
}, },
navigateForward(vehiclesFound) { navigateForward() {
if(vehiclesFound?.length > 0) if(this.vehiclesCount > 0)
this.$router.navigate( this.$router.navigate(
this.navigationScenarios.CLICKED_FORWARD_POLICY_VERIFIED, this.navigationScenarios.CLICKED_FORWARD_POLICY_VERIFIED,
this.$route, this.$route,
{}, {},
{}, {},
vehiclesFound this.vehiclesFound
); );
else else
this.$router.navigate( this.$router.navigate(
@ -151,11 +137,54 @@ export default {
lastName : this.mainStore.order.customer.lastName, lastName : this.mainStore.order.customer.lastName,
} }
}, },
async getPolicyLookupResponse(){
const policyLookupResponse = this.mainStore.getCoveragePolicyInfo({
accountNumber:this.mainStore.order.accountNumber.toString(),
policyNumber:this.mainStore.order.policy.policyNumber,
dateOfLoss:this.mainStore.order.policy.dateOfLoss});
// Settle promises and get results
const promisePolicyLookupResultMap = [
{
resultKey: "policyLookupResponse",
promise: policyLookupResponse,
}
];
const policyLookupResultMap = await settleAllPromises(promisePolicyLookupResultMap);
return policyLookupResultMap.policyLookupResponse;
},
async getVehiclesfromPolicyLookup()
{
//call coverage policy lookup if isCoverageEnabled flag enabled
if(this.isCoverageEnabled){
const policyLookupResponse = await this.getPolicyLookupResponse();
if(policyLookupResponse!=null){
var policy = policyLookupResponse.policies?.[0];
if(policy!=null){
//populate policy holder details from policy lookup
this.mainStore.order.customer.address.streetAddress = policy.insureds?.[0]?.address;
this.mainStore.order.customer.address.city=policy.insureds?.[0]?.city;
this.mainStore.order.customer.address.state=policy.insureds?.[0]?.state;
this.mainStore.order.customer.address.zipCode=policy.insureds?.[0]?.zipCode;
this.mainStore.order.customer.firstName = policy.insureds?.[0]?.firstName;
this.mainStore.order.customer.lastName = policy.insureds?.[0]?.lastName;
this.customerQuestions = this.getPolicyHolderDetailsFromStore();
//populate vehicles
this.vehiclesFound= policy.vehicles;
}
}
}
},
}, },
computed:{ computed:{
isCoverageEnabled(){ isCoverageEnabled(){
return this.mainStore.issConfig.isCoverageEnabled; return this.mainStore.issConfig.isCoverageEnabled;
} },
vehiclesCount(){
return this.vehiclesFound.length;
}
}, },
components: { components: {
siteHeader, siteHeader,

View file

@ -71,7 +71,7 @@ export default {
computed:{ computed:{
VehiclesForQuestions() { VehiclesForQuestions() {
// Map API result data, to address-vehicles data structure // Map API result data, to address-vehicles data structure
const vehicles = this.VehiclesFromApi?.[0].vehicles; const vehicles = this.VehiclesFromApi;
const mappedData = vehicles.map((v) => { const mappedData = vehicles.map((v) => {
const maskSymbol = "X"; const maskSymbol = "X";
const vinStart = maskSymbol.repeat(v.vin.length - 6); const vinStart = maskSymbol.repeat(v.vin.length - 6);