CSR-530 Add routing for experiment-integration

This commit is contained in:
Katie 2022-07-19 15:20:02 -04:00
parent ffad30387b
commit cefd25399e
4 changed files with 300 additions and 235 deletions

15
src/layouts/test-one.vue Normal file
View file

@ -0,0 +1,15 @@
<template>
Test1
</template>
<script>
export default {
name: "test1",
methods: {
arePagePrerequisitesValid() {
return true;
}
}
}
</script>

15
src/layouts/test-two.vue Normal file
View file

@ -0,0 +1,15 @@
<template>
Test2
</template>
<script>
export default {
name: "test2",
methods: {
arePagePrerequisitesValid() {
return true;
}
}
}
</script>

View file

@ -19,7 +19,24 @@ import eventBus from "@/helpers/event-bus/event-bus";
import store from "@/store"; import store from "@/store";
import analyticsMixin from "@/mixins/analytics-mixin"; import analyticsMixin from "@/mixins/analytics-mixin";
import TestOne from "@/layouts/test-one";
import TestTwo from "@/layouts/test-two";
const routes = [ const routes = [
{
path: "/test1",
name: "test1",
components: {
default: TestOne
}
},
{
path: "/test2",
name: "test2",
components: {
default: TestTwo
}
},
{ {
path: "/", path: "/",
name: "root", name: "root",
@ -53,7 +70,6 @@ const routes = [
return next(false); return next(false);
} }
// Assign our fmgPage so it will load normally like the other pages. // Assign our fmgPage so it will load normally like the other pages.
to.query.fmgPage = pageToRedirectTo; to.query.fmgPage = pageToRedirectTo;
} }
@ -180,15 +196,16 @@ async function navigate(scenario, currentRoute, optionalQuery = {}, optionalPara
// Get navigation map depending on the scenario and the current 'page' you're on. // Get navigation map depending on the scenario and the current 'page' you're on.
function getNavigationMap(scenario, currentRoute) { function getNavigationMap(scenario, currentRoute) {
const fmgPageValue = currentRoute.query.fmgPage; const fmgPageValue = currentRoute.query.fmgPage;
const matchedQueryValue = routingTable let matchedQueryValue = routingTable(store)
.filter( .filter(
(item) => (item) =>
item.fmgPageValue === fmgPageValue && item.fmgPageValue === fmgPageValue &&
item.maps.filter((map) => map.scenario === scenario).length > 0 item.maps.filter((map) => map.scenario === scenario).length > 0
) )
.map((m) => m.maps.filter((map) => map.scenario === scenario)); .map((m) => m.maps.filter((map) => map.scenario === scenario))[0]
.filter(x => x.filter === true || x.filter === undefined);
return matchedQueryValue[0][0]; return matchedQueryValue[0];
} }
//---------------------------------------------------------- Private Functions ---------------------------------------------------------- //---------------------------------------------------------- Private Functions ----------------------------------------------------------

View file

@ -1,236 +1,254 @@
import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; import { fmgPageValues } from "@/router/router-constants/fmgPage-values";
import { navigationScenarios } from "@/router/router-constants/navigation-scenarios"; import { navigationScenarios } from "@/router/router-constants/navigation-scenarios";
const routingTable = [ // Get store from router/index.js instead of importing it here to get updated values
{ const routingTable = function(store) {
fmgPageValue: fmgPageValues.VEHICLE_YEAR, return [
maps: [ {
{ fmgPageValue: fmgPageValues.VEHICLE_YEAR,
scenario: navigationScenarios.SELECTED_YEAR, maps: [
destinationFmgPageValue: fmgPageValues.VEHICLE_MAKE, {
}, scenario: navigationScenarios.SELECTED_YEAR,
], destinationFmgPageValue: "test1",
}, filter: store.getters.vehicle.year > 2010
{ },
fmgPageValue: fmgPageValues.VEHICLE_MAKE, {
maps: [ scenario: navigationScenarios.SELECTED_YEAR,
{ destinationFmgPageValue: "test2",
scenario: navigationScenarios.SELECTED_MAKE, filter: store.getters.vehicle.year <= 2010
destinationFmgPageValue: fmgPageValues.VEHICLE_MODEL, },
}, {
{ scenario: navigationScenarios.SELECTED_YEAR,
scenario: navigationScenarios.CLICKED_BACK, destinationFmgPageValue: fmgPageValues.VEHICLE_MAKE,
destinationFmgPageValue: fmgPageValues.VEHICLE_YEAR, },
},
], {
}, scenario: navigationScenarios.SELECTED_YEAR,
{ destinationFmgPageValue: fmgPageValues.VEHICLE_MAKE,
fmgPageValue: fmgPageValues.VEHICLE_MODEL, },
maps: [ ],
{ },
scenario: navigationScenarios.SELECTED_MODEL, {
destinationFmgPageValue: fmgPageValues.VEHICLE_STYLE, fmgPageValue: fmgPageValues.VEHICLE_MAKE,
}, maps: [
{ {
scenario: navigationScenarios.CLICKED_BACK, scenario: navigationScenarios.SELECTED_MAKE,
destinationFmgPageValue: fmgPageValues.VEHICLE_MAKE, destinationFmgPageValue: fmgPageValues.VEHICLE_MODEL,
}, },
], {
}, scenario: navigationScenarios.CLICKED_BACK,
{ destinationFmgPageValue: fmgPageValues.VEHICLE_YEAR,
fmgPageValue: fmgPageValues.VEHICLE_STYLE, },
maps: [ ],
{ },
scenario: navigationScenarios.SELECTED_STYLE, {
destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, fmgPageValue: fmgPageValues.VEHICLE_MODEL,
}, maps: [
{ {
scenario: navigationScenarios.CLICKED_BACK, scenario: navigationScenarios.SELECTED_MODEL,
destinationFmgPageValue: fmgPageValues.VEHICLE_MODEL, destinationFmgPageValue: fmgPageValues.VEHICLE_STYLE,
}, },
], {
}, scenario: navigationScenarios.CLICKED_BACK,
{ destinationFmgPageValue: fmgPageValues.VEHICLE_MAKE,
fmgPageValue: fmgPageValues.VEHICLE_DAMAGE, },
maps: [ ],
{ },
scenario: navigationScenarios.CLICKED_BACK, {
destinationFmgPageValue: fmgPageValues.VEHICLE_STYLE, fmgPageValue: fmgPageValues.VEHICLE_STYLE,
}, maps: [
{ {
scenario: navigationScenarios.CLICKED_FORWARD_WITH_VIN, scenario: navigationScenarios.SELECTED_STYLE,
destinationFmgPageValue: fmgPageValues.VIN_LOOKUP, destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE,
}, },
{ {
scenario: navigationScenarios.CLICKED_FORWARD_WITHOUT_VIN, scenario: navigationScenarios.CLICKED_BACK,
destinationFmgPageValue: fmgPageValues.ESTIMATE, destinationFmgPageValue: fmgPageValues.VEHICLE_MODEL,
}, },
], ],
}, },
{ {
fmgPageValue: fmgPageValues.VEHICLE_PARTS, fmgPageValue: fmgPageValues.VEHICLE_DAMAGE,
maps: [ maps: [
{ {
scenario: navigationScenarios.CLICKED_BACK, scenario: navigationScenarios.CLICKED_BACK,
destinationFmgPageValue: fmgPageValues.VIN_LOOKUP, destinationFmgPageValue: fmgPageValues.VEHICLE_STYLE,
}, },
{ {
scenario: navigationScenarios.SELECTED_PARTS, scenario: navigationScenarios.CLICKED_FORWARD_WITH_VIN,
destinationFmgPageValue: fmgPageValues.QUOTE, destinationFmgPageValue: fmgPageValues.VIN_LOOKUP,
}, },
{ {
scenario: navigationScenarios.CLICKED_FORWARD, scenario: navigationScenarios.CLICKED_FORWARD_WITHOUT_VIN,
destinationFmgPageValue: fmgPageValues.REVEAL, destinationFmgPageValue: fmgPageValues.ESTIMATE,
}, },
], ],
}, },
{ {
fmgPageValue: fmgPageValues.REVEAL, fmgPageValue: fmgPageValues.VEHICLE_PARTS,
maps: [ maps: [
{ {
scenario: navigationScenarios.CLICKED_BACK, scenario: navigationScenarios.CLICKED_BACK,
destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, destinationFmgPageValue: fmgPageValues.VIN_LOOKUP,
}, },
{ {
scenario: navigationScenarios.SELECTED_PARTS, scenario: navigationScenarios.SELECTED_PARTS,
destinationFmgPageValue: fmgPageValues.VIN_LOOKUP, destinationFmgPageValue: fmgPageValues.QUOTE,
}, },
], {
}, scenario: navigationScenarios.CLICKED_FORWARD,
{ destinationFmgPageValue: fmgPageValues.REVEAL,
fmgPageValue: fmgPageValues.VIN_LOOKUP, },
maps: [ ],
{ },
scenario: navigationScenarios.CLICKED_BACK, {
destinationFmgPageValue: fmgPageValues.ESTIMATE, fmgPageValue: fmgPageValues.REVEAL,
}, maps: [
{ {
scenario: navigationScenarios.SELECTED_VIN_HAS_MISMATCHED_GLASS, scenario: navigationScenarios.CLICKED_BACK,
destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE,
}, },
{ {
scenario: navigationScenarios.CLICKED_BACK_WITH_VIN, scenario: navigationScenarios.SELECTED_PARTS,
destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, destinationFmgPageValue: fmgPageValues.VIN_LOOKUP,
}, },
{ ],
scenario: navigationScenarios.SELECTED_VIN_WITH_PART_QUESTIONS, },
destinationFmgPageValue: fmgPageValues.PART_QUESTIONS {
}, fmgPageValue: fmgPageValues.VIN_LOOKUP,
{ maps: [
scenario: navigationScenarios.SELECTED_VIN_WITH_MULTIPLE_PARTS, {
destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS scenario: navigationScenarios.CLICKED_BACK,
} destinationFmgPageValue: fmgPageValues.ESTIMATE,
], },
}, {
{ scenario: navigationScenarios.SELECTED_VIN_HAS_MISMATCHED_GLASS,
fmgPageValue: fmgPageValues.LICENSE_PLATE_LOOKUP, destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE,
maps: [ },
{ {
scenario: navigationScenarios.CLICKED_BACK, scenario: navigationScenarios.CLICKED_BACK_WITH_VIN,
destinationFmgPageValue: fmgPageValues.ESTIMATE, destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE,
}, },
{ {
scenario: navigationScenarios.CLICKED_FORWARD, scenario: navigationScenarios.SELECTED_VIN_WITH_PART_QUESTIONS,
destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, destinationFmgPageValue: fmgPageValues.PART_QUESTIONS
}, },
{ {
scenario: navigationScenarios.SELECTED_VIN_WITH_PART_QUESTIONS, scenario: navigationScenarios.SELECTED_VIN_WITH_MULTIPLE_PARTS,
destinationFmgPageValue: fmgPageValues.PART_QUESTIONS destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS
}, }
{ ],
scenario: navigationScenarios.SELECTED_VIN_WITH_MULTIPLE_PARTS, },
destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS {
} fmgPageValue: fmgPageValues.LICENSE_PLATE_LOOKUP,
], maps: [
}, {
{ scenario: navigationScenarios.CLICKED_BACK,
fmgPageValue: fmgPageValues.ADDRESS_LOOKUP, destinationFmgPageValue: fmgPageValues.ESTIMATE,
maps: [ },
{ {
scenario: navigationScenarios.CLICKED_BACK, scenario: navigationScenarios.CLICKED_FORWARD,
destinationFmgPageValue: fmgPageValues.ESTIMATE, destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE,
}, },
{ {
scenario: navigationScenarios.CONTINUING_WITH_MULTIPLE_VEHICLES, scenario: navigationScenarios.SELECTED_VIN_WITH_PART_QUESTIONS,
destinationFmgPageValue: fmgPageValues.ADDRESS_VEHICLES, destinationFmgPageValue: fmgPageValues.PART_QUESTIONS
}, },
{ {
scenario: navigationScenarios.SELECTED_VIN_HAS_MISMATCHED_GLASS, scenario: navigationScenarios.SELECTED_VIN_WITH_MULTIPLE_PARTS,
destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS
}, }
{ ],
scenario: navigationScenarios.SELECTED_VIN_WITH_PART_QUESTIONS, },
destinationFmgPageValue: fmgPageValues.PART_QUESTIONS {
}, fmgPageValue: fmgPageValues.ADDRESS_LOOKUP,
{ maps: [
scenario: navigationScenarios.SELECTED_VIN_WITH_MULTIPLE_PARTS, {
destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS scenario: navigationScenarios.CLICKED_BACK,
} destinationFmgPageValue: fmgPageValues.ESTIMATE,
], },
}, {
{ scenario: navigationScenarios.CONTINUING_WITH_MULTIPLE_VEHICLES,
fmgPageValue: fmgPageValues.ADDRESS_VEHICLES, destinationFmgPageValue: fmgPageValues.ADDRESS_VEHICLES,
maps: [ },
{ {
scenario: navigationScenarios.CLICKED_BACK, scenario: navigationScenarios.SELECTED_VIN_HAS_MISMATCHED_GLASS,
destinationFmgPageValue: fmgPageValues.ADDRESS_LOOKUP, destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE,
}, },
{ {
scenario: navigationScenarios.CLICKED_FORWARD, scenario: navigationScenarios.SELECTED_VIN_WITH_PART_QUESTIONS,
destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, destinationFmgPageValue: fmgPageValues.PART_QUESTIONS
}, },
{ {
scenario: navigationScenarios.SELECTED_VIN_WITH_PART_QUESTIONS, scenario: navigationScenarios.SELECTED_VIN_WITH_MULTIPLE_PARTS,
destinationFmgPageValue: fmgPageValues.PART_QUESTIONS destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS
}, }
{ ],
scenario: navigationScenarios.SELECTED_VIN_WITH_MULTIPLE_PARTS, },
destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS {
}, fmgPageValue: fmgPageValues.ADDRESS_VEHICLES,
{ maps: [
scenario: navigationScenarios.SELECTED_PROVIDE_VIN_DIFFERENT_WAY, {
destinationFmgPageValue: fmgPageValues.ESTIMATE scenario: navigationScenarios.CLICKED_BACK,
} destinationFmgPageValue: fmgPageValues.ADDRESS_LOOKUP,
], },
}, {
{ scenario: navigationScenarios.CLICKED_FORWARD,
fmgPageValue: fmgPageValues.ESTIMATE, destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE,
maps: [ },
{ {
scenario: navigationScenarios.CLICKED_BACK, scenario: navigationScenarios.SELECTED_VIN_WITH_PART_QUESTIONS,
destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, destinationFmgPageValue: fmgPageValues.PART_QUESTIONS
}, },
{ {
scenario: navigationScenarios.SELECTED_MANUAL_VIN, scenario: navigationScenarios.SELECTED_VIN_WITH_MULTIPLE_PARTS,
destinationFmgPageValue: fmgPageValues.VIN_LOOKUP, destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS
}, },
{ {
scenario: navigationScenarios.SELECTED_LICENSE_PLATE, scenario: navigationScenarios.SELECTED_PROVIDE_VIN_DIFFERENT_WAY,
destinationFmgPageValue: fmgPageValues.LICENSE_PLATE_LOOKUP, destinationFmgPageValue: fmgPageValues.ESTIMATE
}, }
{ ],
scenario: navigationScenarios.SELECTED_HOME_ADDRESS, },
destinationFmgPageValue: fmgPageValues.ADDRESS_LOOKUP, {
}, fmgPageValue: fmgPageValues.ESTIMATE,
], maps: [
}, {
{ scenario: navigationScenarios.CLICKED_BACK,
fmgPageValue: fmgPageValues.PART_QUESTIONS, destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE,
maps: [ },
{ {
scenario: navigationScenarios.CLICKED_BACK, scenario: navigationScenarios.SELECTED_MANUAL_VIN,
destinationFmgPageValue: fmgPageValues.VIN_LOOKUP destinationFmgPageValue: fmgPageValues.VIN_LOOKUP,
}, },
{ {
scenario: navigationScenarios.ANSWERED_QUESTIONS_WITH_MULTIPLE_PARTS, scenario: navigationScenarios.SELECTED_LICENSE_PLATE,
destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS destinationFmgPageValue: fmgPageValues.LICENSE_PLATE_LOOKUP,
}, },
{ {
scenario: navigationScenarios.ANSWERED_QUESTIONS_WITH_SINGLE_PART, scenario: navigationScenarios.SELECTED_HOME_ADDRESS,
destinationFmgPageValue: fmgPageValues.QUOTE, destinationFmgPageValue: fmgPageValues.ADDRESS_LOOKUP,
}, },
] ],
}, },
]; {
fmgPageValue: fmgPageValues.PART_QUESTIONS,
maps: [
{
scenario: navigationScenarios.CLICKED_BACK,
destinationFmgPageValue: fmgPageValues.VIN_LOOKUP
},
{
scenario: navigationScenarios.ANSWERED_QUESTIONS_WITH_MULTIPLE_PARTS,
destinationFmgPageValue: fmgPageValues.VEHICLE_PARTS
},
{
scenario: navigationScenarios.ANSWERED_QUESTIONS_WITH_SINGLE_PART,
destinationFmgPageValue: fmgPageValues.QUOTE,
},
]
},
];
}
export { routingTable }; export { routingTable };