CSR-514 Add tests

This commit is contained in:
Katie 2022-08-11 09:27:38 -04:00
parent c79f81a344
commit e592f55a67
3 changed files with 354 additions and 3 deletions

View file

@ -18,6 +18,7 @@ const storeMutations = {
UPDATE_GLASS_TO_REPLACE: "updateGlassToReplace",
UPDATE_PART_QUESTION_ANSWERS: "updatePartQuestionAnswers",
UPDATE_GLASS_PARTS: "updateGlassParts",
UPDATE_OTHER_PARTS: "updateOtherParts",
UPDATE_REGISTRATION_LICENSE_PLATE : "updateRegistrationLicensePlate",
UPDATE_REGISTRATION_ADDRESS: "updateRegistrationAddress",

View file

@ -129,6 +129,9 @@ export const mutations = {
updateGlassParts(state, partsData) {
state.order.lineItems.glassParts = partsData;
},
updateOtherParts(state, partsData) {
state.order.lineItems.otherParts = partsData;
},
updatePageData(state, pageData) {
state.applicationUser.pageData[pageData.page] = pageData.data;
},
@ -379,7 +382,7 @@ export const getters = {
isCoverageVerified: state.order.payment.insuranceCoverage.isVerified,
orderPartNumbers: [...getAllValuesOfPropertyInArrayOfObjects(state.order.lineItems.glassParts, "partNumber"), ...getAllValuesOfPropertyInArrayOfObjects(state.order.lineItems.otherParts, "partNumber")],
orderPartTypes: [...getAllValuesOfPropertyInArrayOfObjects(state.order.lineItems.glassParts, "recalibrationType"), ...getAllValuesOfPropertyInArrayOfObjects(state.order.lineItems.otherParts, "recalibrationType")],
hasRecalibrationPart: (state.order.lineItems.glassParts ?? []).filter(x => x.requiresRecalibration)?.length > 0,
hasRecalibrationPart: getAllValuesOfPropertyInArrayOfObjects(state.order.lineItems.glassParts, "requiresRecalibration")?.length > 0,
selectedMultiGlass: state.order.damage.glassToReplace?.length > 1,
selectedWindshieldGlass: getAllValuesOfPropertyInArrayOfObjects(state.order.damage.glassToReplace, "glassLocation").includes(damageLocationsSelected.WINDSHIELD),
selectedBackGlass: getAllValuesOfPropertyInArrayOfObjects(state.order.damage.glassToReplace, "glassLocation").includes(damageLocationsSelected.REAR),

View file

@ -249,6 +249,36 @@ describe("Mutations", () => {
expect(storeState.order.payment.insuranceCoverage.isVerified).toEqual(true);
});
it("updateExperiments, should set experiments", () => {
// Arrange
const storeState = state;
const mockExperimentsList = [
{
universeName: "XYZ",
settings: {
ExperimentSetting: "ExperimentValue"
}
}
]
// Act
mutations.updateExperiments(storeState, mockExperimentsList);
// Assert
expect(storeState.applicationUser.experiments).toEqual(mockExperimentsList);
});
it("updateTriggeredSiteEntry, should set triggeredSiteEntry", () => {
// Arrange
const storeState = state;
// Act
mutations.updateTriggeredSiteEntry(storeState, true);
// Assert
expect(storeState.applicationUser.triggeredSiteEntry).toEqual(true);
});
});
describe("Actions", () => {
@ -796,7 +826,7 @@ describe("Actions", () => {
// Act
const payload = {
isCarIdDifferent: true,
isSelectedGlassAvailableForVehicle: false,
isSelectedupdateStateWithOrderInformationGlassAvailableForVehicle: false,
vehicleInfo: {
carId: 'C010101', vin: "XXXXX"
},
@ -1059,7 +1089,7 @@ describe("Actions", () => {
});
describe("Getters", () => {
describe.only("Getters", () => {
it("Vehicle getter, should return vehicle data", () => {
// Arrange
const storeState = state;
@ -1153,4 +1183,321 @@ describe("Getters", () => {
expect(getters.payment(storeState).insuranceCoverage.isVerified).toEqual(true);
});
describe.only("experimentOrder", () => {
test("glassToReplace, glassParts, and otherParts are null > return correct experimentOrder values", () => {
// Arrange
const storeState = state;
const mockStateValues = {
vehicleYear: 1000,
vehicleMake: "CarMake",
vehicleModel: "CarModel",
vehicleStyle: "SuperCoolStyle",
isRepair: true,
numberOfChips: 9999999,
carId: "Gibberish",
serviceCity: "Columbus",
serviceState: "OH-IO",
serviceZipCode: 43215,
parentAccountNumber: "999999",
isCoverageVerified: true,
glassParts: null,
otherParts: null,
glassToReplace: null
}
//Act
mutations.updateYear(storeState, mockStateValues.vehicleYear);
mutations.updateMake(storeState, mockStateValues.vehicleMake);
mutations.updateModel(storeState, mockStateValues.vehicleModel);
mutations.updateStyle(storeState, mockStateValues.vehicleStyle);
mutations.updateIsRepair(storeState, mockStateValues.isRepair);
mutations.updateNumberOfChips(storeState, mockStateValues.numberOfChips);
mutations.updateCarId(storeState, mockStateValues.carId);
mutations.updateServiceLocation(storeState, {
city: mockStateValues.serviceCity,
state: mockStateValues.serviceState,
zipCode: mockStateValues.serviceZipCode
});
mutations.updateParentAcctNumber(storeState, mockStateValues.parentAccountNumber);
mutations.updateInsuranceVerifiedStatus(storeState, mockStateValues.isCoverageVerified);
mutations.updateGlassParts(storeState, mockStateValues.glassParts);
mutations.updateOtherParts(storeState, mockStateValues.otherParts);
mutations.updateGlassToReplace(storeState, mockStateValues.glassToReplace);
//Assert
expect(getters.experimentOrder(storeState)).toEqual({
vehicleYear: mockStateValues.vehicleYear,
vehicleMake: mockStateValues.vehicleMake,
vehicleModel: mockStateValues.vehicleModel,
vehicleStyle: mockStateValues.vehicleStyle,
isRepair: mockStateValues.isRepair,
numberOfChips: mockStateValues.numberOfChips,
carId: mockStateValues.carId,
serviceCity: mockStateValues.serviceCity,
serviceState: mockStateValues.serviceState,
serviceZipCode: mockStateValues.serviceZipCode,
parentAccountNumber: mockStateValues.parentAccountNumber,
isCoverageVerified: mockStateValues.isCoverageVerified,
orderPartNumbers: [],
orderPartTypes: [],
hasRecalibrationPart: false,
selectedMultiGlass: false,
selectedWindshieldGlass: false,
selectedBackGlass: false,
selectedDriverSideGlass: false,
selectedPassengerSideGlass: false
});
});
test("glassToReplace, glassParts, and otherParts are empty > return correct experimentOrder values", () => {
// Arrange
const storeState = state;
const mockStateValues = {
vehicleYear: 1000,
vehicleMake: "CarMake",
vehicleModel: "CarModel",
vehicleStyle: "SuperCoolStyle",
isRepair: true,
numberOfChips: 9999999,
carId: "Gibberish",
serviceCity: "Columbus",
serviceState: "OH-IO",
serviceZipCode: 43215,
parentAccountNumber: "999999",
isCoverageVerified: true,
glassParts: [],
otherParts: [],
glassToReplace: []
}
//Act
mutations.updateYear(storeState, mockStateValues.vehicleYear);
mutations.updateMake(storeState, mockStateValues.vehicleMake);
mutations.updateModel(storeState, mockStateValues.vehicleModel);
mutations.updateStyle(storeState, mockStateValues.vehicleStyle);
mutations.updateIsRepair(storeState, mockStateValues.isRepair);
mutations.updateNumberOfChips(storeState, mockStateValues.numberOfChips);
mutations.updateCarId(storeState, mockStateValues.carId);
mutations.updateServiceLocation(storeState, {
city: mockStateValues.serviceCity,
state: mockStateValues.serviceState,
zipCode: mockStateValues.serviceZipCode
});
mutations.updateParentAcctNumber(storeState, mockStateValues.parentAccountNumber);
mutations.updateInsuranceVerifiedStatus(storeState, mockStateValues.isCoverageVerified);
mutations.updateGlassParts(storeState, mockStateValues.glassParts);
mutations.updateOtherParts(storeState, mockStateValues.otherParts);
mutations.updateGlassToReplace(storeState, mockStateValues.glassToReplace);
//Assert
expect(getters.experimentOrder(storeState)).toEqual({
vehicleYear: mockStateValues.vehicleYear,
vehicleMake: mockStateValues.vehicleMake,
vehicleModel: mockStateValues.vehicleModel,
vehicleStyle: mockStateValues.vehicleStyle,
isRepair: mockStateValues.isRepair,
numberOfChips: mockStateValues.numberOfChips,
carId: mockStateValues.carId,
serviceCity: mockStateValues.serviceCity,
serviceState: mockStateValues.serviceState,
serviceZipCode: mockStateValues.serviceZipCode,
parentAccountNumber: mockStateValues.parentAccountNumber,
isCoverageVerified: mockStateValues.isCoverageVerified,
orderPartNumbers: [],
orderPartTypes: [],
hasRecalibrationPart: false,
selectedMultiGlass: false,
selectedWindshieldGlass: false,
selectedBackGlass: false,
selectedDriverSideGlass: false,
selectedPassengerSideGlass: false
});
});
test("Single windshield requiring recalibration is selected > return correct experimentOrder values", () => {
// Arrange
const storeState = state;
const mockStateValues = {
vehicleYear: 1000,
vehicleMake: "CarMake",
vehicleModel: "CarModel",
vehicleStyle: "SuperCoolStyle",
isRepair: false,
numberOfChips: 0,
carId: "Gibberish",
serviceCity: "Columbus",
serviceState: "OH-IO",
serviceZipCode: 43215,
parentAccountNumber: "999999",
isCoverageVerified: false,
glassParts: [
{
partNumber: "WINDSHIELDPARTNUMBER",
description: "This is a windshield",
recalibrationType: "ADAS, maybe",
requiresRecalibration: true,
requiresCapabilityQuestions: false
}
],
otherParts: [
],
glassToReplace: [
{
glassLocation: "Windshield",
glassName: "Single"
}
]
}
//Act
mutations.updateYear(storeState, mockStateValues.vehicleYear);
mutations.updateMake(storeState, mockStateValues.vehicleMake);
mutations.updateModel(storeState, mockStateValues.vehicleModel);
mutations.updateStyle(storeState, mockStateValues.vehicleStyle);
mutations.updateIsRepair(storeState, mockStateValues.isRepair);
mutations.updateNumberOfChips(storeState, mockStateValues.numberOfChips);
mutations.updateCarId(storeState, mockStateValues.carId);
mutations.updateServiceLocation(storeState, {
city: mockStateValues.serviceCity,
state: mockStateValues.serviceState,
zipCode: mockStateValues.serviceZipCode
});
mutations.updateParentAcctNumber(storeState, mockStateValues.parentAccountNumber);
mutations.updateInsuranceVerifiedStatus(storeState, mockStateValues.isCoverageVerified);
mutations.updateGlassParts(storeState, mockStateValues.glassParts);
mutations.updateOtherParts(storeState, mockStateValues.otherParts);
mutations.updateGlassToReplace(storeState, mockStateValues.glassToReplace);
//Assert
expect(getters.experimentOrder(storeState)).toEqual({
vehicleYear: mockStateValues.vehicleYear,
vehicleMake: mockStateValues.vehicleMake,
vehicleModel: mockStateValues.vehicleModel,
vehicleStyle: mockStateValues.vehicleStyle,
isRepair: mockStateValues.isRepair,
numberOfChips: mockStateValues.numberOfChips,
carId: mockStateValues.carId,
serviceCity: mockStateValues.serviceCity,
serviceState: mockStateValues.serviceState,
serviceZipCode: mockStateValues.serviceZipCode,
parentAccountNumber: mockStateValues.parentAccountNumber,
isCoverageVerified: mockStateValues.isCoverageVerified,
orderPartNumbers: ["WINDSHIELDPARTNUMBER"],
orderPartTypes: ["ADAS, maybe"],
hasRecalibrationPart: true,
selectedMultiGlass: false,
selectedWindshieldGlass: true,
selectedBackGlass: false,
selectedDriverSideGlass: false,
selectedPassengerSideGlass: false
});
});
test("Select multiglass > return correct experimentOrder values", () => {
// Arrange
const storeState = state;
const mockStateValues = {
vehicleYear: 1000,
vehicleMake: "CarMake",
vehicleModel: "CarModel",
vehicleStyle: "SuperCoolStyle",
isRepair: false,
numberOfChips: 0,
carId: "Gibberish",
serviceCity: "Columbus",
serviceState: "OH-IO",
serviceZipCode: 43215,
parentAccountNumber: "999999",
isCoverageVerified: false,
glassParts: [
{
partNumber: "BACKGLASS_PN",
description: "This is a back glass",
recalibrationType: null,
requiresRecalibration: false,
requiresCapabilityQuestions: false
},
{
partNumber: "DRIVERGLASS_PN",
description: "This is a driver side glass",
recalibrationType: null,
requiresRecalibration: false,
requiresCapabilityQuestions: false
},
{
partNumber: "PASSENGERGLASS_PN",
description: "This is a passenger side glass",
recalibrationType: null,
requiresRecalibration: false,
requiresCapabilityQuestions: false
}
],
otherParts: [
],
glassToReplace: [
{
glassLocation: "Rear",
glassName: "Stationary"
},
{
glassLocation: "Driver",
glassName: "Front"
},
{
glassLocation: "Passenger",
glassName: "Front"
},
{
glassLocation: "Passenger",
glassName: "Quarter"
}
]
}
//Act
mutations.updateYear(storeState, mockStateValues.vehicleYear);
mutations.updateMake(storeState, mockStateValues.vehicleMake);
mutations.updateModel(storeState, mockStateValues.vehicleModel);
mutations.updateStyle(storeState, mockStateValues.vehicleStyle);
mutations.updateIsRepair(storeState, mockStateValues.isRepair);
mutations.updateNumberOfChips(storeState, mockStateValues.numberOfChips);
mutations.updateCarId(storeState, mockStateValues.carId);
mutations.updateServiceLocation(storeState, {
city: mockStateValues.serviceCity,
state: mockStateValues.serviceState,
zipCode: mockStateValues.serviceZipCode
});
mutations.updateParentAcctNumber(storeState, mockStateValues.parentAccountNumber);
mutations.updateInsuranceVerifiedStatus(storeState, mockStateValues.isCoverageVerified);
mutations.updateGlassParts(storeState, mockStateValues.glassParts);
mutations.updateOtherParts(storeState, mockStateValues.otherParts);
mutations.updateGlassToReplace(storeState, mockStateValues.glassToReplace);
//Assert
expect(getters.experimentOrder(storeState)).toEqual({
vehicleYear: mockStateValues.vehicleYear,
vehicleMake: mockStateValues.vehicleMake,
vehicleModel: mockStateValues.vehicleModel,
vehicleStyle: mockStateValues.vehicleStyle,
isRepair: mockStateValues.isRepair,
numberOfChips: mockStateValues.numberOfChips,
carId: mockStateValues.carId,
serviceCity: mockStateValues.serviceCity,
serviceState: mockStateValues.serviceState,
serviceZipCode: mockStateValues.serviceZipCode,
parentAccountNumber: mockStateValues.parentAccountNumber,
isCoverageVerified: mockStateValues.isCoverageVerified,
orderPartNumbers: ["BACKGLASS_PN", "DRIVERGLASS_PN", "PASSENGERGLASS_PN"],
orderPartTypes: [],
hasRecalibrationPart: false,
selectedMultiGlass: true,
selectedWindshieldGlass: false,
selectedBackGlass: true,
selectedDriverSideGlass: true,
selectedPassengerSideGlass: true
});
});
})
});