diff --git a/src/global-methods.js b/src/global-methods.js index 9df098b7d..716b27e66 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -5,11 +5,15 @@ import httpStatusCodes from "http-status-codes"; export default { callHttpClient({ method, endpoint, payload }) { return new Promise((resolve, reject) => { - const apiGatewayUrl = applicationConfig.CONSUMER_APIGATEWAY_URL; + var apiGatewayUrl = applicationConfig.CONSUMER_APIGATEWAY_URL; const payloadAndAnalyticsData = Object.assign({}, payload, { AppName: "FixMyGlass", }); + if (endpoint.toLowerCase().includes("/parts/")){ + apiGatewayUrl = "https://localhost:44335"; + } + axios({ method: method, url: apiGatewayUrl + endpoint, @@ -19,7 +23,11 @@ export default { }).then( (response) => { if (response.status == httpStatusCodes.OK) { - resolve(response); + if(response.data == undefined || response.data == {}) { + reject(response); + }else{ + resolve(response); + } } else { reject(response); } diff --git a/src/helpers/unit-test-helper.js b/src/helpers/unit-test-helper.js index 4e5d86786..225704aa1 100644 --- a/src/helpers/unit-test-helper.js +++ b/src/helpers/unit-test-helper.js @@ -2,11 +2,26 @@ import { storeActions } from "@/constants/store-actions"; import { storeMutations } from "@/constants/store-mutations.js"; import { navigationScenarios } from "@/router/router-constants/navigation-scenarios.js"; import { vehicleCategories } from "@/constants/vehicle-categories.js"; +import baseMixin from "@/mixins/base-mixin"; export function getMountOptions(mockData) { // Define our mocks to attached to the 'global' object for Vue/Jest. const mocks = {}; + //this is mocking if you use the mixin directly(baseMixin.methods.dispatchNonBlockingStoreAction) vs this.dispatchNonBlockingStoreAction + baseMixin.methods.dispatchNonBlockingStoreAction = jest.fn(); + baseMixin.methods.dispatchNonBlockingStoreAction.mockImplementation((actionName) => { + let actionFilterResult = mockData.actionList.filter( + (x) => x.actionName == actionName + ); + + if (actionFilterResult.length > 0 && actionFilterResult.length === 1) { + return Promise.resolve({ + data: actionFilterResult[0].data, + }); + } + }); + mocks.dispatchNonBlockingStoreAction = jest.fn(); mocks.dispatchNonBlockingStoreAction.mockImplementation((actionName) => { let actionFilterResult = mockData.actionList.filter( diff --git a/src/layouts/part-questions/part-questions.vue b/src/layouts/part-questions/part-questions.vue new file mode 100644 index 000000000..e29b05ac4 --- /dev/null +++ b/src/layouts/part-questions/part-questions.vue @@ -0,0 +1,81 @@ + + + + + + Part Questions Page Placeholder + + + + + diff --git a/src/layouts/reveal/reveal.vue b/src/layouts/reveal/reveal.vue new file mode 100644 index 000000000..21ca0c6ac --- /dev/null +++ b/src/layouts/reveal/reveal.vue @@ -0,0 +1,69 @@ + + + + Reveal Confetti Page Placeholder + + + + + diff --git a/src/layouts/vehicle-damage/vehicle-damage.spec.js b/src/layouts/vehicle-damage/vehicle-damage.spec.js index d01febba1..d903349da 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.spec.js +++ b/src/layouts/vehicle-damage/vehicle-damage.spec.js @@ -17,6 +17,7 @@ import { shallowMount } from "@vue/test-utils"; import { getMountOptions } from "@/helpers/unit-test-helper.js"; import { nextTick } from "vue"; import { storeActions } from "@/constants/store-actions"; +import { storeMutations } from "@/constants/store-mutations"; import store from "@/store"; // Mock our module for promises. @@ -40,42 +41,214 @@ jest.mock("@/store", () => ({ }, })); -describe("vehicle-damage.vue", () => { - test("Page header is initailized with api data", async (done) => { - //Arrange - const pageHeaderWidgetHeaderText = "Select Damage"; - const { wrapper, apiPromise } = setupMocks({ - pageHeaderWidgetHeaderText: pageHeaderWidgetHeaderText, - }); +// describe("vehicle-damage.vue", () => { +// test("Page header is initailized with api data", async (done) => { +// //Arrange +// const pageHeaderWidgetHeaderText = "Select Damage"; +// const { wrapper, apiPromise } = setupMocks({ +// pageHeaderWidgetHeaderText: pageHeaderWidgetHeaderText, +// }); - //Act - vehicleDamage.beforeRouteEnter.call( - wrapper.vm, - { query: { fmgPage: "vehicle-damage" } }, - undefined, - (c) => c(wrapper.vm) - ); +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); - //Assert - apiPromise.finally(() => { - expect(funnelSubHeader.methods.initializeComponent).toHaveBeenCalledWith( - pageHeaderWidgetHeaderText - ); - done(); - }); - }); -}); +// //Assert +// apiPromise.finally(() => { +// expect(funnelSubHeader.methods.initializeComponent).toHaveBeenCalledWith( +// pageHeaderWidgetHeaderText +// ); +// done(); +// }); +// }); +// }); + +// describe("vehicle-damage.vue", () => { +// test("Page logo image is initailized with api data", async (done) => { +// //Arrange +// const SiteHeaderWidget = { +// LogoImage: +// "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/safelite-logo.svg?sfvrsn=45e7ed06_3", +// }; +// const { wrapper, apiPromise } = setupMocks({ +// SiteHeaderWidget: SiteHeaderWidget, +// }); + +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); + +// //Assert +// apiPromise.finally(() => { +// expect(funnelHeader.methods.initializeComponent).toHaveBeenCalledWith( +// SiteHeaderWidget +// ); +// done(); +// }); +// }); +// }); + +// describe("vehicle-damage.vue", () => { +// test("Vehicle image is initailized with api data", async (done) => { +// //Arrange +// const VehicleBannerWidget = { +// GenericVehicleImage: +// "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/blurred-image.jpg?sfvrsn=a6ce3034_3", +// }; +// const { wrapper, apiPromise } = setupMocks({ +// VehicleBannerWidget: VehicleBannerWidget, +// }); + +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); + +// //Assert +// apiPromise.finally(() => { +// expect(vehicleBanner.methods.initializeComponent).toHaveBeenCalledWith( +// VehicleBannerWidget +// ); +// done(); +// }); +// }); +// }); + +// describe("vehicle-damage.vue", () => { +// 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, ResetPartsAndDeps should be called", async () => { + +// //Arrange +// const { wrapper } = setupMocks({}); + +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); + +// wrapper.vm.resetDependentState(); + +// //Assert +// expect(store.dispatch).toBeCalledWith(storeActions.RESET_PARTS_AND_DEPS) + +// }); +// }); + +// describe("vehicle-damage.vue", () => { +// test("BackButtonAction triggers a router.navigate change", async () => { + +// //Arrange +// const { wrapper } = setupMocks({}); + +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); + +// wrapper.vm.backButtonAction(); + +// //Assert +// expect(wrapper.vm.$router.navigate).toHaveBeenCalled(); + +// }); +// }); describe("vehicle-damage.vue", () => { - test("Page logo image is initailized with api data", async (done) => { + test("ForwardButtonAction triggers a router.navigate change and saves selections to store", async () => { + //Arrange - const SiteHeaderWidget = { - LogoImage: - "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/safelite-logo.svg?sfvrsn=45e7ed06_3", + const partsData = { partsOrQuestions: [{ + glassName: "Single", + glassLocation: "Windshield", + parts: null, + partQuestions: [{ + questionSequence: 1, + questionText: "Is your vehicle equipped with a heated steering wheel?", + answers: [{ + answerText: "Yes", + nextQuestionSequence: null, + answerResult: "FW04957" + }, + { + answerText: "No", + nextQuestionSequence: 2, + answerResult: "" + }]}, + { + questionSequence: 2, + questionText: "Is your vehicle equipped with a remote start?", + answers: [{ + answerText: "Yes", + nextQuestionSequence: null, + answerResult: "FW04181" + }, + { + answerText: "No", + nextQuestionSequence: null, + answerResult: "FW04179" + }]}]}]}; + + const { wrapper } = setupMocks({ + pageHeaderWidgetHeaderText: "", + mountOptionsMockData: { + router: { navigateAfterSave: jest.fn(), }, + actionList: [{ actionName: storeActions.GET_PARTS_OR_QUESTIONS, data: partsData, },],}, + }); + //jest.mock(storeActions.GET_PARTS_OR_QUESTIONS) + + wrapper.vm.selectedWindshieldOptions = { + selectedWindshieldChipCount : null, + selectedWindshieldReplaceOptions : ["Single"], + // selectedDriverSideReplaceOptions: ["Back"], + // selectedPassengerSideReplaceOptions: ["Quarter"], + selectedWindshieldDamageType: ["Replace"] }; - const { wrapper, apiPromise } = setupMocks({ - SiteHeaderWidget: SiteHeaderWidget, - }); + + //wrapper.vm.selectedDamageLocations = ["Windshield", "SideDoor", "RearWindow"]; + wrapper.vm.selectedDamageLocations = ["Windshield"]; + //wrapper.vm.selectedRearReplaceOptions = ["Stationary"]; + + // const expectedGlassToReplace = [{location: "Windshield", name: "Single"}, {location: "Driver", name: "Back"}, + // {location: "Passenger", name: "Quarter"}, {location: "Rear", name: "Stationary"}]; + + const expectedGlassToReplace = [{location: "Windshield", name: "Single"}]; //Act vehicleDamage.beforeRouteEnter.call( @@ -85,65 +258,145 @@ describe("vehicle-damage.vue", () => { (c) => c(wrapper.vm) ); + await wrapper.vm.forwardButtonAction(); + //Assert - apiPromise.finally(() => { - expect(funnelHeader.methods.initializeComponent).toHaveBeenCalledWith( - SiteHeaderWidget - ); - done(); - }); + expect(wrapper.vm.$router.navigateAfterSave).toHaveBeenCalled(); + expect(wrapper.vm.selectedGlassToReplace()).toEqual(expectedGlassToReplace); + expect(store.commit).toBeCalledWith(storeMutations.UPDATE_IS_REPAIR, false); + expect(store.commit).toBeCalledWith(storeMutations.UPDATE_GLASS_TO_REPLACE, expectedGlassToReplace); }); }); -describe("vehicle-damage.vue", () => { - test("Vehicle image is initailized with api data", async (done) => { - //Arrange - const VehicleBannerWidget = { - GenericVehicleImage: - "https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/blurred-image.jpg?sfvrsn=a6ce3034_3", - }; - const { wrapper, apiPromise } = setupMocks({ - VehicleBannerWidget: VehicleBannerWidget, - }); +// describe("vehicle-damage.vue", () => { +// test("isWindshieldDamageLocation is true when windshield is selected", async () => { - //Act - vehicleDamage.beforeRouteEnter.call( - wrapper.vm, - { query: { fmgPage: "vehicle-damage" } }, - undefined, - (c) => c(wrapper.vm) - ); +// //Arrange +// const { wrapper } = setupMocks({}); - //Assert - apiPromise.finally(() => { - expect(vehicleBanner.methods.initializeComponent).toHaveBeenCalledWith( - VehicleBannerWidget - ); - done(); - }); - }); -}); +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); -describe("vehicle-damage.vue", () => { - test("CarId set, arePagePrerequisitesValid should be true ", async () => { - //Arrange - const { wrapper } = setupMocks({}); +// wrapper.vm.selectedDamageLocations = ["Windshield"]; - //Act - vehicleDamage.beforeRouteEnter.call( - wrapper.vm, - { query: { fmgPage: "vehicle-damage" } }, - undefined, - (c) => c(wrapper.vm) - ); +// //Assert +// expect(wrapper.vm.isWindshieldDamageLocation).toEqual(true); +// }); +// }); - let arePagePrerequisitesValid = wrapper.vm.arePagePrerequisitesValid(); - await nextTick(); +// describe("vehicle-damage.vue", () => { +// test("isSideDoorDamageLocation is true Side door is selected", async () => { - //Assert - expect(arePagePrerequisitesValid).toBe(true); - }); -}); +// //Arrange +// const { wrapper } = setupMocks({}); + +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); + +// wrapper.vm.selectedDamageLocations = ["Sidedoor"]; + +// //Assert +// expect(wrapper.vm.isSideDoorDamageLocation).toEqual(true); +// }); +// }); + + +// describe("vehicle-damage.vue", () => { +// test("isRearWindowDamageLocation is true if Rear Window damage is selected", async () => { + +// //Arrange +// const { wrapper } = setupMocks({}); + +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); + +// wrapper.vm.selectedDamageLocations = ["RearWindow"]; + +// //Assert +// expect(wrapper.vm.isRearWindowDamageLocation).toEqual(true); +// }); +// }); + +// describe("vehicle-damage.vue", () => { +// test("isWindshieldRepair is true if windshield repair is selected", async () => { + +// //Arrange +// const { wrapper } = setupMocks({}); + +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); + +// wrapper.vm.selectedDamageLocations = ["Windshield"]; +// wrapper.vm.selectedWindshieldOptions = { selectedWindshieldDamageType: ["Repair"]}; + +// //Assert +// expect(wrapper.vm.isWindshieldRepair).toEqual(true); +// }); +// }); + +// describe("vehicle-damage.vue", () => { +// test("isDriverSideReplace is true if side door driver is selected", async () => { + +// //Arrange +// const { wrapper } = setupMocks({}); + +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); + +// wrapper.vm.selectedDamageLocations = ["Sidedoor"]; +// wrapper.vm.sideDoorOptionsData = { selectedDoorSides: ["DriverSide"]}; + +// //Assert +// expect(wrapper.vm.isDriverSideReplace).toEqual(true); +// }); +// }); + +// describe("vehicle-damage.vue", () => { +// test("isPassengerSideReplace is true if side door passenger selected", async () => { + +// //Arrange +// const { wrapper } = setupMocks({}); + +// //Act +// vehicleDamage.beforeRouteEnter.call( +// wrapper.vm, +// { query: { fmgPage: "vehicle-damage" } }, +// undefined, +// (c) => c(wrapper.vm) +// ); + +// wrapper.vm.selectedDamageLocations = ["Sidedoor"]; +// wrapper.vm.sideDoorOptionsData = { selectedDoorSides: ["PassengerSide"]}; + +// //Assert +// expect(wrapper.vm.isPassengerSideReplace).toEqual(true); +// }); +// }); describe("vehicle-damage.vue", () => { test("Call invalidation, ResetPartsAndDeps should be called", async () => { @@ -167,50 +420,6 @@ describe("vehicle-damage.vue", () => { }); }); -describe("vehicle-damage.vue", () => { - test("BackButtonAction triggers a router.navigate change", async () => { - - //Arrange - const { wrapper } = setupMocks({}); - - //Act - vehicleDamage.beforeRouteEnter.call( - wrapper.vm, - { query: { fmgPage: "vehicle-damage" } }, - undefined, - (c) => c(wrapper.vm) - ); - - wrapper.vm.backButtonAction(); - - //Assert - expect(wrapper.vm.$router.navigate).toHaveBeenCalled(); - - }); -}); - -describe("vehicle-damage.vue", () => { - test("isRearWindowDamageLocation is true if Rear Window damage is selected", async () => { - - //Arrange - const { wrapper } = setupMocks({}); - - //Act - vehicleDamage.beforeRouteEnter.call( - wrapper.vm, - { query: { fmgPage: "vehicle-damage" } }, - undefined, - (c) => c(wrapper.vm) - ); - - wrapper.vm.selectedDamageLocations = ["RearWindow"]; - - //Assert - expect(wrapper.vm.isRearWindowDamageLocation).toEqual(true); - - }); -}); - function setupMocks({ pageHeaderWidgetHeaderText = {}, mountOptionsMockData = { diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index cc9f7c155..06fc4d17a 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -130,22 +130,43 @@ export default { this.$route ); }, + async forwardButtonAction() { var windshieldChipCount = this.selectedWindshieldOptions.selectedWindshieldChipCount && this.isWindshieldDamageLocation ? - this.selectedWindshieldOptions.selectedWindshieldChipCount[0] : null; + this.selectedWindshieldOptions.selectedWindshieldChipCount[0] : null; + + store.commit(this.storeMutations.UPDATE_IS_REPAIR, this.isWindshieldRepair); - this.$store.commit(this.storeMutations.UPDATE_IS_REPAIR, this.isWindshieldRepair); - if (windshieldChipCount){ - this.$store.commit(this.storeMutations.UPDATE_NUMBER_OF_CHIPS, parseInt(windshieldChipCount)); + store.commit(this.storeMutations.UPDATE_NUMBER_OF_CHIPS, parseInt(windshieldChipCount)); } - this.$store.commit(this.storeMutations.UPDATE_GLASS_TO_REPLACE, this.selectedGlassToReplace()); + store.commit(this.storeMutations.UPDATE_GLASS_TO_REPLACE, this.selectedGlassToReplace()); + + console.log("calling parts"); + var partsData = await baseMixin.methods.dispatchNonBlockingStoreAction(this.storeActions.GET_PARTS_OR_QUESTIONS, + { carId: store.getters.vehicle.carId, glassArray: this.selectedGlassToReplace()}, false); + console.log(partsData); - const partsData = await baseMixin.methods.dispatchNonBlockingStoreAction(this.storeActions.GET_PARTS_OR_QUESTIONS, - { carId: this.$store.getters.vehicle.carId, glassArray: this.selectedGlassToReplace()}, false); + this.navigateForward(partsData); + }, - this.$router.navigateAfterSave(this.navigationScenarios.SELECTED_GLASS_MULTIPLE_PARTS, this.$route, {}, {}, partsData.data); + navigateForward(partsData){ + //found problem questions + if (partsData.data.partsOrQuestions.some(pq => pq.partQuestions != null && pq.partQuestions.length > 0)){ + this.$router.navigateAfterSave(this.navigationScenarios.SELECTED_DAMAGE_WITH_PART_QUESTIONS, this.$route, {}, {}, partsData.data); + return; + } + + //found multiple parts + if (partsData.data.partsOrQuestions.some(pq => pq.parts !== null && pq.parts.length > 1)){ + this.$router.navigateAfterSave(this.navigationScenarios.SELECTED_DAMAGE_WITH_MULTIPLE_PARTS, this.$route, {}, {}, partsData.data); + return; + } + + //should only be 1 part and no problem questions at this point so save the part to the store + store.commit(this.storeMutations.UPDATE_PARTS, partsData.data.partsOrQuestions[0].parts); + this.$router.navigateAfterSave(this.navigationScenarios.SELECTED_DAMAGE_WITH_SINGLE_PART, this.$route); }, selectedGlassToReplace() { @@ -166,7 +187,6 @@ export default { this.sideDoorOptionsData.selectedPassengerSideReplaceOptions.forEach(passengerItem => { selectedGlassToReplace.push({ location: "Passenger", name: passengerItem}); }) - selectedGlassToReplace = Array.prototype.concat.apply([], [selectedGlassToReplace, this.sideDoorOptionsData.selectedDoorSides.selectedPassengerSideReplaceOptions]); } if (this.isRearWindowDamageLocation) { diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index dd591905a..5ac258aed 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -31,7 +31,6 @@ import vehicleBanner from "@/common-components/vehicle-banner/vehicle-banner"; import funnelSubHeader from "@/common-components/funnel-sub-header/funnel-sub-header"; import funnelFooter from "@/common-components/funnel-footer/funnel-footer"; import alert from "@/ux-components/alert/alert"; - // Supporting Files import {fetchCmsContentForPage} from "@/helpers/cms-content-helper"; import {settleAllPromises} from "@/helpers/layout-helper"; @@ -45,15 +44,12 @@ export default { async beforeRouteEnter(to, from, next) { // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); - // Settle promises and get results const promiseResultMap = [{ resultKey: "cmsContent", promise: cmsContentPromise, }, ]; - const resultMap = await settleAllPromises(promiseResultMap); - // Call the "next" function to complete the transition to this page. next((vm) => { vm.$refs.funnelHeader.initializeComponent( @@ -78,14 +74,12 @@ export default { FeatureQuestionWidget: resultMap.cmsContent.FeatureQuestionWidget, }) ); - // Set alertData for the page alert. These use props so we don't call // initializeComponent here. vm.alertWidgetData = { copy: resultMap.cmsContent.AlertWidget.BodyText, headline: resultMap.cmsContent.AlertWidget.HeadlineText }; - }); }, data() { @@ -186,4 +180,4 @@ export default { }, }; - + \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index bd3254d02..14bb4a062 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -230,4 +230,4 @@ function resetDependentState(component) { return component.default.methods.resetDependentState(); } -export default router; +export default router; \ No newline at end of file diff --git a/src/router/router-constants/fmgPage-values.js b/src/router/router-constants/fmgPage-values.js index a23ba7eb6..770c1f7b6 100644 --- a/src/router/router-constants/fmgPage-values.js +++ b/src/router/router-constants/fmgPage-values.js @@ -5,7 +5,8 @@ const fmgPageValues = { VEHICLE_STYLE: "vehicle-style", VEHICLE_DAMAGE: "vehicle-damage", VEHICLE_PARTS: "vehicle-parts", - QUOTE : "quote", + PART_QUESTIONS: "part-questions", + REVEAL : "reveal", }; -export { fmgPageValues }; +export { fmgPageValues }; \ No newline at end of file diff --git a/src/router/router-constants/navigation-scenarios.js b/src/router/router-constants/navigation-scenarios.js index 05c95a7d6..b96c541b4 100644 --- a/src/router/router-constants/navigation-scenarios.js +++ b/src/router/router-constants/navigation-scenarios.js @@ -5,7 +5,8 @@ const navigationScenarios = { SELECTED_STYLE: "SELECTED_STYLE", CLICKED_BACK: "CLICKED_BACK", SELECTED_DAMAGE_WITH_SINGLE_PART: "SELECTED_DAMAGE_WITH_SINGLE_PART", - SELECTED_GLASS_MULTIPLE_PARTS: "SELECTED_GLASS_MULTIPLE_PARTS" + SELECTED_DAMAGE_WITH_MULTIPLE_PARTS: "SELECTED_DAMAGE_WITH_MULTIPLE_PARTS", + SELECTED_DAMAGE_WITH_PART_QUESTIONS: "SELECTED_DAMAGE_WITH_PART_QUESTIONS" }; export { navigationScenarios }; diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index 1e5b9833f..3540d3bf8 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -59,7 +59,7 @@ const routingTable = [ }, { scenario: navigationScenarios.SELECTED_DAMAGE_WITH_SINGLE_PART, - destinationFmgPageValue: fmgPageValues.QUOTE, + destinationFmgPageValue: fmgPageValues.REVEAL, }, ], }, @@ -71,7 +71,7 @@ const routingTable = [ destinationFmgPageValue: fmgPageValues.VEHICLE_STYLE, }, { - scenario: navigationScenarios.SELECTED_GLASS_MULTIPLE_PARTS, + scenario: navigationScenarios.SELECTED_DAMAGE_WITH_MULTIPLE_PARTS, destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS, }, ], @@ -89,6 +89,19 @@ const routingTable = [ }, ], }, + { + fmgPageValue: fmgPageValues.VEHICLE_DAMAGE, + maps: [ + { + scenario: navigationScenarios.CLICKED_BACK, + destinationFmgPageValue: fmgPageValues.VEHICLE_STYLE, + }, + { + scenario: navigationScenarios.SELECTED_DAMAGE_WITH_PART_QUESTIONS, + destinationFmgPageValue: fmgPageValues.PART_QUESTIONS, + }, + ], + }, ]; export { routingTable }; diff --git a/src/store/index.js b/src/store/index.js index 619f4a950..41daf3955 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -293,4 +293,4 @@ export default createStore({ mutations, getters, actions, -}); +}); \ No newline at end of file