Merge branch 'develop' of https://github.com/Safelite/DigitalConsumer.ISS into feature/digital/SSR-505
This commit is contained in:
commit
11e81b215a
12 changed files with 80 additions and 87 deletions
|
|
@ -147,6 +147,7 @@ export default {
|
|||
&:disabled,
|
||||
&.disabled {
|
||||
background-color: $gray-100;
|
||||
color: $gray-500;
|
||||
filter: grayscale(100%);
|
||||
&:hover {
|
||||
box-shadow: 0 0 0 4px transparent;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@
|
|||
class="form-control"
|
||||
v-model.trim="value"
|
||||
v-maska="mask"
|
||||
@keydown="preventDateInput"
|
||||
:type="type"
|
||||
:ref="inputId"
|
||||
:id="inputId"
|
||||
|
|
@ -138,17 +137,6 @@ export default {
|
|||
this.$emit("update:modelValue", value);
|
||||
|
||||
},
|
||||
|
||||
preventDateInput(evt) {
|
||||
if (this.type === "date") {
|
||||
if (/\d/.test(evt.key)) {
|
||||
evt.stopPropagation();
|
||||
evt.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
computed: {
|
||||
questionText() {
|
||||
|
|
@ -203,18 +191,6 @@ export default {
|
|||
|
||||
<style lang="scss">
|
||||
|
||||
input[type="date"]:invalid::-webkit-datetime-edit-year-field,
|
||||
input[type="date"]:invalid::-webkit-datetime-edit-month-field,
|
||||
input[type="date"]:invalid::-webkit-datetime-edit-day-field,
|
||||
input[type="date"]:invalid::-webkit-datetime-edit-text
|
||||
{
|
||||
color: white;
|
||||
background-color: white;
|
||||
::placeholder {
|
||||
content: " "
|
||||
}
|
||||
}
|
||||
|
||||
input[type="date"]::-webkit-inner-spin-button{
|
||||
display: none;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,7 +99,6 @@ export default {
|
|||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 0;//Required to prevent 'squish' on iPhone
|
||||
z-index: 1060;
|
||||
.bar1,
|
||||
.bar2,
|
||||
.bar3 {
|
||||
|
|
|
|||
|
|
@ -122,8 +122,7 @@ const mockMixin = {
|
|||
|
||||
function setupMocks({
|
||||
pageHeaderWidgetHeaderText,
|
||||
// cmsPageContent = "CMS content goes here",
|
||||
// unverifiedNonADASRepairBodyText = "repair body text",
|
||||
mountOptionsMockData = {},
|
||||
}) {
|
||||
//Mock api responses
|
||||
const apiResponses = {
|
||||
|
|
@ -142,6 +141,7 @@ pageHeaderWidgetHeaderText,
|
|||
unverifiedNonADASRepairBodyText: "Repair body text",
|
||||
},
|
||||
};
|
||||
|
||||
useMainStore().order = {
|
||||
vehicle: {
|
||||
vin: "TESTVIN",
|
||||
|
|
@ -171,9 +171,7 @@ pageHeaderWidgetHeaderText,
|
|||
settleAllPromises.mockImplementation(() => apiPromise);
|
||||
fetchCmsContentForPage.mockImplementation(() => Promise.resolve());
|
||||
|
||||
const mountOptions = getMountOptions({
|
||||
|
||||
});
|
||||
const mountOptions = getMountOptions({});
|
||||
|
||||
mountOptions.mixins = [baseMixin, vehicleQuestionsMixin];
|
||||
|
||||
|
|
@ -181,12 +179,6 @@ pageHeaderWidgetHeaderText,
|
|||
|
||||
wrapper.vm.setCmsContent = baseMixin.methods.setCmsContent;
|
||||
|
||||
// //Mock CMS content
|
||||
// const cmsContent = {
|
||||
// PageContent: cmsPageContent,
|
||||
// NonADASRepairBodyText: unverifiedNonADASRepairBodyText,
|
||||
// };
|
||||
|
||||
return { wrapper };
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,34 +9,29 @@
|
|||
<div class="col">
|
||||
<div class="select-car-form rounded pb-1">
|
||||
<textBlock
|
||||
cmsWidgetName="verifyingCoverageStatement"
|
||||
typeStyle="h5"
|
||||
justifyText="center"
|
||||
class="mt-4 mb-4"
|
||||
id="coverage-statement-text-block"
|
||||
/>
|
||||
cmsWidgetName="verifyingCoverageStatement"
|
||||
typeStyle="h5"
|
||||
justifyText="center"
|
||||
class="mt-4 mb-4"
|
||||
id="coverage-statement-text-block" />
|
||||
<div>
|
||||
<p v-html="continueWithSchedulingBodyText" class="mt-0 small" ></p>
|
||||
<p v-html="continueWithSchedulingBodyText" class="mt-0 small" ></p>
|
||||
</div>
|
||||
<textBlock
|
||||
cmsWidgetName="whatHappensNextCopy"
|
||||
class="mt-4 mb-2 fw-bold"
|
||||
id="coverage-statement-text-block"
|
||||
/>
|
||||
cmsWidgetName="whatHappensNextCopy"
|
||||
class="mt-4 mb-2 fw-bold"
|
||||
id="coverage-statement-text-block" />
|
||||
<div>
|
||||
<p class="small" v-html="bodyText" ref="coverageStatementBodyText"></p>
|
||||
<p class="small" v-html="bodyText" ref="coverageStatementBodyText"></p>
|
||||
</div>
|
||||
|
||||
<steeringText cmsWidgetName="MASteeringText" ></steeringText>
|
||||
|
||||
</div>
|
||||
<siteFooter
|
||||
cmsWidgetName="SiteFooterWidget"
|
||||
:isForwardActionDisabled="!meta.valid"
|
||||
@backClicked="navigateBack"
|
||||
@forwardClicked="forwardButtonAction"
|
||||
ref="siteFooter"
|
||||
/>
|
||||
cmsWidgetName="SiteFooterWidget"
|
||||
:isForwardActionDisabled="!meta.valid"
|
||||
@backClicked="navigateBack"
|
||||
@forwardClicked="forwardButtonAction"
|
||||
ref="siteFooter" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -139,7 +134,7 @@ export default {
|
|||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
|
||||
async forwardButtonAction() {
|
||||
return this.navigateForward();
|
||||
},
|
||||
|
|
|
|||
|
|
@ -63,20 +63,28 @@
|
|||
},
|
||||
servicePackageAnswers() {
|
||||
if (!this.cmsWidgetName) return [];
|
||||
const cmsAnswersContent = [
|
||||
const cmsAnswersContent = [];
|
||||
cmsAnswersContent.push(
|
||||
{
|
||||
Name: 'TierOne',
|
||||
cmsWidgetName: 'EconomyServicePackage'
|
||||
},
|
||||
{
|
||||
Name: 'TierTwo',
|
||||
cmsWidgetName: 'StandardServicePackage'
|
||||
},
|
||||
}
|
||||
);
|
||||
if(this.shouldDisplayTierTwoPackage)
|
||||
{
|
||||
cmsAnswersContent.push(
|
||||
{
|
||||
Name: 'TierTwo',
|
||||
cmsWidgetName: 'StandardServicePackage'
|
||||
},
|
||||
);
|
||||
}
|
||||
cmsAnswersContent.push(
|
||||
{
|
||||
Name: 'TierThree',
|
||||
cmsWidgetName: 'PremiumServicePackage'
|
||||
}
|
||||
];
|
||||
);
|
||||
//if cms content has not yet loaded, skip
|
||||
if (this.getCmsContent(cmsAnswersContent[0].cmsWidgetName, 'HeaderText') == '') {
|
||||
return {};
|
||||
|
|
@ -96,27 +104,18 @@
|
|||
return this.lineItemsContainsPartType(partTypeStrings.RECALIBRATION);
|
||||
},
|
||||
frontWipersApplicableForTierTwo() {
|
||||
const store = useMainStore();
|
||||
const frontWipersAreAvailable = this.lineItemsContainsPartType(
|
||||
partTypeStrings.FRONT_WIPER
|
||||
);
|
||||
const isRepair = store.order.damage.isRepair;
|
||||
const glassToReplaceContainsWindshield = this.glassToReplaceContainsGlassLocation(
|
||||
glassLocations.WINDSHIELD
|
||||
);
|
||||
if (frontWipersAreAvailable) {
|
||||
if (isRepair) {
|
||||
return true;
|
||||
} else {
|
||||
if (glassToReplaceContainsWindshield) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
const glassToReplaceContainsWindshield = this.glassToReplaceContainsGlassLocation(glassLocations.WINDSHIELD);
|
||||
|
||||
if(frontWipersAreAvailable && (useMainStore().order.damage.isRepair || glassToReplaceContainsWindshield))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
},
|
||||
rearWiperApplicableForTierTwo() {
|
||||
const rearWiperIsAvailable = this.lineItemsContainsPartType(partTypeStrings.REAR_WIPER);
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
displayGeneric() {
|
||||
return !useMainStore().order.vehicle.imageUrl || !this.selectedStyle;
|
||||
return !this.selectedStyle;
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
|
|
|||
|
|
@ -452,9 +452,15 @@ export default {
|
|||
this.hasGlassLocationWithMultipleParts(partsOrQuestions);
|
||||
const hasChildPartQuestions = this.hasChildPartQuestions(partsOrQuestions);
|
||||
const hasCapabilityQuestions = this.hasCapabilityQuestions(partsOrQuestions);
|
||||
let backNavigationScenario = self.mainStore.vehicle.vin
|
||||
? navigationScenarios.CLICKED_BACK_WITH_VIN_AND_NO_MORE_QUESTIONS
|
||||
: navigationScenarios.CLICKED_BACK_WITH_NO_VIN_NOR_QUESTIONS;
|
||||
let backNavigationScenario = "";
|
||||
if (self.mainStore.order.damage.isRepair) {
|
||||
backNavigationScenario = navigationScenarios.CLICKED_BACK_WITH_REPAIR;
|
||||
}
|
||||
else {
|
||||
backNavigationScenario = self.mainStore.vehicle.vin
|
||||
? navigationScenarios.CLICKED_BACK_WITH_VIN_AND_NO_MORE_QUESTIONS
|
||||
: navigationScenarios.CLICKED_BACK_WITH_NO_VIN_NOR_QUESTIONS;
|
||||
}
|
||||
|
||||
const currentPage = self.$route.query.issPage;
|
||||
if (
|
||||
|
|
|
|||
|
|
@ -2080,6 +2080,21 @@ describe("vehicle-questions-mixin", () => {
|
|||
});
|
||||
|
||||
describe("navigateBack", () => {
|
||||
test("current page is coverage-statement and damage is repair => go to vehicle-damage", () => {
|
||||
// Arrange
|
||||
const { wrapper } = setupMocks({ issPage: issPageValues.COVERAGE_STATEMENT });
|
||||
useMainStore().order.damage.isRepair = true;
|
||||
|
||||
// Act
|
||||
wrapper.vm.navigateBack();
|
||||
|
||||
// Assert
|
||||
expect(wrapper.vm.$router.navigate).toHaveBeenCalledWith(
|
||||
navigationScenarios.CLICKED_BACK_WITH_REPAIR,
|
||||
{ query: { issPage: issPageValues.COVERAGE_STATEMENT } }
|
||||
);
|
||||
});
|
||||
|
||||
test("current page is molding questions and there are part questions, multiple parts to choose, and capability questions => go to vehicle-parts", () => {
|
||||
// Arrange
|
||||
const { wrapper } = setupMocks({ issPage: issPageValues.MOLDING_QUESTIONS });
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@ const navigationScenarios = {
|
|||
CLICKED_BACK_WITH_VIN_AND_NO_MORE_QUESTIONS: "CLICKED_BACK_WITH_VIN_AND_NO_MORE_QUESTIONS",
|
||||
CLICKED_BACK_WITH_NO_VIN_NOR_QUESTIONS: "CLICKED_BACK_WITH_NO_VIN_NOR_QUESTIONS",
|
||||
|
||||
// Coverage Statement
|
||||
CLICKED_BACK_WITH_REPAIR: "CLICKED_BACK_WITH_REPAIR",
|
||||
|
||||
//Provider Preference
|
||||
CLICKED_FORWARD_WITH_SAFELITE: "CLICKED_FORWARD_WITH_SAFELITE",
|
||||
CLICKED_FORWARD_WITH_TPA_ENABLED: "CLICKED_FORWARD_WITH_TPA_ENABLED",
|
||||
|
|
|
|||
|
|
@ -474,10 +474,14 @@ const routingTable = function(store) {
|
|||
scenario: navigationScenarios.CLICKED_BACK_WITH_CAPABILITY_QUESTIONS,
|
||||
destinationIssPageValue: issPageValues.CAPABILITY_QUESTIONS
|
||||
},
|
||||
{
|
||||
scenario: navigationScenarios.CLICKED_BACK_WITH_REPAIR,
|
||||
destinationIssPageValue: issPageValues.VEHICLE_DAMAGE
|
||||
},
|
||||
{
|
||||
scenario: navigationScenarios.CLICKED_FORWARD,
|
||||
destinationIssPageValue: issPageValues.PROVIDER_PREFERENCE
|
||||
}
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -327,6 +327,8 @@ export const useMainStore = defineStore({
|
|||
}
|
||||
},
|
||||
getCoveragePolicyInfo({accountNumber, policyNumber, dateOfLoss, zipCode}){
|
||||
//todo: replace place holder correlationId with the real thing
|
||||
const placeHolderCorrelationId = "00000000-0000-0000-0000-000000000000";
|
||||
try{
|
||||
const response = globalMethods.callHttpClient({
|
||||
method:endpoints.CoveragePolicyInfo.method,
|
||||
|
|
@ -335,7 +337,8 @@ export const useMainStore = defineStore({
|
|||
accountNumber: accountNumber,
|
||||
policyNumber: policyNumber,
|
||||
dateOfLoss: dateOfLoss,
|
||||
zipCode: zipCode
|
||||
zipCode: zipCode,
|
||||
correlationId: placeHolderCorrelationId
|
||||
}
|
||||
});
|
||||
return response;
|
||||
|
|
|
|||
Loading…
Reference in a new issue