update unit tests for getFinalDeductible()
This commit is contained in:
parent
b7924b9ebc
commit
5489373e8c
1 changed files with 296 additions and 43 deletions
|
|
@ -1700,6 +1700,7 @@ describe('Store', () => {
|
|||
it('calls get final deductible api endpoint', () => {
|
||||
// Arrange
|
||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||
store.order.damage.glassToReplace = [getRandomString(10, 15)];
|
||||
|
||||
// Act
|
||||
store.getFinalDeductible();
|
||||
|
|
@ -1714,6 +1715,7 @@ describe('Store', () => {
|
|||
// Arrange
|
||||
const response = { deductible: getRandomInt(0, 5000) };
|
||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve(response));
|
||||
store.order.damage.glassToReplace = [getRandomString(10, 15)];
|
||||
|
||||
// Act
|
||||
const result = store.getFinalDeductible();
|
||||
|
|
@ -1723,19 +1725,48 @@ describe('Store', () => {
|
|||
});
|
||||
it('calls api with expected payload', () => {
|
||||
// Arrange
|
||||
const location = getRandomString(10, 15);
|
||||
store.order.damage.glassToReplace = [
|
||||
{
|
||||
glassLocation: location
|
||||
}
|
||||
];
|
||||
const referralCorrelationId = getRandomGuid();
|
||||
const referralNumber = getRandomString(6, 6);
|
||||
const accountNumber = getRandomString(6, 6);
|
||||
const currentDeductible = getRandomInt(0, 5000);
|
||||
const noCoverage = getRandomBoolean();
|
||||
const endorsements = [];
|
||||
const policy = {
|
||||
status: 'Active', // need to change this
|
||||
policyState: getRandomString(2, 2)
|
||||
const additionalInfo = {
|
||||
schoolProperty: '',
|
||||
parkingLot: ''
|
||||
};
|
||||
const insured = {
|
||||
address: {
|
||||
state: getRandomString(2, 2)
|
||||
}
|
||||
};
|
||||
const lossInfo = {
|
||||
vehicle: {
|
||||
endorsements: []
|
||||
},
|
||||
manualGlassNames: [location]
|
||||
};
|
||||
const policy = {
|
||||
policyState: insured.address.state,
|
||||
status: getRandomString(6, 8),
|
||||
currentDeductible: getRandomInt(0, 5000),
|
||||
noCoverage: getRandomBoolean()
|
||||
};
|
||||
const orderItems = [
|
||||
{
|
||||
name: location.toUpperCase()
|
||||
}
|
||||
];
|
||||
store.order.referralCorrelationId = referralCorrelationId;
|
||||
store.order.referralNumber = referralNumber;
|
||||
store.issConfig.parentAccountNumber = accountNumber;
|
||||
store.order.currentDeductible = currentDeductible;
|
||||
store.order.policy.noCoverage = noCoverage;
|
||||
store.order.currentDeductible = policy.currentDeductible;
|
||||
store.order.policy.noCoverage = policy.noCoverage;
|
||||
store.order.policy.status = policy.status;
|
||||
store.order.vehicle.registration.state = policy.policyState;
|
||||
store.order.customer.address.state = policy.policyState;
|
||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||
|
||||
// Act
|
||||
|
|
@ -1746,22 +1777,55 @@ describe('Store', () => {
|
|||
method: endpoints.FinalDeductible.method,
|
||||
endpoint: endpoints.FinalDeductible.url,
|
||||
payload: ({
|
||||
referralCorrelationId,
|
||||
referralNumber,
|
||||
accountNumber,
|
||||
currentDeductible,
|
||||
noCoverage,
|
||||
endorsements,
|
||||
additionalInfo: {
|
||||
schoolProperty: additionalInfo.schoolProperty,
|
||||
parkingLot: additionalInfo.parkingLot
|
||||
},
|
||||
insured: {
|
||||
address: {
|
||||
state: insured.address.state
|
||||
}
|
||||
},
|
||||
lossInfo: {
|
||||
vehicle: {
|
||||
endorsements: lossInfo.vehicle.endorsements
|
||||
},
|
||||
manualGlassNames: lossInfo.manualGlassNames
|
||||
},
|
||||
policy: {
|
||||
policyState: policy.policyState,
|
||||
status: policy.status,
|
||||
policyState: policy.policyState
|
||||
}
|
||||
currentDeductible: policy.currentDeductible,
|
||||
noCoverage: policy.noCoverage
|
||||
},
|
||||
orderItems
|
||||
})
|
||||
}));
|
||||
});
|
||||
it('only "Yes" endorsement answers are added to payload', () => {
|
||||
// Arrange
|
||||
store.order.damage.glassToReplace = [];
|
||||
const referralCorrelationId = getRandomGuid();
|
||||
const referralNumber = getRandomString(6, 6);
|
||||
const accountNumber = getRandomString(6, 6);
|
||||
const currentDeductible = getRandomInt(0, 5000);
|
||||
const noCoverage = getRandomBoolean();
|
||||
const additionalInfo = {
|
||||
schoolProperty: '',
|
||||
parkingLot: ''
|
||||
};
|
||||
const insured = {
|
||||
address: {
|
||||
state: getRandomString(2, 2)
|
||||
}
|
||||
};
|
||||
const lossInfo = {
|
||||
vehicle: {
|
||||
endorsements: []
|
||||
},
|
||||
manualGlassNames: []
|
||||
};
|
||||
const endorsementAnswers = [
|
||||
{
|
||||
questionNum: getRandomInt(1, 10),
|
||||
|
|
@ -1783,14 +1847,19 @@ describe('Store', () => {
|
|||
}
|
||||
];
|
||||
const policy = {
|
||||
status: 'Active', // need to change this
|
||||
policyState: getRandomString(2, 2)
|
||||
policyState: insured.address.state,
|
||||
status: getRandomString(6, 8),
|
||||
currentDeductible: getRandomInt(0, 5000),
|
||||
noCoverage: getRandomBoolean()
|
||||
};
|
||||
const orderItems = [];
|
||||
store.order.referralCorrelationId = referralCorrelationId;
|
||||
store.order.referralNumber = referralNumber;
|
||||
store.issConfig.parentAccountNumber = accountNumber;
|
||||
store.order.currentDeductible = currentDeductible;
|
||||
store.order.policy.noCoverage = noCoverage;
|
||||
store.order.currentDeductible = policy.currentDeductible;
|
||||
store.order.policy.noCoverage = policy.noCoverage;
|
||||
store.order.policy.status = policy.status;
|
||||
store.order.vehicle.registration.state = policy.policyState;
|
||||
store.order.customer.address.state = policy.policyState;
|
||||
store.order.policy.endorsementQuestionAnswers = endorsementAnswers;
|
||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||
|
||||
|
|
@ -1803,37 +1872,221 @@ describe('Store', () => {
|
|||
method: endpoints.FinalDeductible.method,
|
||||
endpoint: endpoints.FinalDeductible.url,
|
||||
payload: ({
|
||||
referralCorrelationId,
|
||||
referralNumber,
|
||||
accountNumber,
|
||||
currentDeductible,
|
||||
noCoverage,
|
||||
endorsements: expected,
|
||||
additionalInfo: {
|
||||
schoolProperty: additionalInfo.schoolProperty,
|
||||
parkingLot: additionalInfo.parkingLot
|
||||
},
|
||||
insured: {
|
||||
address: {
|
||||
state: insured.address.state
|
||||
}
|
||||
},
|
||||
lossInfo: {
|
||||
vehicle: {
|
||||
endorsements: expected
|
||||
},
|
||||
manualGlassNames: lossInfo.manualGlassNames
|
||||
},
|
||||
policy: {
|
||||
policyState: policy.policyState,
|
||||
status: policy.status,
|
||||
policyState: policy.policyState
|
||||
}
|
||||
currentDeductible: policy.currentDeductible,
|
||||
noCoverage: policy.noCoverage
|
||||
},
|
||||
orderItems
|
||||
})
|
||||
}));
|
||||
});
|
||||
it('additionalInfo is added to payload when both endorsements are present', () => {
|
||||
// Arrange
|
||||
store.order.damage.glassToReplace = [];
|
||||
const referralCorrelationId = getRandomGuid();
|
||||
const referralNumber = getRandomString(6, 6);
|
||||
const accountNumber = getRandomString(6, 6);
|
||||
const additionalInfo = {
|
||||
schoolProperty: 'Yes',
|
||||
parkingLot: 'Yes'
|
||||
};
|
||||
const insured = {
|
||||
address: {
|
||||
state: getRandomString(2, 2)
|
||||
}
|
||||
};
|
||||
const lossInfo = {
|
||||
vehicle: {
|
||||
endorsements: ['Parking Guard', 'Educator']
|
||||
},
|
||||
manualGlassNames: []
|
||||
};
|
||||
const endorsementAnswers = [
|
||||
{
|
||||
questionNum: getRandomInt(1, 10),
|
||||
endorsementName: 'Parking Guard',
|
||||
questionText: getRandomString(50, 100),
|
||||
selectedAnswer: 'Yes'
|
||||
},
|
||||
{
|
||||
questionNum: getRandomInt(1, 10),
|
||||
endorsementName: 'Educator',
|
||||
questionText: getRandomString(50, 100),
|
||||
selectedAnswer: 'Yes'
|
||||
}
|
||||
];
|
||||
const policy = {
|
||||
policyState: insured.address.state,
|
||||
status: getRandomString(6, 8),
|
||||
currentDeductible: getRandomInt(0, 5000),
|
||||
noCoverage: getRandomBoolean()
|
||||
};
|
||||
const orderItems = [];
|
||||
store.order.referralCorrelationId = referralCorrelationId;
|
||||
store.order.referralNumber = referralNumber;
|
||||
store.issConfig.parentAccountNumber = accountNumber;
|
||||
store.order.currentDeductible = policy.currentDeductible;
|
||||
store.order.policy.noCoverage = policy.noCoverage;
|
||||
store.order.policy.status = policy.status;
|
||||
store.order.customer.address.state = policy.policyState;
|
||||
store.order.policy.endorsementQuestionAnswers = endorsementAnswers;
|
||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||
|
||||
// Act
|
||||
store.getFinalDeductible();
|
||||
|
||||
// Assert
|
||||
const expected = [endorsementAnswers[0].endorsementName, endorsementAnswers[1].endorsementName];
|
||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(({
|
||||
method: endpoints.FinalDeductible.method,
|
||||
endpoint: endpoints.FinalDeductible.url,
|
||||
payload: ({
|
||||
referralCorrelationId,
|
||||
referralNumber,
|
||||
accountNumber,
|
||||
additionalInfo: {
|
||||
schoolProperty: additionalInfo.schoolProperty,
|
||||
parkingLot: additionalInfo.parkingLot
|
||||
},
|
||||
insured: {
|
||||
address: {
|
||||
state: insured.address.state
|
||||
}
|
||||
},
|
||||
lossInfo: {
|
||||
vehicle: {
|
||||
endorsements: expected
|
||||
},
|
||||
manualGlassNames: lossInfo.manualGlassNames
|
||||
},
|
||||
policy: {
|
||||
policyState: policy.policyState,
|
||||
status: policy.status,
|
||||
currentDeductible: policy.currentDeductible,
|
||||
noCoverage: policy.noCoverage
|
||||
},
|
||||
orderItems
|
||||
})
|
||||
}));
|
||||
});
|
||||
it('manualGlassNames and orderItems updated if Florida windshield repair', () => {
|
||||
// Arrange
|
||||
store.order.policy.endorsementQuestionAnswers = [];
|
||||
const referralCorrelationId = getRandomGuid();
|
||||
const referralNumber = getRandomString(6, 6);
|
||||
const accountNumber = getRandomString(6, 6);
|
||||
const additionalInfo = {
|
||||
schoolProperty: '',
|
||||
parkingLot: ''
|
||||
};
|
||||
const insured = {
|
||||
address: {
|
||||
state: 'FL'
|
||||
}
|
||||
};
|
||||
const lossInfo = {
|
||||
vehicle: {
|
||||
endorsements: []
|
||||
},
|
||||
manualGlassNames: ['Windshield']
|
||||
};
|
||||
const policy = {
|
||||
policyState: insured.address.state,
|
||||
status: getRandomString(6, 8),
|
||||
currentDeductible: getRandomInt(0, 5000),
|
||||
noCoverage: getRandomBoolean()
|
||||
};
|
||||
const orderItems = [
|
||||
{
|
||||
name: 'WINDSHIELD'
|
||||
}
|
||||
];
|
||||
store.order.referralCorrelationId = referralCorrelationId;
|
||||
store.order.referralNumber = referralNumber;
|
||||
store.issConfig.parentAccountNumber = accountNumber;
|
||||
store.order.currentDeductible = policy.currentDeductible;
|
||||
store.order.policy.noCoverage = policy.noCoverage;
|
||||
store.order.policy.status = policy.status;
|
||||
store.order.customer.address.state = policy.policyState;
|
||||
store.order.damage.isRepair = true;
|
||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({}));
|
||||
|
||||
// Act
|
||||
store.getFinalDeductible();
|
||||
|
||||
// Assert
|
||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(({
|
||||
method: endpoints.FinalDeductible.method,
|
||||
endpoint: endpoints.FinalDeductible.url,
|
||||
payload: ({
|
||||
referralCorrelationId,
|
||||
referralNumber,
|
||||
accountNumber,
|
||||
additionalInfo: {
|
||||
schoolProperty: additionalInfo.schoolProperty,
|
||||
parkingLot: additionalInfo.parkingLot
|
||||
},
|
||||
insured: {
|
||||
address: {
|
||||
state: insured.address.state
|
||||
}
|
||||
},
|
||||
lossInfo: {
|
||||
vehicle: {
|
||||
endorsements: lossInfo.vehicle.endorsements
|
||||
},
|
||||
manualGlassNames: lossInfo.manualGlassNames
|
||||
},
|
||||
policy: {
|
||||
policyState: policy.policyState,
|
||||
status: policy.status,
|
||||
currentDeductible: policy.currentDeductible,
|
||||
noCoverage: policy.noCoverage
|
||||
},
|
||||
orderItems
|
||||
})
|
||||
}));
|
||||
});
|
||||
});
|
||||
describe('unsuccessful api call', () => {
|
||||
it('api call throws exception', async () => {
|
||||
// Arrange
|
||||
expect.assertions(2);
|
||||
const error = 'final deductible error';
|
||||
globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
||||
// describe('unsuccessful api call', () => {
|
||||
// it('api call throws exception', async () => {
|
||||
// // Arrange
|
||||
// expect.assertions(2);
|
||||
// const error = 'final deductible error';
|
||||
// globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.reject(error));
|
||||
|
||||
// Act
|
||||
await store.getFinalDeductible().catch((e) => {
|
||||
expect(e).toEqual(error);
|
||||
});
|
||||
// // Act
|
||||
// await store.getFinalDeductible().catch((e) => {
|
||||
// expect(e).toEqual(error);
|
||||
// });
|
||||
|
||||
// Assert
|
||||
expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||
method: endpoints.FinalDeductible.method,
|
||||
endpoint: endpoints.FinalDeductible.url
|
||||
}));
|
||||
});
|
||||
});
|
||||
// // Assert
|
||||
// expect(globalMethods.callHttpClient).toHaveBeenCalledWith(expect.objectContaining({
|
||||
// method: endpoints.FinalDeductible.method,
|
||||
// endpoint: endpoints.FinalDeductible.url
|
||||
// }));
|
||||
// });
|
||||
// });
|
||||
});
|
||||
|
||||
describe('updateDeductible method', () => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue