From c4045efee395a31df15e52880b8b8d0f996597d0 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Thu, 20 Feb 2025 09:59:50 -0500 Subject: [PATCH 1/9] CASH-191 button fix. --- .../save-progress-modal-question.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue index 6d77afc44..2fcb20b76 100644 --- a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue +++ b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue @@ -151,6 +151,7 @@ export default { &.btn { &.btn-secondary { + font-weight: 900; border: none; &:hover, &:active, From b0fe6cfd97da259a70ae0018f5dd4b4c030504cc Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Thu, 20 Feb 2025 10:56:11 -0500 Subject: [PATCH 2/9] Minor change to force build. --- .../save-progress-modal-question.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue index 2fcb20b76..3628a372c 100644 --- a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue +++ b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.vue @@ -181,6 +181,7 @@ export default { transition: background 0s 0s ease-in-out; } } + .modal.modal-component .modal-dialog .modal-content { .modal-header { padding-top: 0; From a2be43e190347f782a60afa7510318951eb7f0b1 Mon Sep 17 00:00:00 2001 From: Chris Redelinghuys Date: Fri, 21 Feb 2025 10:11:34 -0500 Subject: [PATCH 3/9] CASH-273: Update service location when mobile service zip doesn't offer mobile service --- .../service-location-helper.js | 6 ++- .../service-location/service-location.vue | 39 +++++++++++++------ 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js b/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js index 0e86c4143..99b200037 100644 --- a/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js +++ b/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js @@ -6,7 +6,7 @@ export async function getPricedMobileFeePart(serviceZipCode, pageNameToLog) { return null; } - const zipCodeData = await baseMixin.methods.getZipCodeData(serviceZipCode, pageNameToLog); + const zipCodeData = await getZipCodeData(serviceZipCode); // Get the Mobile Fee Part const mobileFeePart = await baseMixin.methods.dispatchStoreActionWithLogging( @@ -103,3 +103,7 @@ export async function getAvailabilityRating( return shopStatus; } + +export async function getZipCodeData(serviceZipCode) { + return await baseMixin.methods.getZipCodeData(serviceZipCode, "service-location"); +} diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 698b75a40..a9d508243 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -149,6 +149,7 @@ import { getPricedMobileFeePart, getServiceabilityDetails, getShopProviderData, + getZipCodeData, } from "@/layouts/service-location/helpers/service-location-helper/service-location-helper"; import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; import { applicationConfig } from "@/constants/application-config"; @@ -206,10 +207,7 @@ export default { const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); const serviceZipCode = store.getters.order.serviceLocation.zipCode; - const zipCodeDataPromise = baseMixin.methods.getZipCodeData( - serviceZipCode, - "service-location" - ); + const zipCodeDataPromise = getZipCodeData(serviceZipCode); const serviceabilityDetailsPromise = getServiceabilityDetails( serviceZipCode, @@ -475,17 +473,31 @@ export default { }, //creating async function as the computed property can not directly handle asynchronous operations or promises. async setMobileLocationQuestions(newValue) { + var newZipCode = newValue.addressQuestions.zipCode; if (newValue.addressQuestions.zipCode !== this.zipCode) { - await getShopProviderData(newValue.addressQuestions.zipCode).then((result) => { - this.shopProviderData = result.data; - this.selectedProvider = new Provider( - this.shopProviderData.mobileProviderNumber - ); + await getShopProviderData(newZipCode).then((result) => { + if (this.isServiceableMobile) { + this.shopProviderData = result.data; + this.selectedProvider = new Provider( + this.shopProviderData.mobileProviderNumber + ); + } + }); + } + if (this.isServiceableMobile) { + this.setMobileLocation(newValue); + //proceed to next page + this.forwardButtonAction(); + } else { + this.closeModalAction("mobileLocationQuestions"); + await getZipCodeData(newZipCode).then((zipCodeData) => { + this.serviceZipCodeQuestion = { + state: zipCodeData.state, + zipCode: newZipCode, + zipCodeCtu: zipCodeData.zipCodeCtu, + }; }); } - this.setMobileLocation(newValue); - //proceed to next page - this.forwardButtonAction(); }, getServiceAddressFromStore() { return store.getters.order.serviceLocation.address; @@ -669,6 +681,9 @@ export default { openModalAction(modalName) { this.$refs[modalName].openModal(); }, + closeModalAction(modalName) { + this.$refs[modalName].closeModal(); + }, }, watch: { zipCode: { From 2683e837a6b34f27742daaec77478549c8620d88 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Fri, 21 Feb 2025 12:44:25 -0500 Subject: [PATCH 4/9] CASH-132 add experiment. --- src/constants/experiments.js | 1 + src/experiment-components/donation-block.vue | 16 +++++++++++++--- src/layouts/confirmation/confirmation.vue | 8 +++++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/constants/experiments.js b/src/constants/experiments.js index 696707827..8209cae9c 100644 --- a/src/constants/experiments.js +++ b/src/constants/experiments.js @@ -19,6 +19,7 @@ const experimentSettings = { INSURANCE_TAB_TO_DISPLAY_THRESHOLD_EXTERNAL: "NextGen_ExternalInsuranceTabDisplayThreshold", DISPLAY_MSR: "DisplayMSR", PRICING_BY_DAY: "DisplayPricingByDay", + FOSTER_LOVE: "DisplayFosterLove", }; const experimentTriggers = { diff --git a/src/experiment-components/donation-block.vue b/src/experiment-components/donation-block.vue index 211cc3e28..10ebec7a5 100644 --- a/src/experiment-components/donation-block.vue +++ b/src/experiment-components/donation-block.vue @@ -20,7 +20,9 @@ target="_blank" /> -
+
@@ -31,9 +33,17 @@ :value="donationValues[0]" checked /> - + - +
diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index b839ae1ad..8221a933a 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -64,7 +64,7 @@ :isItac="isItac" :isNoComp="isNoComp" /> -
+
Date: Fri, 21 Feb 2025 23:30:43 +0530 Subject: [PATCH 5/9] CASH-273 unit test cases --- .../service-location/service-location.spec.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/layouts/service-location/service-location.spec.js b/src/layouts/service-location/service-location.spec.js index 786946f0d..fb34f3921 100644 --- a/src/layouts/service-location/service-location.spec.js +++ b/src/layouts/service-location/service-location.spec.js @@ -69,6 +69,15 @@ jest.mock( getShopProviderData: jest.fn((mockServiceZipCode) => { return mockGetShopProviderData(mockServiceZipCode); }), + getZipCodeData: jest.fn().mockImplementation(() => { + return Promise.resolve({ + containsMilitaryBase: false, + isServiceable: true, + isValid: true, + state: "testState", + zipCodeCtu: "testCTU", + }); + }), }) ); @@ -424,6 +433,7 @@ describe("service-location.vue", () => { }, selectedAppointmentType: "Mobile", providerData: { mobileProviderNumber: "01820" }, + isGlassServiceableMobile: true, }); const mobileLocationQuestionsComponent = wrapper.findComponent({ @@ -459,6 +469,7 @@ describe("service-location.vue", () => { isVehicleProtected: true, }; + wrapper.vm.closeModalAction = jest.fn(); // Act // Trigger the event @@ -483,6 +494,7 @@ describe("service-location.vue", () => { }, selectedAppointmentType: "Mobile", providerData: { mobileProviderNumber: "01820" }, + isGlassServiceableMobile: true, }); const mobileLocationQuestionsComponent = wrapper.findComponent({ @@ -532,6 +544,7 @@ describe("service-location.vue", () => { zipCodeCtu: "01526", }; + wrapper.vm.closeModalAction = jest.fn(); // Act // Trigger the event @@ -563,6 +576,7 @@ describe("service-location.vue", () => { }); mobileLocationQuestionsComponent.resetComponent = jest.fn(); wrapper.vm.forwardButtonAction = jest.fn(); + wrapper.vm.isServiceableMobile = true; const serviceZipCodeComponent = wrapper.findComponent({ ref: "serviceZipCodeQuestion", @@ -580,6 +594,7 @@ describe("service-location.vue", () => { isVehicleProtected: "YesAnswer", }; + wrapper.vm.closeModalAction = jest.fn(); // Act mobileLocationQuestionsComponent.vm.$emit( "setMobileLocationAndProceed", From 90f8f6f3cdafcf2b85061d08dc992d24348e8b69 Mon Sep 17 00:00:00 2001 From: Chris Redelinghuys Date: Fri, 21 Feb 2025 14:44:08 -0500 Subject: [PATCH 6/9] CASH-273 --- src/layouts/service-location/service-location.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index a9d508243..7b89b847d 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -474,7 +474,7 @@ export default { //creating async function as the computed property can not directly handle asynchronous operations or promises. async setMobileLocationQuestions(newValue) { var newZipCode = newValue.addressQuestions.zipCode; - if (newValue.addressQuestions.zipCode !== this.zipCode) { + if (newZipCode !== this.zipCode) { await getShopProviderData(newZipCode).then((result) => { if (this.isServiceableMobile) { this.shopProviderData = result.data; From 202e53aa884981dd1882e144ad6380d40b6dd54a Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Fri, 21 Feb 2025 16:24:51 -0500 Subject: [PATCH 7/9] CASH-151 style updates. --- .../service-package-radio.vue | 41 ++++++++++++++++--- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/src/experiment-components/service-package-radio.vue b/src/experiment-components/service-package-radio.vue index 4aae00bc0..42b96a17b 100644 --- a/src/experiment-components/service-package-radio.vue +++ b/src/experiment-components/service-package-radio.vue @@ -201,19 +201,44 @@ export default { If this experiment wins, move this to package-label ::before/::after below */ &:before { - top: 15px; + top: 0.9375rem; } &:after { - top: 30px; + top: 1.875rem; + } + @include media-breakpoint-up(lg) { + &:before { + top: .5rem; + } + &:after { + top: 1.875rem; + } + p { + span { + align-self: center; + } + } } } + .package-label.pricing-by-day-pkg-lbl-ins { &:before { - top: 5px; + top: .3125rem; } &:after { - top: 20px; + top: 1.25rem; + } + } + + + .package-label.pricing-by-day-pkg-lbl { + &:before { + top: 0.9375rem; + @include media-breakpoint-up(lg) { + top: .3125rem; + } + } + &:after { + top: 1.25rem; } } @@ -350,7 +375,8 @@ export default { &.pricing-info-pricing-by-day { text-align: end; color: $green; - font-size: 0.875rem; + font-size: 1rem; + line-height: 1; span.strikethrough-price { text-decoration: line-through; font-size: 0.75rem; @@ -376,6 +402,7 @@ export default { justify-content: flex-end; align-items: center; align-self: flex-start; + line-height: 1; div.strikethrough-discount-price { display: inline; text-decoration: line-through; @@ -392,8 +419,12 @@ export default { div.discount-price { color: $green; display: inline; + font-size: 1rem; } } + .caption { + font-size: 0.625rem; + } } ul { margin: 1rem 0 0 -5px; From a8a0724b842f42d8d3b460c99307cfb3d242fb62 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Sat, 22 Feb 2025 14:13:56 -0500 Subject: [PATCH 8/9] CSS update. --- src/experiment-components/service-package-radio.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/experiment-components/service-package-radio.vue b/src/experiment-components/service-package-radio.vue index 42b96a17b..3b9e5d9c9 100644 --- a/src/experiment-components/service-package-radio.vue +++ b/src/experiment-components/service-package-radio.vue @@ -211,7 +211,7 @@ export default { top: .5rem; } &:after { - top: 1.875rem; + top: 1.4375rem; } p { span { From 8fbe2173aa48bfb43f3d6627eff4ce7a5553412a Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Sun, 23 Feb 2025 15:39:12 -0500 Subject: [PATCH 9/9] Fix unit test. --- src/layouts/confirmation/confirmation.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 8221a933a..c87da58dd 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -245,7 +245,7 @@ export default { }; }, computed: { - displayFosterLove() { + DisplayFosterLove() { return experimentMixin.methods.hasSettingEqualTo( experimentSettings.FOSTER_LOVE, "true"