CSR-416 Restructure vehicle-damage.spec.js and add claim registration/back button

This commit is contained in:
Katie 2022-05-25 16:16:02 -04:00
parent df859c87ee
commit c648512029
2 changed files with 603 additions and 614 deletions

View file

@ -57,27 +57,7 @@ jest.mock("@/store", () => ({
})); }));
describe("vehicle-damage.vue", () => { describe("vehicle-damage.vue", () => {
test("CarId set, arePagePrerequisitesValid should be true ", async () => { describe("navigation", () => {
//Arrange
const { wrapper } = setupMocks({});
//Act
vehicleDamage.beforeRouteEnter.call(
wrapper.vm,
{ query: { fmgPage: "vehicle-damage" } },
undefined,
(c) => c(wrapper.vm)
);
let arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid();
await nextTick();
//Assert
expect(arePagePrerequisitesValid).toBe(true);
});
});
describe("vehicle-damage.vue", () => {
test("BackButtonAction triggers a router.navigate change", async () => { test("BackButtonAction triggers a router.navigate change", async () => {
//Arrange //Arrange
@ -97,9 +77,7 @@ describe("vehicle-damage.vue", () => {
expect(wrapper.vm.$router.navigate).toHaveBeenCalled(); expect(wrapper.vm.$router.navigate).toHaveBeenCalled();
}); });
});
describe("vehicle-damage.vue", () => {
test("Replace several pieces of glass on ForwardButtonAction triggers a router.navigateAfterSave and saves selections to store", async () => { test("Replace several pieces of glass on ForwardButtonAction triggers a router.navigateAfterSave and saves selections to store", async () => {
//Arrange //Arrange
const partsData = { const partsData = {
@ -154,8 +132,8 @@ describe("vehicle-damage.vue", () => {
wrapper.vm.selectedDamageLocations = ["Windshield", "SideDoor", "RearWindow"]; wrapper.vm.selectedDamageLocations = ["Windshield", "SideDoor", "RearWindow"];
wrapper.vm.selectedWindshieldOptions = { wrapper.vm.selectedWindshieldOptions = {
selectedWindshieldChipCount : null, selectedWindshieldChipCount: null,
selectedWindshieldReplaceOptions : ["Single"], selectedWindshieldReplaceOptions: ["Single"],
selectedWindshieldDamageType: ["Replace"] selectedWindshieldDamageType: ["Replace"]
}; };
@ -167,8 +145,8 @@ describe("vehicle-damage.vue", () => {
wrapper.vm.selectedRearReplaceOptions = ["Stationary"]; wrapper.vm.selectedRearReplaceOptions = ["Stationary"];
const expectedGlassToReplace = [{location: "Windshield", name: "Single"}, {location: "Driver", name: "Back"}, const expectedGlassToReplace = [{ location: "Windshield", name: "Single" }, { location: "Driver", name: "Back" },
{location: "Passenger", name: "Quarter"}, {location: "Rear", name: "Stationary"}]; { location: "Passenger", name: "Quarter" }, { location: "Rear", name: "Stationary" }];
//Act //Act
vehicleDamage.beforeRouteEnter.call( vehicleDamage.beforeRouteEnter.call(
@ -186,12 +164,11 @@ describe("vehicle-damage.vue", () => {
expect(store.commit).toBeCalledWith(storeMutations.UPDATE_IS_REPAIR, false); expect(store.commit).toBeCalledWith(storeMutations.UPDATE_IS_REPAIR, false);
expect(store.commit).toBeCalledWith(storeMutations.UPDATE_GLASS_TO_REPLACE, expectedGlassToReplace); expect(store.commit).toBeCalledWith(storeMutations.UPDATE_GLASS_TO_REPLACE, expectedGlassToReplace);
}); });
});
describe("vehicle-damage.vue", () => {
test("Windshield replace with multiple parts on ForwardButtonAction triggers a router.navigateAfterSave and saves selections to store", async () => { test("Windshield replace with multiple parts on ForwardButtonAction triggers a router.navigateAfterSave and saves selections to store", async () => {
//Arrange //Arrange
const partsData = { partsOrQuestions: [ const partsData = {
partsOrQuestions: [
{ {
glassLocation: "Windshield", glassLocation: "Windshield",
glassName: "Single", glassName: "Single",
@ -211,7 +188,8 @@ describe("vehicle-damage.vue", () => {
requiresCapabilityQuestions: false, requiresCapabilityQuestions: false,
requiresRecalibration: false requiresRecalibration: false
} }
]}, ]
},
{ {
glassName: "Stationary", glassName: "Stationary",
glassLocation: "Rear", glassLocation: "Rear",
@ -235,7 +213,8 @@ describe("vehicle-damage.vue", () => {
], ],
"partQuestions": null "partQuestions": null
} }
]}; ]
};
const { wrapper } = setupMocks({ const { wrapper } = setupMocks({
pageHeaderWidgetHeaderText: "", pageHeaderWidgetHeaderText: "",
@ -253,12 +232,12 @@ describe("vehicle-damage.vue", () => {
wrapper.vm.selectedDamageLocations = ["Windshield"]; wrapper.vm.selectedDamageLocations = ["Windshield"];
wrapper.vm.selectedWindshieldOptions = { wrapper.vm.selectedWindshieldOptions = {
selectedWindshieldChipCount : null, selectedWindshieldChipCount: null,
selectedWindshieldReplaceOptions : ["Single"], selectedWindshieldReplaceOptions: ["Single"],
selectedWindshieldDamageType: ["Replace"] selectedWindshieldDamageType: ["Replace"]
}; };
const expectedGlassToReplace = [{location: "Windshield", name: "Single"},]; const expectedGlassToReplace = [{ location: "Windshield", name: "Single" },];
//Act //Act
vehicleDamage.beforeRouteEnter.call( vehicleDamage.beforeRouteEnter.call(
@ -276,9 +255,58 @@ describe("vehicle-damage.vue", () => {
expect(store.commit).toBeCalledWith(storeMutations.UPDATE_IS_REPAIR, false); expect(store.commit).toBeCalledWith(storeMutations.UPDATE_IS_REPAIR, false);
expect(store.commit).toBeCalledWith(storeMutations.UPDATE_GLASS_TO_REPLACE, expectedGlassToReplace); expect(store.commit).toBeCalledWith(storeMutations.UPDATE_GLASS_TO_REPLACE, expectedGlassToReplace);
}); });
});
describe("vehicle-damage.vue", () => {
});
describe("alert", () => {
test("when displayVehicleChangeAlert router params is true, the alert: 'vehicleChangeAlert' should be visible", () => {
// Arrange & Act
const { wrapper } = setupMocks({
mountOptionsMockData: {
route: {
params: {
[routerParams.DISPLAY_VEHICLE_CHANGE_ALERT]: true
}
}
}
});
// Assert
expect(wrapper.findComponent({ ref: 'vehicleChangeAlert' }).isVisible()).toBe(true);
});
test("when displayVehicleChangeAlert router params is false, the alert: 'vehicleChangeAlert' should not be visible", () => {
// Arrange & Act
const { wrapper } = setupMocks({
mountOptionsMockData: {
route: {
params: {
[routerParams.DISPLAY_VEHICLE_CHANGE_ALERT]: false
}
}
}
});
// Assert
expect(wrapper.findComponent({ ref: 'vehicleChangeAlert' }).isVisible()).toBe(false);
});
test("when displayVehicleChangeAlert router params is undefined, the alert: 'vehicleChangeAlert' should not be visible", () => {
// Arrange & Act
const { wrapper } = setupMocks({
mountOptionsMockData: {
route: {
params: {
[routerParams.DISPLAY_VEHICLE_CHANGE_ALERT]: undefined
}
}
}
});
// Assert
expect(wrapper.findComponent({ ref: 'vehicleChangeAlert' }).isVisible()).toBe(false);
})
});
describe("glass selections and corresponding variables", () => {
test("isWindshieldDamageLocation is true when windshield is selected", async () => { test("isWindshieldDamageLocation is true when windshield is selected", async () => {
//Arrange //Arrange
@ -297,9 +325,7 @@ describe("vehicle-damage.vue", () => {
//Assert //Assert
expect(wrapper.vm.isWindshieldDamageLocation).toEqual(true); expect(wrapper.vm.isWindshieldDamageLocation).toEqual(true);
}); });
});
describe("vehicle-damage.vue", () => {
test("isSideDoorDamageLocation is true Side door is selected", async () => { test("isSideDoorDamageLocation is true Side door is selected", async () => {
//Arrange //Arrange
@ -318,10 +344,7 @@ describe("vehicle-damage.vue", () => {
//Assert //Assert
expect(wrapper.vm.isSideDoorDamageLocation).toEqual(true); expect(wrapper.vm.isSideDoorDamageLocation).toEqual(true);
}); });
});
describe("vehicle-damage.vue", () => {
test("isRearWindowDamageLocation is true if Rear Window damage is selected", async () => { test("isRearWindowDamageLocation is true if Rear Window damage is selected", async () => {
//Arrange //Arrange
@ -340,9 +363,7 @@ describe("vehicle-damage.vue", () => {
//Assert //Assert
expect(wrapper.vm.isRearWindowDamageLocation).toEqual(true); expect(wrapper.vm.isRearWindowDamageLocation).toEqual(true);
}); });
});
describe("vehicle-damage.vue", () => {
test("isWindshieldRepair is true if windshield repair is selected", async () => { test("isWindshieldRepair is true if windshield repair is selected", async () => {
//Arrange //Arrange
@ -357,14 +378,12 @@ describe("vehicle-damage.vue", () => {
); );
wrapper.vm.selectedDamageLocations = ["Windshield"]; wrapper.vm.selectedDamageLocations = ["Windshield"];
wrapper.vm.selectedWindshieldOptions = { selectedWindshieldDamageType: ["Repair"]}; wrapper.vm.selectedWindshieldOptions = { selectedWindshieldDamageType: ["Repair"] };
//Assert //Assert
expect(wrapper.vm.isWindshieldRepair).toEqual(true); expect(wrapper.vm.isWindshieldRepair).toEqual(true);
}); });
});
describe("vehicle-damage.vue", () => {
test("isWindshieldRepair is false if windshield damage is not selected", async () => { test("isWindshieldRepair is false if windshield damage is not selected", async () => {
//Arrange //Arrange
@ -379,14 +398,12 @@ describe("vehicle-damage.vue", () => {
); );
wrapper.vm.selectedDamageLocations = ["SideDoor"]; wrapper.vm.selectedDamageLocations = ["SideDoor"];
wrapper.vm.selectedWindshieldOptions = { selectedWindshieldDamageType: ["Repair"]}; wrapper.vm.selectedWindshieldOptions = { selectedWindshieldDamageType: ["Repair"] };
//Assert //Assert
expect(wrapper.vm.isWindshieldRepair).toEqual(false); expect(wrapper.vm.isWindshieldRepair).toEqual(false);
}); });
});
describe("vehicle-damage.vue", () => {
test("isDriverSideReplace is true if side door driver is selected", async () => { test("isDriverSideReplace is true if side door driver is selected", async () => {
//Arrange //Arrange
@ -401,14 +418,12 @@ describe("vehicle-damage.vue", () => {
); );
wrapper.vm.selectedDamageLocations = ["Sidedoor"]; wrapper.vm.selectedDamageLocations = ["Sidedoor"];
wrapper.vm.sideDoorOptionsData = { selectedDoorSides: ["DriverSide"]}; wrapper.vm.sideDoorOptionsData = { selectedDoorSides: ["DriverSide"] };
//Assert //Assert
expect(wrapper.vm.isDriverSideReplace).toEqual(true); expect(wrapper.vm.isDriverSideReplace).toEqual(true);
}); });
});
describe("vehicle-damage.vue", () => {
test("isPassengerSideReplace is true if side door passenger selected", async () => { test("isPassengerSideReplace is true if side door passenger selected", async () => {
//Arrange //Arrange
@ -423,14 +438,33 @@ describe("vehicle-damage.vue", () => {
); );
wrapper.vm.selectedDamageLocations = ["Sidedoor"]; wrapper.vm.selectedDamageLocations = ["Sidedoor"];
wrapper.vm.sideDoorOptionsData = { selectedDoorSides: ["PassengerSide"]}; wrapper.vm.sideDoorOptionsData = { selectedDoorSides: ["PassengerSide"] };
//Assert //Assert
expect(wrapper.vm.isPassengerSideReplace).toEqual(true); expect(wrapper.vm.isPassengerSideReplace).toEqual(true);
}); });
}); });
describe("state validations", () => {
test("CarId set, arePagePrerequisitesValid should be true ", async () => {
//Arrange
const { wrapper } = setupMocks({});
//Act
vehicleDamage.beforeRouteEnter.call(
wrapper.vm,
{ query: { fmgPage: "vehicle-damage" } },
undefined,
(c) => c(wrapper.vm)
);
let arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid();
await nextTick();
//Assert
expect(arePagePrerequisitesValid).toBe(true);
});
describe("vehicle-damage.vue", () => {
test("Call invalidation, ResetPartsAndState should be called", async () => { test("Call invalidation, ResetPartsAndState should be called", async () => {
//Arrange //Arrange
@ -450,13 +484,40 @@ describe("vehicle-damage.vue", () => {
expect(store.dispatch).toBeCalledWith(storeActions.RESET_PARTS_STATE_AND_DEPENDENCIES) expect(store.dispatch).toBeCalledWith(storeActions.RESET_PARTS_STATE_AND_DEPENDENCIES)
}); });
}); });
const damageLocations = [["Windshield", [damageLocationsSelected.WINDSHIELD]], describe("input validations", () => {
// THE FOLLOWING TEST IS NOT NECESSARILY REQUIRED FOR COVERAGE
// BUT KEEP FOR AN EXAMPLE OF A VALIDATION TEST
test("when validation rules are set they should validate correctly", async () => {
//Arrange
const { wrapper } = setupMocks({});
//Act
vehicleDamage.beforeRouteEnter.call(
wrapper.vm,
{ query: { fmgPage: "vehicle-damage" } },
undefined,
(c) => c(wrapper.vm)
);
const testNull = validate("", "replace-options-required");
const testString = validate("sldfj", "replace-options-required");
//Assert
testNull.then(function (data) {
expect(data.valid).toEqual(false);
});
testString.then(function (data) {
expect(data.valid).toEqual(true);
});
});
});
describe("get glass options from store", () => {
const damageLocations = [["Windshield", [damageLocationsSelected.WINDSHIELD]],
["Driver", [damageLocationsSelected.SIDEDOOR]], ["Driver", [damageLocationsSelected.SIDEDOOR]],
["Passenger", [damageLocationsSelected.SIDEDOOR]], ["Passenger", [damageLocationsSelected.SIDEDOOR]],
["Rear", [damageLocationsSelected.REARWINDOW]]]; ["Rear", [damageLocationsSelected.REARWINDOW]]];
describe("vehicle-damage.vue", () => {
test.each(damageLocations)("getDamageLocationsFromStore for %s returns expected %s", async (damageLocation, expectedGlass) => { test.each(damageLocations)("getDamageLocationsFromStore for %s returns expected %s", async (damageLocation, expectedGlass) => {
//Arrange //Arrange
@ -470,26 +531,31 @@ describe("vehicle-damage.vue", () => {
(c) => c(wrapper.vm) (c) => c(wrapper.vm)
); );
store.getters = { vehicle: { carId: "C0000000" }, eventBusItem: jest.fn(), damage: { glassToReplace: [{location: damageLocation}] }, isRepair: true}; store.getters = { vehicle: { carId: "C0000000" }, eventBusItem: jest.fn(), damage: { glassToReplace: [{ location: damageLocation }] }, isRepair: true };
var glassSelections = wrapper.vm.getDamageLocationsFromStore(); var glassSelections = wrapper.vm.getDamageLocationsFromStore();
//Assert //Assert
expect(glassSelections).toEqual(expectedGlass); expect(glassSelections).toEqual(expectedGlass);
}); });
});
const storeWindshieldOptions = [[1, false, "Windshield", "Single", { selectedWindshieldDamageType: [damageLocationsSelected.REPLACE], const storeWindshieldOptions = [[1, false, "Windshield", "Single", {
selectedWindshieldChipCount: [], selectedWindshieldReplaceOptions: [damageLocationsSelected.SINGLE]}], selectedWindshieldDamageType: [damageLocationsSelected.REPLACE],
[2, false, "Windshield", "Driver", { selectedWindshieldDamageType: [damageLocationsSelected.REPLACE], selectedWindshieldChipCount: [], selectedWindshieldReplaceOptions: [damageLocationsSelected.SINGLE]
selectedWindshieldChipCount: [], selectedWindshieldReplaceOptions: [damageLocationsSelected.DRIVER]}], }],
[3, false, "Windshield", "Passenger", { selectedWindshieldDamageType: [damageLocationsSelected.REPLACE], [2, false, "Windshield", "Driver", {
selectedWindshieldChipCount: [], selectedWindshieldReplaceOptions: [damageLocationsSelected.PASSENGER]}], selectedWindshieldDamageType: [damageLocationsSelected.REPLACE],
[4, true, "", "", { selectedWindshieldDamageType: [damageLocationsSelected.REPAIR], selectedWindshieldChipCount: [], selectedWindshieldReplaceOptions: [damageLocationsSelected.DRIVER]
selectedWindshieldChipCount: [2], selectedWindshieldReplaceOptions: []}] }],
[3, false, "Windshield", "Passenger", {
selectedWindshieldDamageType: [damageLocationsSelected.REPLACE],
selectedWindshieldChipCount: [], selectedWindshieldReplaceOptions: [damageLocationsSelected.PASSENGER]
}],
[4, true, "", "", {
selectedWindshieldDamageType: [damageLocationsSelected.REPAIR],
selectedWindshieldChipCount: [2], selectedWindshieldReplaceOptions: []
}]
]; ];
describe("vehicle-damage.vue", () => {
test.each(storeWindshieldOptions)("getWindshieldOptionsFromStore test #%s", async (testNum, isRepair, damageLocation, damageName, expectedWindshieldOptions) => { test.each(storeWindshieldOptions)("getWindshieldOptionsFromStore test #%s", async (testNum, isRepair, damageLocation, damageName, expectedWindshieldOptions) => {
//Arrange //Arrange
@ -509,7 +575,7 @@ describe("vehicle-damage.vue", () => {
eventBusItem: jest.fn(), eventBusItem: jest.fn(),
damage: damage:
{ {
glassToReplace: [{location: damageLocation, name: damageName}], glassToReplace: [{ location: damageLocation, name: damageName }],
isRepair: isRepair, isRepair: isRepair,
numberOfChips: 2 numberOfChips: 2
}, },
@ -519,16 +585,13 @@ describe("vehicle-damage.vue", () => {
//Assert //Assert
expect(windshieldSelections).toEqual(expectedWindshieldOptions); expect(windshieldSelections).toEqual(expectedWindshieldOptions);
}); });
});
const driverDoorSides = [["Driver", "Front", [damageLocationsSelected.FRONT]], const driverDoorSides = [["Driver", "Front", [damageLocationsSelected.FRONT]],
["Driver", "Back", [damageLocationsSelected.BACK]], ["Driver", "Back", [damageLocationsSelected.BACK]],
["Driver", "Vent", [damageLocationsSelected.VENT]], ["Driver", "Vent", [damageLocationsSelected.VENT]],
["Driver", "Quarter", [damageLocationsSelected.QUARTER]] ["Driver", "Quarter", [damageLocationsSelected.QUARTER]]
]; ];
describe("vehicle-damage.vue", () => {
test.each(driverDoorSides)("getDriverSideReplaceOptionsFromStore for %s-%s returns expected %s", async (damageLocation, damageName, expectedGlass) => { test.each(driverDoorSides)("getDriverSideReplaceOptionsFromStore for %s-%s returns expected %s", async (damageLocation, damageName, expectedGlass) => {
//Arrange //Arrange
@ -542,7 +605,7 @@ describe("vehicle-damage.vue", () => {
(c) => c(wrapper.vm) (c) => c(wrapper.vm)
); );
store.getters = { vehicle: { carId: "C0000000" }, eventBusItem: jest.fn(), damage: { glassToReplace: [{location: damageLocation, name: damageName}] }, isRepair: true}; store.getters = { vehicle: { carId: "C0000000" }, eventBusItem: jest.fn(), damage: { glassToReplace: [{ location: damageLocation, name: damageName }] }, isRepair: true };
var glassSelections = wrapper.vm.getDriverSideReplaceOptionsFromStore(); var glassSelections = wrapper.vm.getDriverSideReplaceOptionsFromStore();
@ -550,14 +613,12 @@ describe("vehicle-damage.vue", () => {
expect(glassSelections).toEqual(expectedGlass); expect(glassSelections).toEqual(expectedGlass);
}); });
});
const passengerDoorSides = [["Passenger", "Front", [damageLocationsSelected.FRONT]], const passengerDoorSides = [["Passenger", "Front", [damageLocationsSelected.FRONT]],
["Passenger", "Back", [damageLocationsSelected.BACK]], ["Passenger", "Back", [damageLocationsSelected.BACK]],
["Passenger", "Vent", [damageLocationsSelected.VENT]], ["Passenger", "Vent", [damageLocationsSelected.VENT]],
["Passenger", "Quarter", [damageLocationsSelected.QUARTER]] ["Passenger", "Quarter", [damageLocationsSelected.QUARTER]]
]; ];
describe("vehicle-damage.vue", () => {
test.each(passengerDoorSides)("getPassengerSideReplaceOptionsFromStore for %s-%s returns expected %s", async (damageLocation, damageName, expectedGlass) => { test.each(passengerDoorSides)("getPassengerSideReplaceOptionsFromStore for %s-%s returns expected %s", async (damageLocation, damageName, expectedGlass) => {
//Arrange //Arrange
@ -571,20 +632,17 @@ describe("vehicle-damage.vue", () => {
(c) => c(wrapper.vm) (c) => c(wrapper.vm)
); );
store.getters = { vehicle: { carId: "C0000000" }, eventBusItem: jest.fn(), damage: { glassToReplace: [{location: damageLocation, name: damageName}] }, isRepair: true}; store.getters = { vehicle: { carId: "C0000000" }, eventBusItem: jest.fn(), damage: { glassToReplace: [{ location: damageLocation, name: damageName }] }, isRepair: true };
var glassSelections = wrapper.vm.getPassengerSideReplaceOptionsFromStore(); var glassSelections = wrapper.vm.getPassengerSideReplaceOptionsFromStore();
//Assert //Assert
expect(glassSelections).toEqual(expectedGlass); expect(glassSelections).toEqual(expectedGlass);
}); });
});
const rearReplaceOptions = [["Rear", "Stationary", [damageLocationsSelected.STATIONARY]], const rearReplaceOptions = [["Rear", "Stationary", [damageLocationsSelected.STATIONARY]],
["Rear", "Slider", [damageLocationsSelected.SLIDER]] ["Rear", "Slider", [damageLocationsSelected.SLIDER]]
]; ];
describe("vehicle-damage.vue", () => {
test.each(rearReplaceOptions)("getRearReplaceOptionsFromStore for %s-%s returns expected %s", async (damageLocation, damageName, expectedGlass) => { test.each(rearReplaceOptions)("getRearReplaceOptionsFromStore for %s-%s returns expected %s", async (damageLocation, damageName, expectedGlass) => {
//Arrange //Arrange
@ -598,103 +656,34 @@ describe("vehicle-damage.vue", () => {
(c) => c(wrapper.vm) (c) => c(wrapper.vm)
); );
store.getters = { vehicle: { carId: "C0000000" }, eventBusItem: jest.fn(), damage: { glassToReplace: [{location: damageLocation, name: damageName}] }, isRepair: true}; store.getters = { vehicle: { carId: "C0000000" }, eventBusItem: jest.fn(), damage: { glassToReplace: [{ location: damageLocation, name: damageName }] }, isRepair: true };
var glassSelections = wrapper.vm.getRearReplaceOptionsFromStore(); var glassSelections = wrapper.vm.getRearReplaceOptionsFromStore();
//Assert //Assert
expect(glassSelections).toEqual(expectedGlass); expect(glassSelections).toEqual(expectedGlass);
}); });
});
describe("vehicle-damage.vue", () => {
test("when displayVehicleChangeAlert router params is true, the alert: 'vehicleChangeAlert' should be visible", () => {
// Arrange & Act
const { wrapper } = setupMocks({
mountOptionsMockData: {
route: {
params: {
[routerParams.DISPLAY_VEHICLE_CHANGE_ALERT]: true
}
}
}
});
// Assert
expect(wrapper.findComponent({ref: 'vehicleChangeAlert'}).isVisible()).toBe(true);
}) })
});
describe("vehicle-damage.vue", () => { describe("hide back button", () => {
test("when displayVehicleChangeAlert router params is false, the alert: 'vehicleChangeAlert' should not be visible", () => { test.only("if claim registration is delayed => should hide back button", () => {
// Arrange & Act // Arrange
const { wrapper } = setupMocks({
mountOptionsMockData: {
route: {
params: {
[routerParams.DISPLAY_VEHICLE_CHANGE_ALERT]: false
}
}
}
});
// Assert
expect(wrapper.findComponent({ref: 'vehicleChangeAlert'}).isVisible()).toBe(false);
})
});
describe("vehicle-damage.vue", () => {
test("when displayVehicleChangeAlert router params is undefined, the alert: 'vehicleChangeAlert' should not be visible", () => {
// Arrange & Act
const { wrapper } = setupMocks({
mountOptionsMockData: {
route: {
params: {
[routerParams.DISPLAY_VEHICLE_CHANGE_ALERT]: undefined
}
}
}
});
// Assert
expect(wrapper.findComponent({ref: 'vehicleChangeAlert'}).isVisible()).toBe(false);
})
});
describe("vehicle-damage.vue wasDelayedClaimRegistration", () => {
test.todo("if wasDelayedClaimRegistration, should hide back button")
});
// THE FOLLOWING TEST IS NOT NECESSARILY REQUIRED FOR COVERAGE
// BUT KEEP FOR AN EXAMPLE OF A VALIDATION TEST
//
describe("vehicle-damage.vue", () => {
test("when validation rules are set they should validate correctly", async () => {
//Arrange
const { wrapper } = setupMocks({}); const { wrapper } = setupMocks({});
cookieHelper.getFunnelCookie = jest.spyOn(cookieHelper, "getFunnelCookie").mockReturnValue({
//Act HasDelayedClaimRegistration: true
vehicleDamage.beforeRouteEnter.call(
wrapper.vm,
{ query: { fmgPage: "vehicle-damage" } },
undefined,
(c) => c(wrapper.vm)
);
const testNull = validate( "", "replace-options-required");
const testString = validate( "sldfj", "replace-options-required");
//Assert
testNull.then(function(data) {
expect(data.valid).toEqual(false);
});
testString.then(function(data) {
expect(data.valid).toEqual(true);
}); });
// Assert
expect(wrapper.vm.shouldHideBackButton()).toBe(true);
}); });
test.todo("if claim is verified => should hide back button")
});
}); });
function setupMocks({ pageHeaderWidgetHeaderText, mountOptionsMockData }) {
function setupMocks({pageHeaderWidgetHeaderText, mountOptionsMockData}) {
var pageHeaderWidgetHeaderTextDefault = {}; var pageHeaderWidgetHeaderTextDefault = {};
var mountOptionsMockDataDefault = { var mountOptionsMockDataDefault = {
router: { router: {

View file

@ -405,7 +405,7 @@ export default {
shouldDisplayVehicleChangeAlert() { shouldDisplayVehicleChangeAlert() {
return this.$route.params[this.routerParams.DISPLAY_VEHICLE_CHANGE_ALERT]; return this.$route.params[this.routerParams.DISPLAY_VEHICLE_CHANGE_ALERT];
}, },
shouldHideBackButton(){ shouldHideBackButton() {
return this.$store.getters.payment.insuranceCoverage.isVerified || getFunnelCookie().HasDelayedClaimRegistration; return this.$store.getters.payment.insuranceCoverage.isVerified || getFunnelCookie().HasDelayedClaimRegistration;
} }
}, },