Adding new tests for getCoveragePolicyInfo
This commit is contained in:
parent
44a6ac5bca
commit
e0d4f577b7
2 changed files with 338 additions and 157 deletions
|
|
@ -387,37 +387,38 @@ export const useMainStore = defineStore({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getCoveragePolicyInfo() {
|
getCoveragePolicyInfo() {
|
||||||
const { policy } = this.order;
|
const { order } = this;
|
||||||
|
const { policy } = order;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
globalMethods.callHttpClient({
|
globalMethods.callHttpClient({
|
||||||
method: endpoints.CoveragePolicyInfo.method,
|
method: endpoints.CoveragePolicyInfo.method,
|
||||||
endpoint: endpoints.CoveragePolicyInfo.url,
|
endpoint: endpoints.CoveragePolicyInfo.url,
|
||||||
payload: {
|
payload: {
|
||||||
accountNumber: this.order.accountNumber.toString(),
|
accountNumber: order.accountNumber?.toString(),
|
||||||
policyNumber: policy.policyNumber,
|
policyNumber: policy.policyNumber,
|
||||||
dateOfLoss: policy.dateOfLoss,
|
dateOfLoss: policy.dateOfLoss,
|
||||||
zipCode: policy.policyZipCode,
|
zipCode: policy.policyZipCode,
|
||||||
correlationId: this.order.referralCorrelationId
|
correlationId: order.referralCorrelationId
|
||||||
}
|
}
|
||||||
}).then((r) => {
|
}).then((r) => {
|
||||||
const responsePolicy = r.data.policies?.[0];
|
const responsePolicy = r?.data?.policies?.[0];
|
||||||
policy.policyLookupSuccessful = !!responsePolicy;
|
policy.policyLookupSuccessful = !!responsePolicy;
|
||||||
if (policy.policyLookupSuccessful) {
|
if (policy.policyLookupSuccessful) {
|
||||||
const insured = responsePolicy?.insureds?.[0];
|
const insured = responsePolicy.insureds?.[0];
|
||||||
|
|
||||||
// populate policy holder details from policy lookup
|
// populate policy holder details from policy lookup
|
||||||
this.order.customer.address.streetAddress = insured?.address;
|
order.customer.address.streetAddress = insured?.address;
|
||||||
this.order.customer.address.city = insured?.city;
|
order.customer.address.city = insured?.city;
|
||||||
this.order.customer.address.state = insured?.state;
|
order.customer.address.state = insured?.state;
|
||||||
this.order.customer.address.zipCode = insured?.zipCode;
|
order.customer.address.zipCode = insured?.zipCode;
|
||||||
this.order.customer.firstName = insured?.firstName;
|
order.customer.firstName = insured?.firstName;
|
||||||
this.order.customer.lastName = insured?.lastName;
|
order.customer.lastName = insured?.lastName;
|
||||||
|
|
||||||
// populate additional fields
|
// populate additional fields
|
||||||
this.order.serviceLocation.zipCode = insured?.zipCode;
|
order.serviceLocation.zipCode = insured?.zipCode;
|
||||||
|
|
||||||
// populate vehicles
|
// populate vehicles
|
||||||
this.order.policy.vehicles = responsePolicy?.vehicles ?? [];
|
order.policy.vehicles = responsePolicy.vehicles ?? [];
|
||||||
}
|
}
|
||||||
return resolve(r);
|
return resolve(r);
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
|
|
@ -921,121 +922,122 @@ export const useMainStore = defineStore({
|
||||||
const { vehicle, damage, policy, customer, contactInfo, payment,
|
const { vehicle, damage, policy, customer, contactInfo, payment,
|
||||||
lineItems, serviceLocation, schedule } = this.order;
|
lineItems, serviceLocation, schedule } = this.order;
|
||||||
const newGlassToReplace = convertGlassPieceNamingForApi(damage.glassToReplace);
|
const newGlassToReplace = convertGlassPieceNamingForApi(damage.glassToReplace);
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
return globalMethods.callHttpClient({
|
globalMethods.callHttpClient({
|
||||||
method: endpoints.SaveSession.method,
|
method: endpoints.SaveSession.method,
|
||||||
endpoint: endpoints.SaveSession.url,
|
endpoint: endpoints.SaveSession.url,
|
||||||
payload: {
|
payload: {
|
||||||
applicationUser: {
|
applicationUser: {
|
||||||
crmCustomerId: this.applicationUser.crmCustomerId,
|
crmCustomerId: this.applicationUser.crmCustomerId,
|
||||||
experiments: this.applicationUser.experiments,
|
experiments: this.applicationUser.experiments,
|
||||||
lastPage: this.applicationUser.lastPageVisited,
|
lastPage: this.applicationUser.lastPageVisited,
|
||||||
pageData: this.applicationUser.pageData,
|
pageData: this.applicationUser.pageData,
|
||||||
savedSessionId: this.applicationUser.savedSessionId
|
savedSessionId: this.applicationUser.savedSessionId
|
||||||
},
|
|
||||||
vehicle: {
|
|
||||||
year: vehicle.year,
|
|
||||||
make: vehicle.make,
|
|
||||||
model: vehicle.model,
|
|
||||||
style: vehicle.style,
|
|
||||||
vin: vehicle.vin,
|
|
||||||
carId: vehicle.carId,
|
|
||||||
licensePlateNumber: vehicle.registration?.licensePlate
|
|
||||||
},
|
|
||||||
damage: {
|
|
||||||
numberOfChips: damage.numberOfChips,
|
|
||||||
glassToReplace: newGlassToReplace,
|
|
||||||
isRepair: damage.isRepair,
|
|
||||||
partQuestionAnswers: damage.partQuestionAnswers,
|
|
||||||
moldingQuestionAnswers: damage.moldingQuestionAnswers,
|
|
||||||
capabilityQuestionAnswers: damage.capabilityQuestionAnswers,
|
|
||||||
dateOfLoss: policy.dateOfLoss,
|
|
||||||
damageCause: policy.damageCause,
|
|
||||||
damageState: policy.damageState,
|
|
||||||
damageCity: policy.damageCity,
|
|
||||||
isDamageGlassOnly: policy.isDamageGlassOnly
|
|
||||||
},
|
|
||||||
policy: {
|
|
||||||
policyHolder: {
|
|
||||||
policyFirstName: customer.firstName,
|
|
||||||
policyLastName: customer.lastName,
|
|
||||||
policyPhoneNumber: customer.phoneNumber,
|
|
||||||
policyEmail: customer.emailAddress,
|
|
||||||
policyState: customer.address.state
|
|
||||||
},
|
},
|
||||||
policyNumber: policy.policyNumber,
|
vehicle: {
|
||||||
policyZipCode: policy.policyZipCode,
|
year: vehicle.year,
|
||||||
noCoverage: policy.noCoverage,
|
make: vehicle.make,
|
||||||
policyLookupSuccessful: policy.policyLookupSuccessful,
|
model: vehicle.model,
|
||||||
originalDeductible: this.order.originalDeductible,
|
style: vehicle.style,
|
||||||
currentDeductible: this.order.currentDeductible
|
vin: vehicle.vin,
|
||||||
},
|
carId: vehicle.carId,
|
||||||
customer: {
|
licensePlateNumber: vehicle.registration?.licensePlate
|
||||||
address: {
|
|
||||||
streetAddress: customer.address?.streetAddress,
|
|
||||||
streetAddress2: customer.address?.streetAddress2,
|
|
||||||
city: customer.address?.city,
|
|
||||||
state: customer.address?.state,
|
|
||||||
zipCode: customer.address?.zipCode
|
|
||||||
},
|
},
|
||||||
emailAddress: contactInfo.emailAddress,
|
damage: {
|
||||||
firstName: contactInfo.firstName || customer.firstName,
|
numberOfChips: damage.numberOfChips,
|
||||||
lastName: contactInfo.lastName || customer.lastName,
|
glassToReplace: newGlassToReplace,
|
||||||
phoneNumber: contactInfo.phoneNumber,
|
isRepair: damage.isRepair,
|
||||||
optInSms: contactInfo.requestTextUpdates ?? false
|
partQuestionAnswers: damage.partQuestionAnswers,
|
||||||
},
|
moldingQuestionAnswers: damage.moldingQuestionAnswers,
|
||||||
lineItems: {
|
capabilityQuestionAnswers: damage.capabilityQuestionAnswers,
|
||||||
glassParts: lineItems.glassParts,
|
dateOfLoss: policy.dateOfLoss,
|
||||||
supportingItems: lineItems.supportingItems,
|
damageCause: policy.damageCause,
|
||||||
vaps: lineItems.vaps
|
damageState: policy.damageState,
|
||||||
},
|
damageCity: policy.damageCity,
|
||||||
payment: {
|
isDamageGlassOnly: policy.isDamageGlassOnly
|
||||||
InsuranceCoverage: {
|
|
||||||
isVerified: payment.insuranceCoverage?.isVerified ?? false,
|
|
||||||
coverageStatus: payment.insuranceCoverage?.coverageStatus,
|
|
||||||
claimNumber: payment.insuranceCoverage?.claimNumber
|
|
||||||
},
|
},
|
||||||
isInsurance: payment.isInsurance ?? true,
|
policy: {
|
||||||
parentAccountNumber: this.issConfig.parentAccountNumber
|
policyHolder: {
|
||||||
},
|
policyFirstName: customer.firstName,
|
||||||
serviceLocation: {
|
policyLastName: customer.lastName,
|
||||||
address: {
|
policyPhoneNumber: customer.phoneNumber,
|
||||||
streetAddress: serviceLocation.address,
|
policyEmail: customer.emailAddress,
|
||||||
city: serviceLocation.city,
|
policyState: customer.address.state
|
||||||
state: serviceLocation.state,
|
},
|
||||||
zipCode: serviceLocation.zipCode,
|
policyNumber: policy.policyNumber,
|
||||||
zipCodeCtu: serviceLocation.zipCodeCtu
|
policyZipCode: policy.policyZipCode,
|
||||||
|
noCoverage: policy.noCoverage,
|
||||||
|
policyLookupSuccessful: policy.policyLookupSuccessful,
|
||||||
|
originalDeductible: this.order.originalDeductible,
|
||||||
|
currentDeductible: this.order.currentDeductible
|
||||||
},
|
},
|
||||||
appointmentType: serviceLocation.appointmentType,
|
customer: {
|
||||||
isVehicleProtected: serviceLocation.isVehicleProtected,
|
|
||||||
provider: {
|
|
||||||
providerNumber: serviceLocation.provider?.providerNumber,
|
|
||||||
address: {
|
address: {
|
||||||
streetAddress: serviceLocation.provider?.address?.streetAddress,
|
streetAddress: customer.address?.streetAddress,
|
||||||
city: serviceLocation.provider?.address?.city,
|
streetAddress2: customer.address?.streetAddress2,
|
||||||
state: serviceLocation.provider?.address?.state,
|
city: customer.address?.city,
|
||||||
zipCode: serviceLocation.provider?.address?.zipCode,
|
state: customer.address?.state,
|
||||||
zipCodeCtu: serviceLocation.provider?.address?.zipCodeCtu
|
zipCode: customer.address?.zipCode
|
||||||
}
|
},
|
||||||
|
emailAddress: contactInfo.emailAddress,
|
||||||
|
firstName: contactInfo.firstName || customer.firstName,
|
||||||
|
lastName: contactInfo.lastName || customer.lastName,
|
||||||
|
phoneNumber: contactInfo.phoneNumber,
|
||||||
|
optInSms: contactInfo.requestTextUpdates ?? false
|
||||||
},
|
},
|
||||||
techNotes: contactInfo.notesForTechnician
|
lineItems: {
|
||||||
|
glassParts: lineItems.glassParts,
|
||||||
|
supportingItems: lineItems.supportingItems,
|
||||||
|
vaps: lineItems.vaps
|
||||||
|
},
|
||||||
|
payment: {
|
||||||
|
InsuranceCoverage: {
|
||||||
|
isVerified: payment.insuranceCoverage?.isVerified ?? false,
|
||||||
|
coverageStatus: payment.insuranceCoverage?.coverageStatus,
|
||||||
|
claimNumber: payment.insuranceCoverage?.claimNumber
|
||||||
|
},
|
||||||
|
isInsurance: payment.isInsurance ?? true,
|
||||||
|
parentAccountNumber: this.issConfig.parentAccountNumber
|
||||||
|
},
|
||||||
|
serviceLocation: {
|
||||||
|
address: {
|
||||||
|
streetAddress: serviceLocation.address,
|
||||||
|
city: serviceLocation.city,
|
||||||
|
state: serviceLocation.state,
|
||||||
|
zipCode: serviceLocation.zipCode,
|
||||||
|
zipCodeCtu: serviceLocation.zipCodeCtu
|
||||||
|
},
|
||||||
|
appointmentType: serviceLocation.appointmentType,
|
||||||
|
isVehicleProtected: serviceLocation.isVehicleProtected,
|
||||||
|
provider: {
|
||||||
|
providerNumber: serviceLocation.provider?.providerNumber,
|
||||||
|
address: {
|
||||||
|
streetAddress: serviceLocation.provider?.address?.streetAddress,
|
||||||
|
city: serviceLocation.provider?.address?.city,
|
||||||
|
state: serviceLocation.provider?.address?.state,
|
||||||
|
zipCode: serviceLocation.provider?.address?.zipCode,
|
||||||
|
zipCodeCtu: serviceLocation.provider?.address?.zipCodeCtu
|
||||||
|
}
|
||||||
|
},
|
||||||
|
techNotes: contactInfo.notesForTechnician
|
||||||
|
},
|
||||||
|
schedule: {
|
||||||
|
date: schedule.date,
|
||||||
|
startTime: schedule.startTime,
|
||||||
|
endTime: schedule.endTime,
|
||||||
|
routeCode: schedule.routeCode,
|
||||||
|
jobMaxMinutes: schedule.jobMaxMinutes,
|
||||||
|
jobMinMinutes: schedule.jobMinMinutes
|
||||||
|
},
|
||||||
|
referralDate: this.order.referralDate,
|
||||||
|
referralNumber: this.order.referralNumber?.toString(),
|
||||||
|
referralCorrelationId: this.order.referralCorrelationId,
|
||||||
|
referralSequenceNumber: this.order.referralSequenceNumber,
|
||||||
|
eon: this.order.eon
|
||||||
},
|
},
|
||||||
schedule: {
|
additionalSuccessEventDataHandler: (response) =>
|
||||||
date: schedule.date,
|
`Email provided: ${customer.emailAddress ? 'true' : 'false'}`
|
||||||
startTime: schedule.startTime,
|
}).then((response) => resolve(response), (error) => reject(error));
|
||||||
endTime: schedule.endTime,
|
|
||||||
routeCode: schedule.routeCode,
|
|
||||||
jobMaxMinutes: schedule.jobMaxMinutes,
|
|
||||||
jobMinMinutes: schedule.jobMinMinutes
|
|
||||||
},
|
|
||||||
referralDate: this.order.referralDate,
|
|
||||||
referralNumber: this.order.referralNumber?.toString(),
|
|
||||||
referralCorrelationId: this.order.referralCorrelationId,
|
|
||||||
referralSequenceNumber: this.order.referralSequenceNumber,
|
|
||||||
eon: this.order.eon
|
|
||||||
},
|
|
||||||
additionalSuccessEventDataHandler: (response) =>
|
|
||||||
`Email provided: ${customer.emailAddress ? 'true' : 'false'}`
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -1159,7 +1161,6 @@ export const useMainStore = defineStore({
|
||||||
// TODO order.workOrderNumber not set, but this likely is not an issue since WON => will not return
|
// TODO order.workOrderNumber not set, but this likely is not an issue since WON => will not return
|
||||||
return resolve(result);
|
return resolve(result);
|
||||||
}, (error) => {
|
}, (error) => {
|
||||||
console.log(error);
|
|
||||||
reject(error);
|
reject(error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -1987,14 +1988,16 @@ function sortArrayOfObjectsByPropertyValue(arrayOfObjects, propertyName) {
|
||||||
|
|
||||||
function convertGlassPieceNamingForApi(glassArray) {
|
function convertGlassPieceNamingForApi(glassArray) {
|
||||||
// check if array already converted. (likely when a session has been saved previously and then reloaded)
|
// check if array already converted. (likely when a session has been saved previously and then reloaded)
|
||||||
|
if (glassArray == null || glassArray.length === 0) return [];
|
||||||
|
|
||||||
if (glassArray[0].location !== undefined) {
|
if (glassArray[0].location !== undefined) {
|
||||||
return glassArray;
|
return glassArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
return glassArray?.map((glass) => new {
|
return glassArray.map((glass) => ({
|
||||||
location: glass.glassLocation,
|
location: glass?.glassLocation,
|
||||||
name: glass.glassName
|
name: glass?.glassName
|
||||||
}()) ?? [];
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
function convertResultsForApi(resultsArray) {
|
function convertResultsForApi(resultsArray) {
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ describe('Store', () => {
|
||||||
let store;
|
let store;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
console.log('HI');
|
|
||||||
const pinia = createPinia();
|
const pinia = createPinia();
|
||||||
setActivePinia(pinia);
|
setActivePinia(pinia);
|
||||||
store = useMainStore();
|
store = useMainStore();
|
||||||
|
|
@ -432,7 +431,7 @@ describe('Store', () => {
|
||||||
it('Call to client returns exception, resulting in object with error property being returned', async () => {
|
it('Call to client returns exception, resulting in object with error property being returned', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
expect.assertions(5);
|
expect.assertions(5);
|
||||||
const error = 'this is the error';
|
const error = 'register claim error';
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -490,12 +489,12 @@ describe('Store', () => {
|
||||||
|
|
||||||
describe('saveSession method', () => {
|
describe('saveSession method', () => {
|
||||||
describe('successful method call', () => {
|
describe('successful method call', () => {
|
||||||
it('calls save session api endpoint', () => {
|
it('calls save session api endpoint', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Asserts
|
// Asserts
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -514,7 +513,7 @@ describe('Store', () => {
|
||||||
// Asserts
|
// Asserts
|
||||||
await expect(result).resolves.toBe(response);
|
await expect(result).resolves.toBe(response);
|
||||||
});
|
});
|
||||||
it('calls api with expected application user data', () => {
|
it('calls api with expected application user data', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const crmCustomerId = getRandomString(6, 6);
|
const crmCustomerId = getRandomString(6, 6);
|
||||||
const experiments = getRandomString(6, 6);
|
const experiments = getRandomString(6, 6);
|
||||||
|
|
@ -529,7 +528,7 @@ describe('Store', () => {
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Asserts
|
// Asserts
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -544,7 +543,7 @@ describe('Store', () => {
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
it('calls api with expected vehicle', () => {
|
it('calls api with expected vehicle', async () => {
|
||||||
const year = getRandomString(6, 6);
|
const year = getRandomString(6, 6);
|
||||||
const make = getRandomString(6, 6);
|
const make = getRandomString(6, 6);
|
||||||
const model = getRandomString(6, 6);
|
const model = getRandomString(6, 6);
|
||||||
|
|
@ -562,7 +561,7 @@ describe('Store', () => {
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Asserts
|
// Asserts
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -579,7 +578,7 @@ describe('Store', () => {
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
it('calls api with expected damage', () => {
|
it('calls api with expected damage', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const isRepair = getRandomString(6, 6);
|
const isRepair = getRandomString(6, 6);
|
||||||
const numberOfChips = getRandomString(6, 6);
|
const numberOfChips = getRandomString(6, 6);
|
||||||
|
|
@ -604,7 +603,7 @@ describe('Store', () => {
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -624,7 +623,7 @@ describe('Store', () => {
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
it('calls api with expected policy', () => {
|
it('calls api with expected policy', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const customerFirstName = getRandomString(6, 6);
|
const customerFirstName = getRandomString(6, 6);
|
||||||
const customerLastName = getRandomString(6, 6);
|
const customerLastName = getRandomString(6, 6);
|
||||||
|
|
@ -651,7 +650,7 @@ describe('Store', () => {
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Asserts
|
// Asserts
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -674,7 +673,7 @@ describe('Store', () => {
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
it('calls api with expected customer', () => {
|
it('calls api with expected customer', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const streetAddress = getRandomString(6, 6);
|
const streetAddress = getRandomString(6, 6);
|
||||||
const streetAddress2 = getRandomString(6, 6);
|
const streetAddress2 = getRandomString(6, 6);
|
||||||
|
|
@ -700,7 +699,7 @@ describe('Store', () => {
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -722,7 +721,7 @@ describe('Store', () => {
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
it('calls api with expected lineItems', () => {
|
it('calls api with expected lineItems', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const glassParts = getRandomString(6, 6);
|
const glassParts = getRandomString(6, 6);
|
||||||
const supportingItems = getRandomString(6, 6);
|
const supportingItems = getRandomString(6, 6);
|
||||||
|
|
@ -734,7 +733,7 @@ describe('Store', () => {
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -751,7 +750,7 @@ describe('Store', () => {
|
||||||
[coverageStatuses.PENDING],
|
[coverageStatuses.PENDING],
|
||||||
[coverageStatuses.NO_COMP],
|
[coverageStatuses.NO_COMP],
|
||||||
[coverageStatuses.VERIFIED]
|
[coverageStatuses.VERIFIED]
|
||||||
])('calls api with expected payment', (coverageStatus) => {
|
])('calls api with expected payment', async (coverageStatus) => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const parentAccountNumber = getRandomString(6, 6);
|
const parentAccountNumber = getRandomString(6, 6);
|
||||||
const isInsurance = getRandomBoolean();
|
const isInsurance = getRandomBoolean();
|
||||||
|
|
@ -763,7 +762,7 @@ describe('Store', () => {
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -779,7 +778,7 @@ describe('Store', () => {
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
it('calls api with expected service location', () => {
|
it('calls api with expected service location', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const notesForTechnician = getRandomString(6, 6);
|
const notesForTechnician = getRandomString(6, 6);
|
||||||
const address = getRandomString(6, 6);
|
const address = getRandomString(6, 6);
|
||||||
|
|
@ -797,7 +796,7 @@ describe('Store', () => {
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -815,7 +814,7 @@ describe('Store', () => {
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
it('calls api with expected schedule', () => {
|
it('calls api with expected schedule', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const date = getRandomString(6, 6);
|
const date = getRandomString(6, 6);
|
||||||
const startTime = getRandomString(6, 6);
|
const startTime = getRandomString(6, 6);
|
||||||
|
|
@ -833,7 +832,7 @@ describe('Store', () => {
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -849,28 +848,28 @@ describe('Store', () => {
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
it('calls api with expected referral date', () => {
|
it('calls api with expected referral date', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const referralDate = getRandomString(6, 6);
|
const referralDate = getRandomString(6, 6);
|
||||||
store.order.referralDate = referralDate;
|
store.order.referralDate = referralDate;
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
payload: expect.objectContaining({ referralDate })
|
payload: expect.objectContaining({ referralDate })
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
it('calls api with expected referral number', () => {
|
it('calls api with expected referral number', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const referralNumber = getRandomString(6, 6);
|
const referralNumber = getRandomString(6, 6);
|
||||||
store.order.referralNumber = referralNumber;
|
store.order.referralNumber = referralNumber;
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
store.saveSession();
|
await store.saveSession();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
|
@ -938,7 +937,7 @@ describe('Store', () => {
|
||||||
});
|
});
|
||||||
it('api call throws exception', async () => {
|
it('api call throws exception', async () => {
|
||||||
expect.assertions(2);
|
expect.assertions(2);
|
||||||
const error = 'this is the error';
|
const error = 'save session error';
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -954,7 +953,7 @@ describe('Store', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe.only('loadSession method', () => {
|
describe('loadSession method', () => {
|
||||||
describe('successful method call', () => {
|
describe('successful method call', () => {
|
||||||
const applicationUser = {
|
const applicationUser = {
|
||||||
crmCustomerId: getRandomString(6, 6),
|
crmCustomerId: getRandomString(6, 6),
|
||||||
|
|
@ -1329,7 +1328,7 @@ describe('Store', () => {
|
||||||
});
|
});
|
||||||
it('api call throws exception', async () => {
|
it('api call throws exception', async () => {
|
||||||
expect.assertions(2);
|
expect.assertions(2);
|
||||||
const error = 'this is the error';
|
const error = 'load session error';
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -1347,7 +1346,186 @@ describe('Store', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getCoveragePolicyInfo method', () => {
|
describe('getCoveragePolicyInfo method', () => {
|
||||||
// TODO add tests
|
describe('successful method call', () => {
|
||||||
|
it('calls getCoveragePolicyInfo api endpoint', async () => {
|
||||||
|
// Arrange
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.getCoveragePolicyInfo();
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
method: endpoints.CoveragePolicyInfo.method,
|
||||||
|
endpoint: endpoints.CoveragePolicyInfo.url
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
it('Returns expected response object', async () => {
|
||||||
|
// Arrange
|
||||||
|
const response = { ReferralNumber: getRandomString(6, 6) };
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
const result = store.getCoveragePolicyInfo();
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
await expect(result).resolves.toBe(response);
|
||||||
|
});
|
||||||
|
it('calls api with expected data', async () => {
|
||||||
|
// Arrange
|
||||||
|
const accountNumber = getRandomString(6, 6);
|
||||||
|
const policyNumber = getRandomString(6, 6);
|
||||||
|
const dateOfLoss = getRandomString(6, 6);
|
||||||
|
const zipCode = getRandomString(6, 6);
|
||||||
|
const correlationId = getRandomString(6, 6);
|
||||||
|
store.order.accountNumber = accountNumber;
|
||||||
|
store.order.policy.policyNumber = policyNumber;
|
||||||
|
store.order.policy.dateOfLoss = dateOfLoss;
|
||||||
|
store.order.policy.policyZipCode = zipCode;
|
||||||
|
store.order.referralCorrelationId = correlationId;
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.getCoveragePolicyInfo();
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
payload: expect.objectContaining({
|
||||||
|
accountNumber,
|
||||||
|
policyNumber,
|
||||||
|
dateOfLoss,
|
||||||
|
zipCode,
|
||||||
|
correlationId
|
||||||
|
})
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
it('null response by api => policyLookupSuccessful false', async () => {
|
||||||
|
// Arrange
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(null));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.getCoveragePolicyInfo();
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
expect(store.order.policy.policyLookupSuccessful).toBe(false);
|
||||||
|
});
|
||||||
|
it('no policies returned by api => policyLookupSuccessful false', async () => {
|
||||||
|
// Arrange
|
||||||
|
const responseNoPolicies = {
|
||||||
|
data: {
|
||||||
|
policies: []
|
||||||
|
}
|
||||||
|
};
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(responseNoPolicies));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.getCoveragePolicyInfo();
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
expect(store.order.policy.policyLookupSuccessful).toBe(false);
|
||||||
|
});
|
||||||
|
it('multiple policies returned by api => data set based on first policy returned', async () => {
|
||||||
|
// Arrange
|
||||||
|
const insured = {
|
||||||
|
address: getRandomString(6, 6),
|
||||||
|
firstName: getRandomString(6, 6),
|
||||||
|
lastName: getRandomString(6, 6),
|
||||||
|
city: getRandomString(6, 6),
|
||||||
|
state: getRandomString(6, 6),
|
||||||
|
zipCode: getRandomString(6, 6)
|
||||||
|
};
|
||||||
|
const vehicles = [
|
||||||
|
{ name: getRandomString(6, 6) },
|
||||||
|
{ name: getRandomString(6, 6) }
|
||||||
|
];
|
||||||
|
const policy1 = {
|
||||||
|
insureds: [insured],
|
||||||
|
vehicles
|
||||||
|
};
|
||||||
|
const responseNoPolicies = {
|
||||||
|
data: {
|
||||||
|
policies: [policy1, {}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(responseNoPolicies));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.getCoveragePolicyInfo();
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
expect(store.order.policy.policyLookupSuccessful).toBe(true);
|
||||||
|
|
||||||
|
expect(store.order.customer.address.streetAddress).toBe(insured.address);
|
||||||
|
expect(store.order.customer.address.city).toBe(insured.city);
|
||||||
|
expect(store.order.customer.address.state).toBe(insured.state);
|
||||||
|
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.serviceLocation.zipCode).toBe(insured.zipCode);
|
||||||
|
expect(store.order.policy.vehicles).toEqual(vehicles);
|
||||||
|
});
|
||||||
|
it('multiple insureds on first policy returned by api => data set based on first insured in first policy', async () => {
|
||||||
|
// Arrange
|
||||||
|
const insured1 = {
|
||||||
|
address: getRandomString(6, 6),
|
||||||
|
firstName: getRandomString(6, 6),
|
||||||
|
lastName: getRandomString(6, 6),
|
||||||
|
city: getRandomString(6, 6),
|
||||||
|
state: getRandomString(6, 6),
|
||||||
|
zipCode: getRandomString(6, 6)
|
||||||
|
};
|
||||||
|
const responseNoPolicies = {
|
||||||
|
data: {
|
||||||
|
policies: [{
|
||||||
|
insureds: [insured1, { address: getRandomString(6, 6) }]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(responseNoPolicies));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.getCoveragePolicyInfo();
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
expect(store.order.policy.policyLookupSuccessful).toBe(true);
|
||||||
|
expect(store.order.customer.address.streetAddress).toBe(insured1.address);
|
||||||
|
});
|
||||||
|
it('no policy vehicles on first policy => order.policy.vehicles empty list', async () => {
|
||||||
|
// Arrange
|
||||||
|
const responseNoPolicies = {
|
||||||
|
data: {
|
||||||
|
policies: [{ vehicles: [] }]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(responseNoPolicies));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.getCoveragePolicyInfo();
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
expect(store.order.policy.policyLookupSuccessful).toBe(true);
|
||||||
|
expect(store.order.policy.vehicles).toEqual([]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
it('api call throws exception => policyLookupSuccessful false', async () => {
|
||||||
|
expect.assertions(3);
|
||||||
|
const error = 'get coverage policy info error';
|
||||||
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await store.getCoveragePolicyInfo().catch((e) => {
|
||||||
|
expect(e).toEqual(error);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Asserts
|
||||||
|
expect(globalMethods.callHttpClient)
|
||||||
|
.toHaveBeenCalledWith(expect.objectContaining({
|
||||||
|
method: endpoints.CoveragePolicyInfo.method,
|
||||||
|
endpoint: endpoints.CoveragePolicyInfo.url
|
||||||
|
}));
|
||||||
|
expect(store.order.policy.policyLookupSuccessful).toBe(false);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('saveEndorsementQuestionAnswers method', () => {
|
describe('saveEndorsementQuestionAnswers method', () => {
|
||||||
|
|
@ -1404,7 +1582,7 @@ describe('Store', () => {
|
||||||
it('Call to client returns exception => object with error property returned and duplicateReferrals set to []', async () => {
|
it('Call to client returns exception => object with error property returned and duplicateReferrals set to []', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
expect.assertions(3);
|
expect.assertions(3);
|
||||||
const error = 'this is the error';
|
const error = 'get duplicate referrals error';
|
||||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue