Merge branch 'develop' of https://github.com/Safelite/DigitalConsumer.ISS into feature/digital/SSR-505

This commit is contained in:
brydon1 2023-06-09 09:57:37 -04:00
commit 11e81b215a
12 changed files with 80 additions and 87 deletions

View file

@ -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;

View file

@ -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;
}

View file

@ -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 {

View file

@ -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 };
}

View file

@ -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();
},

View file

@ -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);

View file

@ -207,7 +207,7 @@ export default {
},
computed: {
displayGeneric() {
return !useMainStore().order.vehicle.imageUrl || !this.selectedStyle;
return !this.selectedStyle;
}
},
components: {

View file

@ -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 (

View file

@ -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 });

View file

@ -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",

View file

@ -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
}
},
]
},
{

View file

@ -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;