From a51bce437104f1054acdbb539c48fc7b3e680824 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 19 Jul 2024 06:48:51 -0400 Subject: [PATCH 01/44] CSR-2130 missed a bash last time CSR-2130 missed a bash last time --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b6222f3b5..35e37cd18 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -75,7 +75,7 @@ stages: steps: - checkout: self clean: true - - bash: cp applepay/apple-developer-merchantid-domain-association-nonprod.txt apple-developer-merchantid-domain-association.txt + - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist From 3a167d6764703f51db6599f438bbfc62343cf329 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 19 Jul 2024 07:11:52 -0400 Subject: [PATCH 02/44] CSR-2130 apple merchant file continued CSR-2130 apple merchant file continued --- azure-pipelines.yml | 8 ++++---- public/.well-known/placeholder.txt | 0 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 public/.well-known/placeholder.txt diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 35e37cd18..2767306a6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -75,7 +75,7 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/apple-developer-merchantid-domain-association.txt + - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/.well-known/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist @@ -135,7 +135,7 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/apple-developer-merchantid-domain-association.txt + - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/.well-known/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist @@ -195,7 +195,7 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/apple-developer-merchantid-domain-association.txt + - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/.well-known/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist @@ -255,7 +255,7 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-prod.txt public/apple-developer-merchantid-domain-association.txt + - bash: cp public/applepay/apple-developer-merchantid-domain-association-prod.txt public/.well-known/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist diff --git a/public/.well-known/placeholder.txt b/public/.well-known/placeholder.txt new file mode 100644 index 000000000..e69de29bb From 1159ab6c09de75d78991cb82a4b7eacda2f496b4 Mon Sep 17 00:00:00 2001 From: Josh Seltzer Date: Mon, 22 Jul 2024 14:19:14 -0400 Subject: [PATCH 03/44] CSR-1903 - Display service duration on confirmation --- src/helpers/duration-length-helper.js | 15 ++++++++ src/helpers/duration-length-helper.spec.js | 24 ++++++++++++ src/layouts/confirmation/confirmation.spec.js | 37 +++++++++++++++++++ src/layouts/confirmation/confirmation.vue | 14 +++++++ .../schedule/helpers/schedule-helper.js | 16 -------- .../time-slot-modal-question.vue | 2 +- src/store/index.js | 2 +- 7 files changed, 92 insertions(+), 18 deletions(-) create mode 100644 src/helpers/duration-length-helper.js create mode 100644 src/helpers/duration-length-helper.spec.js diff --git a/src/helpers/duration-length-helper.js b/src/helpers/duration-length-helper.js new file mode 100644 index 000000000..cd57f2c4e --- /dev/null +++ b/src/helpers/duration-length-helper.js @@ -0,0 +1,15 @@ +export function getDisplayTextForDurationLength(durationMinimum, durationMaximum) { + const isLongAppointment = durationMaximum >= 120; + const isDurationRange = durationMinimum !== durationMaximum; + + const adjustedMinimum = isLongAppointment ? durationMinimum / 60 : durationMinimum; + const adjustedMaximum = isLongAppointment ? durationMaximum / 60 : durationMaximum; + + const durationText = isDurationRange + ? `${adjustedMinimum} - ${adjustedMaximum}` + : adjustedMinimum; + + const unitText = isLongAppointment ? "hours" : "minutes"; + + return `${durationText} ${unitText}`; +} diff --git a/src/helpers/duration-length-helper.spec.js b/src/helpers/duration-length-helper.spec.js new file mode 100644 index 000000000..b35585311 --- /dev/null +++ b/src/helpers/duration-length-helper.spec.js @@ -0,0 +1,24 @@ +import { getDisplayTextForDurationLength } from "@/helpers/duration-length-helper"; + +describe("damage-length-helper.js", () => { + it("Should return the expected duration for the appointment in hours", () => { + // Arrange / Act + const durationMinimum = 60; + const durationMaximum = 120; + + const duration = getDisplayTextForDurationLength(durationMinimum, durationMaximum); + + // Assert + expect(duration).toEqual("1 - 2 hours"); + }); + it("Should return the expected duration for the appointment in minutes", () => { + // Arrange / Act + const durationMinimum = 30; + const durationMaximum = 45; + + const duration = getDisplayTextForDurationLength(durationMinimum, durationMaximum); + + // Assert + expect(duration).toEqual("30 - 45 minutes"); + }); +}); diff --git a/src/layouts/confirmation/confirmation.spec.js b/src/layouts/confirmation/confirmation.spec.js index 0d8a1b273..39e5d8b49 100644 --- a/src/layouts/confirmation/confirmation.spec.js +++ b/src/layouts/confirmation/confirmation.spec.js @@ -25,6 +25,8 @@ beforeEach(() => { startTime: "09:00", endTime: "10:00", routeCode: "000", + jobMaxMinutes: "120", + jobMinMinutes: "60", }, lineItems: { glassParts: [ @@ -360,6 +362,41 @@ describe("computed properties...", () => { // Assert expect(testValue).toEqual("test1,
test, AZ 12345"); }); + test("Appointment Duration should return text in expected format.", () => { + //Arrange + + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: 1 - 2 hours"); + }); + test("Appointment Duration should return with correct duration values in expected format for hours.", () => { + //Arrange + store.getters.submittedOrder.schedule.jobMaxMinutes = 120; + store.getters.submittedOrder.schedule.jobMinMinutes = 60; + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: 1 - 2 hours"); + }); + test("Appointment Duration should return with correct duration values in expected format for minutes.", () => { + //Arrange + store.getters.submittedOrder.schedule.jobMaxMinutes = 45; + store.getters.submittedOrder.schedule.jobMinMinutes = 30; + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: 30 - 45 minutes"); + }); }); function setupMocks({ customMountOptions }) { diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 39ba55f17..efbc2e15f 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -42,6 +42,12 @@ :scheduleEndTime="ScheduleEndTime" />
+ +
@@ -82,6 +88,7 @@ import vehicleBanner from "@/fmg-components/vehicle-banner/vehicle-banner"; import navbar from "@/fmg-components/nav-bar/nav-bar"; import addToCalendar from "@/layouts/confirmation/add-to-calendar/add-to-calendar"; import cart from "@/fmg-components/cart/cart"; +import textBlock from "@/digital-components/text-block/text-block"; //Supporting files import baseMixin from "@/mixins/base-mixin.js"; @@ -97,6 +104,7 @@ import { deepClone } from "@/helpers/object-helper"; import { Form } from "vee-validate"; import { get12HourTimeFormat, get12HourTimeMobileFormat } from "@/helpers/date-helper"; import { coverageStatus } from "@/constants/insurance"; +import { getDisplayTextForDurationLength } from "@/helpers/duration-length-helper"; export default { name: "confirmation", @@ -315,6 +323,11 @@ export default { isPia() { return store.getters.submittedOrder?.payment.isPia; }, + AppointmentDuration() { + const durationMaximum = store.getters.submittedOrder?.schedule?.jobMaxMinutes; + const durationMinimum = store.getters.submittedOrder?.schedule?.jobMinMinutes; + return "Duration: " + getDisplayTextForDurationLength(durationMinimum, durationMaximum); + }, }, methods: { arePagePrerequisitesValid() { @@ -365,6 +378,7 @@ export default { vehicleBanner, addToCalendar, cart, + textBlock, }, }; diff --git a/src/layouts/schedule/helpers/schedule-helper.js b/src/layouts/schedule/helpers/schedule-helper.js index b85572e88..633d862d2 100644 --- a/src/layouts/schedule/helpers/schedule-helper.js +++ b/src/layouts/schedule/helpers/schedule-helper.js @@ -60,19 +60,3 @@ export function militaryToTwelveHourTime(timeString) { return `${hours}:${minutes} ${meridianNotation}`; } - -export function getDisplayTextForDurationLength(durationMinimum, durationMaximum) { - const isLongAppointment = durationMaximum >= 120; - const isDurationRange = durationMinimum !== durationMaximum; - - const adjustedMinimum = isLongAppointment ? durationMinimum / 60 : durationMinimum; - const adjustedMaximum = isLongAppointment ? durationMaximum / 60 : durationMaximum; - - const durationText = isDurationRange - ? `${adjustedMinimum} - ${adjustedMaximum}` - : adjustedMinimum; - - const unitText = isLongAppointment ? "hours" : "minutes"; - - return `${durationText} ${unitText}`; -} diff --git a/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue b/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue index d04621894..a0b5e9f99 100644 --- a/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue +++ b/src/layouts/schedule/time-slot-modal-question/time-slot-modal-question.vue @@ -51,8 +51,8 @@ import { deepClone } from "@/helpers/object-helper"; import { convertDateStringToDate, militaryToTwelveHourTime, - getDisplayTextForDurationLength, } from "@/layouts/schedule/helpers/schedule-helper"; +import { getDisplayTextForDurationLength } from "@/helpers/duration-length-helper"; // Validation - TODO: Move this somewhere more global? import { defineRule, useField } from "vee-validate"; diff --git a/src/store/index.js b/src/store/index.js index 6a6c60cde..18862e51e 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -24,8 +24,8 @@ import { partTypeStrings } from "@/constants/part-type-strings"; import { convertDateStringToDate, militaryToTwelveHourTime, - getDisplayTextForDurationLength, } from "@/layouts/schedule/helpers/schedule-helper"; +import { getDisplayTextForDurationLength } from "@/helpers/duration-length-helper"; import { paymentMethods } from "@/constants/payment-method-constants"; import { getPromoCodeWithoutBundleIdentifier, From 3bb5543b001d9b3f5a6bfa49d55a1bd283cc3d2e Mon Sep 17 00:00:00 2001 From: CarlNation Date: Tue, 23 Jul 2024 11:46:48 -0400 Subject: [PATCH 04/44] CSR-2130 remove applepay files CSR-2130 remove applepay files. now will be deployed in safelitecomv3 sitefinity --- azure-pipelines.yml | 4 - public/.well-known/placeholder.txt | 0 ...-merchantid-domain-association-nonprod.txt | 74 ------------------- ...per-merchantid-domain-association-prod.txt | 74 ------------------- 4 files changed, 152 deletions(-) delete mode 100644 public/.well-known/placeholder.txt delete mode 100644 public/applepay/apple-developer-merchantid-domain-association-nonprod.txt delete mode 100644 public/applepay/apple-developer-merchantid-domain-association-prod.txt diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2767306a6..9377af066 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -75,7 +75,6 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/.well-known/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist @@ -135,7 +134,6 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/.well-known/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist @@ -195,7 +193,6 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-nonprod.txt public/.well-known/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist @@ -255,7 +252,6 @@ stages: steps: - checkout: self clean: true - - bash: cp public/applepay/apple-developer-merchantid-domain-association-prod.txt public/.well-known/apple-developer-merchantid-domain-association.txt - template: templates/digital/step-build-vue.yml@AzureDevOps parameters: buildOutputDir: dist diff --git a/public/.well-known/placeholder.txt b/public/.well-known/placeholder.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/public/applepay/apple-developer-merchantid-domain-association-nonprod.txt b/public/applepay/apple-developer-merchantid-domain-association-nonprod.txt deleted file mode 100644 index f358f5b28..000000000 --- a/public/applepay/apple-developer-merchantid-domain-association-nonprod.txt +++ /dev/null @@ -1,74 +0,0 @@ -MIIQaQYJKoZIhvcNAQcCoIIQWjCCEFYCAQExCzAJBgUrDgMCGgUAMHgGCSqGSIb3DQEHAaBrBGl7 -InRlYW1JZCI6IlY4SFNZMzlOWjUiLCJkb21haW4iOiJ3d3ctdGVzdDIuc2FmZWxpdGUuY29tIiwi -ZGF0ZUNyZWF0ZWQiOiIyMDI0LTA3LTE4LDE0OjU1OjA1IiwidmVyc2lvbiI6MX2ggg0_MIIENDCC -AxygAwIBAgIIY_BW8s8iV_MwDQYJKoZIhvcNAQELBQAwczEtMCsGA1UEAwwkQXBwbGUgaVBob25l -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMjQwMTMwMTgzMjA1WhcNMjkw -MTI4MTgzMjA0WjBZMTUwMwYDVQQDDCxBcHBsZSBpUGhvbmUgT1MgUHJvdmlzaW9uaW5nIFByb2Zp -bGUgU2lnbmluZzETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC1FX_kJQ1chXPiyq7cbeqNGGn-pv_c_cwpLk2qcBWJD79H31jO -WFlKCB2xoQ229iBxUncHfWR_QmmLKHvyw0A9s3CBF8nkhi2ZVzd1wNTjtjcc2Dcm7kAsi3Hw7xRj -TOS_0S-HUEUdpxJxkbQX9sNJQHBt64923LXzwWH5JKwxWb5X_kqWxYoAlse5CjmYUeqATgKGEejt -eO1HxmV6-LAL1Ycpfmab7T296Dm6fUhkO-eIB1-efCGWkBQAV0BlJq7bo4O8jRv3o4VjOjf0rtDO -FG8RVCdSsGjLtGs-0gDEORTorEdwUlY2X54rPlOZpuOA0lN4N7tz35kMtxySmq9lAgMBAAGjgeUw -geIwDAYDVR0TAQH_BAIwADAfBgNVHSMEGDAWgBRv8ZUYYlzgyPHF7WwYyeDTZFKYIDBABggrBgEF -BQcBAQQ0MDIwMAYIKwYBBQUHMAGGJGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDMtYWlwY2Ew -NzAvBgNVHR8EKDAmMCSgIqAghh5odHRwOi8vY3JsLmFwcGxlLmNvbS9haXBjYS5jcmwwHQYDVR0O -BBYEFCkAQ-DGkwX04nv_NdJ5BvpUl3YjMA4GA1UdDwEB_wQEAwIHgDAPBgkqhkiG92NkBjoEAgUA -MA0GCSqGSIb3DQEBCwUAA4IBAQBA51NbANKWAu-nYD7W27ilNY9YRzstmIC5_nOz1o_RTQR_Zbps -s1G8bzM-53F6OgL8MFI2ummWpXfSL2k_bX6Y_FtCYkoyWdF-rVexy0WeCkjeRgc1G14DGy5ontva -qGzENwiFoECYoxI4cBANSDVkhZNWBzfZ2lY4cCWo4U9oVyxYDBoWSd4_JTZzWNzlX3koj7kLA7vh -nPUW53hsEk_BsH5x10qy_tEBNOKPbh4vC3q0wbEyhk6_W5iEaE9nh0_Anrq0MfQJtIo91t4QKkvE -jcNN1OrFYpmYGevd0X3H99npvad4XiYUX2Pmf0Ro8ChhvcDhFeBAq_9h6HvAOUoMMIIERDCCAyyg -AwIBAgIIXGPK5Eo3U8kwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFw -cGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQD -Ew1BcHBsZSBSb290IENBMB4XDTE3MDUxMDIxMjczMFoXDTMwMTIzMTAwMDAwMFowczEtMCsGA1UE -AwwkQXBwbGUgaVBob25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJRWoBDz6DBIbH_L_cXvAege4XMHNjJi7ePXokzZM- -TzlHunW-88DS8Vmiqx_-CoY82S2aB_IOa7kpkRpfIgqL8XJYBa5MS0TFeaeAPLCI4IwMJ4RdGeWH -GTbL48V2t7D0QXJR9AVcg0uibaZRuPEm33terWUMxrKYUYy7fRtMwU7ICMfS7WQLtN0bjU9AfRuP -SJaSW_PQmH7ZvKQZDplhu0FdAcxbd3p9JNDc01P_w9zFlCy2Wk2OGCM5vdnGUj7R8vQliqEqh_3Y -DEYpUf_tF2yJJWuHv4ppFJ93n8MVt2iziEW9hOYGAkFkD60qKLgVyeCsp4q6cgQ0sniM-LKFAgMB -AAGjgewwgekwDwYDVR0TAQH_BAUwAwEB_zAfBgNVHSMEGDAWgBQr0GlHlHYJ_vRrjS5ApvdHTX8I -XjBEBggrBgEFBQcBAQQ4MDYwNAYIKwYBBQUHMAGGKGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3Nw -MDMtYXBwbGVyb290Y2EwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL2NybC5hcHBsZS5jb20vcm9v -dC5jcmwwHQYDVR0OBBYEFG_xlRhiXODI8cXtbBjJ4NNkUpggMA4GA1UdDwEB_wQEAwIBBjAQBgoq -hkiG92NkBgISBAIFADANBgkqhkiG9w0BAQsFAAOCAQEAOs-smI2-kiAhCa2V87FcIfo2LVcgRHRz -ZJIIs5as922X-ls0OCfPEkbTPBHwB8mZkLHR6BEJpeOla2xjCD-eJfrVmZxM5uXOjrJNaOyLq6Oi -T4oRFT7cFCscxkS2b2fFW0-VKS2HXD_cgx53T-3aVKct5xOBwWPEVAsbSwpqKCII1DeSfH9nKF-v -PT-3rFkdODRkWu4zShlCRCnEyhhr4cFTLS30TcIV9jMyGHjxJm-KTeuUTKPo_w-zA4tl2usu2GVQ -n9yfit8xqIRU3FJSQdKyEx0xRkeIXz7uw_KMIwSV66yKPoJsBp8u44tDmmJbNA30mc8s7rpyhhkj -pfyOtTCCBLswggOjoAMCAQICAQIwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCVVMxEzARBgNV -BAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYw -FAYDVQQDEw1BcHBsZSBSb290IENBMB4XDTA2MDQyNTIxNDAzNloXDTM1MDIwOTIxNDAzNlowYjEL -MAkGA1UEBhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA5JGpCR-R2x5HUOsF7V55hC3rNqJXTFXsixmJ3vlLbPUHqyIwAugYPvhQ -CdN_QaiY-dHKZpwkaxHQo7vkGyrDH5WeegykR4tb1BY3M8vED03OFGnRyRly9V0O1X9fm_IlA7pV -j01dDfFkNSMVSxVZHbOU9_acns9QusFYUGePCLQg98usLCBvcLY_ATCMt0PPD5098ytJKBrI_s61 -uQ7ZXhzWyz21Oq30Dw4AkguxIRYudNU8DdtiFqujcZJHU1XBry9Bs_j743DN5qNMRX4fTGtQlkGJ -xHRiCxCDQYczioGxMFjsWgQyjGizjx3eZXP_Z15lvEnYdp8zFGWhd5TJLQIDAQABo4IBejCCAXYw -DgYDVR0PAQH_BAQDAgEGMA8GA1UdEwEB_wQFMAMBAf8wHQYDVR0OBBYEFCvQaUeUdgn-9GuNLkCm -90dNfwheMB8GA1UdIwQYMBaAFCvQaUeUdgn-9GuNLkCm90dNfwheMIIBEQYDVR0gBIIBCDCCAQQw -ggEABgkqhkiG92NkBQEwgfIwKgYIKwYBBQUHAgEWHmh0dHBzOi8vd3d3LmFwcGxlLmNvbS9hcHBs -ZWNhLzCBwwYIKwYBBQUHAgIwgbYagbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFu -eSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2Vy -dGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjANBgkqhkiG9w0BAQUFAAOCAQEAXDaZTC14 -t-2Mm9zzd5vydtJ3ME_BH4WDhRuZPUc38qmbQI4s1LGQEti-9HOb7tJkD8t5TzTYoj75eP9ryAfs -fTmDi1Mg0zjEsb-aTwpr_yv8WacFCXwXQFYRHnTTt4sjO0ej1W8k4uvRt3DfD0XhJ8rxbXjt57UX -F6jcfiI1yiXV2Q_Wa9SiJCMR96Gsj3OBYMYbWwkvkrL4REjwYDieFfU9JmcgijNq9w2Cz97roy_5 -U2pbZMBjM3f3OgcsVuvaDyEO2rpzGU-12TZ_wYdV2aeZuTJC-9jVcZ5-oVK3G72TQiQSKscPHbZN -nF5jyEuAF1CqitXa5PzQCQc3sHV1ITGCAoUwggKBAgEBMH8wczEtMCsGA1UEAwwkQXBwbGUgaVBo -b25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCGPwVvLPIlfzMAkGBSsOAwIa -BQCggdwwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjQwNzE4MTQ1 -NTA1WjAjBgkqhkiG9w0BCQQxFgQUYwvDx1yr56NtJEdxh--NMv9wqDEwKQYJKoZIhvcNAQk0MRww -GjAJBgUrDgMCGgUAoQ0GCSqGSIb3DQEBAQUAMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcw -DgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMA0G -CSqGSIb3DQEBAQUABIIBAJ6WUgCnMMT4q4LQjeOOpLWsXJRdns3b5aBEKoK3NIetn3I_bWo0wmX3 -Rxuy29Ljv_0bGC0PfcXyBXWtg1LQ4EzUpgpVK_IeZrlX6HcKwxgZwkejwVg009kTYNir-otXP1AM -YNfXsPA-woLAbo_Hx0MrN1EHgejqO8x5c9s7LpQQGJpVsD9Rq6sZ4VJftMtuTz4XwvU3Qypj7_RF -Drhh-MekYg6qG7aJMzOuftkDx2BWL7Sld77ViX1Qt8zZpyoI4RW4MIxH50ERwVYlpaoHYdnit3Ct -RZki8aS0kxFdxVY0pePF0k6h-5GbwceXATkXM4UY0-fAXqk11QevHKT8was diff --git a/public/applepay/apple-developer-merchantid-domain-association-prod.txt b/public/applepay/apple-developer-merchantid-domain-association-prod.txt deleted file mode 100644 index f358f5b28..000000000 --- a/public/applepay/apple-developer-merchantid-domain-association-prod.txt +++ /dev/null @@ -1,74 +0,0 @@ -MIIQaQYJKoZIhvcNAQcCoIIQWjCCEFYCAQExCzAJBgUrDgMCGgUAMHgGCSqGSIb3DQEHAaBrBGl7 -InRlYW1JZCI6IlY4SFNZMzlOWjUiLCJkb21haW4iOiJ3d3ctdGVzdDIuc2FmZWxpdGUuY29tIiwi -ZGF0ZUNyZWF0ZWQiOiIyMDI0LTA3LTE4LDE0OjU1OjA1IiwidmVyc2lvbiI6MX2ggg0_MIIENDCC -AxygAwIBAgIIY_BW8s8iV_MwDQYJKoZIhvcNAQELBQAwczEtMCsGA1UEAwwkQXBwbGUgaVBob25l -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMjQwMTMwMTgzMjA1WhcNMjkw -MTI4MTgzMjA0WjBZMTUwMwYDVQQDDCxBcHBsZSBpUGhvbmUgT1MgUHJvdmlzaW9uaW5nIFByb2Zp -bGUgU2lnbmluZzETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC1FX_kJQ1chXPiyq7cbeqNGGn-pv_c_cwpLk2qcBWJD79H31jO -WFlKCB2xoQ229iBxUncHfWR_QmmLKHvyw0A9s3CBF8nkhi2ZVzd1wNTjtjcc2Dcm7kAsi3Hw7xRj -TOS_0S-HUEUdpxJxkbQX9sNJQHBt64923LXzwWH5JKwxWb5X_kqWxYoAlse5CjmYUeqATgKGEejt -eO1HxmV6-LAL1Ycpfmab7T296Dm6fUhkO-eIB1-efCGWkBQAV0BlJq7bo4O8jRv3o4VjOjf0rtDO -FG8RVCdSsGjLtGs-0gDEORTorEdwUlY2X54rPlOZpuOA0lN4N7tz35kMtxySmq9lAgMBAAGjgeUw -geIwDAYDVR0TAQH_BAIwADAfBgNVHSMEGDAWgBRv8ZUYYlzgyPHF7WwYyeDTZFKYIDBABggrBgEF -BQcBAQQ0MDIwMAYIKwYBBQUHMAGGJGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDMtYWlwY2Ew -NzAvBgNVHR8EKDAmMCSgIqAghh5odHRwOi8vY3JsLmFwcGxlLmNvbS9haXBjYS5jcmwwHQYDVR0O -BBYEFCkAQ-DGkwX04nv_NdJ5BvpUl3YjMA4GA1UdDwEB_wQEAwIHgDAPBgkqhkiG92NkBjoEAgUA -MA0GCSqGSIb3DQEBCwUAA4IBAQBA51NbANKWAu-nYD7W27ilNY9YRzstmIC5_nOz1o_RTQR_Zbps -s1G8bzM-53F6OgL8MFI2ummWpXfSL2k_bX6Y_FtCYkoyWdF-rVexy0WeCkjeRgc1G14DGy5ontva -qGzENwiFoECYoxI4cBANSDVkhZNWBzfZ2lY4cCWo4U9oVyxYDBoWSd4_JTZzWNzlX3koj7kLA7vh -nPUW53hsEk_BsH5x10qy_tEBNOKPbh4vC3q0wbEyhk6_W5iEaE9nh0_Anrq0MfQJtIo91t4QKkvE -jcNN1OrFYpmYGevd0X3H99npvad4XiYUX2Pmf0Ro8ChhvcDhFeBAq_9h6HvAOUoMMIIERDCCAyyg -AwIBAgIIXGPK5Eo3U8kwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFw -cGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQD -Ew1BcHBsZSBSb290IENBMB4XDTE3MDUxMDIxMjczMFoXDTMwMTIzMTAwMDAwMFowczEtMCsGA1UE -AwwkQXBwbGUgaVBob25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJRWoBDz6DBIbH_L_cXvAege4XMHNjJi7ePXokzZM- -TzlHunW-88DS8Vmiqx_-CoY82S2aB_IOa7kpkRpfIgqL8XJYBa5MS0TFeaeAPLCI4IwMJ4RdGeWH -GTbL48V2t7D0QXJR9AVcg0uibaZRuPEm33terWUMxrKYUYy7fRtMwU7ICMfS7WQLtN0bjU9AfRuP -SJaSW_PQmH7ZvKQZDplhu0FdAcxbd3p9JNDc01P_w9zFlCy2Wk2OGCM5vdnGUj7R8vQliqEqh_3Y -DEYpUf_tF2yJJWuHv4ppFJ93n8MVt2iziEW9hOYGAkFkD60qKLgVyeCsp4q6cgQ0sniM-LKFAgMB -AAGjgewwgekwDwYDVR0TAQH_BAUwAwEB_zAfBgNVHSMEGDAWgBQr0GlHlHYJ_vRrjS5ApvdHTX8I -XjBEBggrBgEFBQcBAQQ4MDYwNAYIKwYBBQUHMAGGKGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3Nw -MDMtYXBwbGVyb290Y2EwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL2NybC5hcHBsZS5jb20vcm9v -dC5jcmwwHQYDVR0OBBYEFG_xlRhiXODI8cXtbBjJ4NNkUpggMA4GA1UdDwEB_wQEAwIBBjAQBgoq -hkiG92NkBgISBAIFADANBgkqhkiG9w0BAQsFAAOCAQEAOs-smI2-kiAhCa2V87FcIfo2LVcgRHRz -ZJIIs5as922X-ls0OCfPEkbTPBHwB8mZkLHR6BEJpeOla2xjCD-eJfrVmZxM5uXOjrJNaOyLq6Oi -T4oRFT7cFCscxkS2b2fFW0-VKS2HXD_cgx53T-3aVKct5xOBwWPEVAsbSwpqKCII1DeSfH9nKF-v -PT-3rFkdODRkWu4zShlCRCnEyhhr4cFTLS30TcIV9jMyGHjxJm-KTeuUTKPo_w-zA4tl2usu2GVQ -n9yfit8xqIRU3FJSQdKyEx0xRkeIXz7uw_KMIwSV66yKPoJsBp8u44tDmmJbNA30mc8s7rpyhhkj -pfyOtTCCBLswggOjoAMCAQICAQIwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCVVMxEzARBgNV -BAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYw -FAYDVQQDEw1BcHBsZSBSb290IENBMB4XDTA2MDQyNTIxNDAzNloXDTM1MDIwOTIxNDAzNlowYjEL -MAkGA1UEBhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA5JGpCR-R2x5HUOsF7V55hC3rNqJXTFXsixmJ3vlLbPUHqyIwAugYPvhQ -CdN_QaiY-dHKZpwkaxHQo7vkGyrDH5WeegykR4tb1BY3M8vED03OFGnRyRly9V0O1X9fm_IlA7pV -j01dDfFkNSMVSxVZHbOU9_acns9QusFYUGePCLQg98usLCBvcLY_ATCMt0PPD5098ytJKBrI_s61 -uQ7ZXhzWyz21Oq30Dw4AkguxIRYudNU8DdtiFqujcZJHU1XBry9Bs_j743DN5qNMRX4fTGtQlkGJ -xHRiCxCDQYczioGxMFjsWgQyjGizjx3eZXP_Z15lvEnYdp8zFGWhd5TJLQIDAQABo4IBejCCAXYw -DgYDVR0PAQH_BAQDAgEGMA8GA1UdEwEB_wQFMAMBAf8wHQYDVR0OBBYEFCvQaUeUdgn-9GuNLkCm -90dNfwheMB8GA1UdIwQYMBaAFCvQaUeUdgn-9GuNLkCm90dNfwheMIIBEQYDVR0gBIIBCDCCAQQw -ggEABgkqhkiG92NkBQEwgfIwKgYIKwYBBQUHAgEWHmh0dHBzOi8vd3d3LmFwcGxlLmNvbS9hcHBs -ZWNhLzCBwwYIKwYBBQUHAgIwgbYagbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFu -eSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2Vy -dGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjANBgkqhkiG9w0BAQUFAAOCAQEAXDaZTC14 -t-2Mm9zzd5vydtJ3ME_BH4WDhRuZPUc38qmbQI4s1LGQEti-9HOb7tJkD8t5TzTYoj75eP9ryAfs -fTmDi1Mg0zjEsb-aTwpr_yv8WacFCXwXQFYRHnTTt4sjO0ej1W8k4uvRt3DfD0XhJ8rxbXjt57UX -F6jcfiI1yiXV2Q_Wa9SiJCMR96Gsj3OBYMYbWwkvkrL4REjwYDieFfU9JmcgijNq9w2Cz97roy_5 -U2pbZMBjM3f3OgcsVuvaDyEO2rpzGU-12TZ_wYdV2aeZuTJC-9jVcZ5-oVK3G72TQiQSKscPHbZN -nF5jyEuAF1CqitXa5PzQCQc3sHV1ITGCAoUwggKBAgEBMH8wczEtMCsGA1UEAwwkQXBwbGUgaVBo -b25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCGPwVvLPIlfzMAkGBSsOAwIa -BQCggdwwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjQwNzE4MTQ1 -NTA1WjAjBgkqhkiG9w0BCQQxFgQUYwvDx1yr56NtJEdxh--NMv9wqDEwKQYJKoZIhvcNAQk0MRww -GjAJBgUrDgMCGgUAoQ0GCSqGSIb3DQEBAQUAMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcw -DgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMA0G -CSqGSIb3DQEBAQUABIIBAJ6WUgCnMMT4q4LQjeOOpLWsXJRdns3b5aBEKoK3NIetn3I_bWo0wmX3 -Rxuy29Ljv_0bGC0PfcXyBXWtg1LQ4EzUpgpVK_IeZrlX6HcKwxgZwkejwVg009kTYNir-otXP1AM -YNfXsPA-woLAbo_Hx0MrN1EHgejqO8x5c9s7LpQQGJpVsD9Rq6sZ4VJftMtuTz4XwvU3Qypj7_RF -Drhh-MekYg6qG7aJMzOuftkDx2BWL7Sld77ViX1Qt8zZpyoI4RW4MIxH50ERwVYlpaoHYdnit3Ct -RZki8aS0kxFdxVY0pePF0k6h-5GbwceXATkXM4UY0-fAXqk11QevHKT8was From 132e78e184b68547be436e2b138dae0110064374 Mon Sep 17 00:00:00 2001 From: hiteshkumar87 Date: Thu, 25 Jul 2024 19:05:10 +0530 Subject: [PATCH 05/44] CSR-2049 Quote page GA event for cash glass only --- src/constants/analytics.js | 1 + src/layouts/quote/quote.vue | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/constants/analytics.js b/src/constants/analytics.js index b5b24660d..c3416edea 100644 --- a/src/constants/analytics.js +++ b/src/constants/analytics.js @@ -20,6 +20,7 @@ const GaActions = { VIF: "vif", SUBMITTED: "Submitted", DISPLAYED: "Displayed", + CASH_QUOTE_DISPLAYED: "Cash quote displayed", }; const GaLabels = { diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 3eb513ba5..d3553dfb4 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -126,6 +126,7 @@ import { experimentSettings } from "@/constants/experiments"; import { partTypeStrings } from "@/constants/part-type-strings"; import { containsLineItemWithPartType } from "@/helpers/service-package-helper"; import { nextTick } from "vue"; +import { packageNames } from "@/constants/package-names"; defineRule("option-required", required(errorMessages.OPTION_REQUIRED)); export default { @@ -422,6 +423,30 @@ export default { ); } }, + attachCustomEvents() { + this.prependActionToMethod(this, this.forwardButtonAction, () => { + if (!this.isInsuranceSelected && this.lineItems.vaps?.length == 0) { + const tierOnePrice = + this.lineItems.promos?.length > 0 + ? this.$refs.servicePackage.getDiscountedPackagePriceString( + packageNames.TIER_ONE, + false + ) + : this.$refs.servicePackage.getPackagePriceString( + packageNames.TIER_ONE + ); + this.pushEventToGA( + this.$route.query[this.queryStrings.FMG_PAGE], + this.GaActions.CASH_QUOTE_DISPLAYED, + tierOnePrice, + true + ); + } + }); + }, + }, + mounted() { + this.attachCustomEvents(); }, watch: { lineItemsCloneForWatcher: { From 02b5e92bc829c18b1817a1689f7709111aa8fecf Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Thu, 25 Jul 2024 11:33:01 -0400 Subject: [PATCH 06/44] Frontend changes to not log errors for 404s --- src/global-methods.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/global-methods.js b/src/global-methods.js index c471a8c63..02118db1e 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -97,16 +97,18 @@ export default { true ); } - - // Do not route to error logic when no wipers found or no promo found (404s) + if (error.response.status != "404") { - //router.navigateError(); Emergency change for testing - skiener 03/12 - } + // Do not route to error logic when no wipers found or no promo found (404s) + // router.navigateError(); Emergency change for testing - skiener 03/12 - global.$logger.logError( - `${method}: ${endpoint}: ${error.message}`, - error.response - ); + // do not log 404 errors from services because we return NotFound + // when a service doesn't return an object + global.$logger.logError( + `${method}: ${endpoint}: ${error.message}`, + error.response + ); + } return reject(error.response); } From 2dee21887ae152c165cff6f3356d045a53f6293d Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Thu, 25 Jul 2024 11:45:10 -0400 Subject: [PATCH 07/44] Prettified --- src/global-methods.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/global-methods.js b/src/global-methods.js index 02118db1e..85fd02841 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -97,12 +97,12 @@ export default { true ); } - + if (error.response.status != "404") { // Do not route to error logic when no wipers found or no promo found (404s) // router.navigateError(); Emergency change for testing - skiener 03/12 - // do not log 404 errors from services because we return NotFound + // do not log 404 errors from services because we return NotFound // when a service doesn't return an object global.$logger.logError( `${method}: ${endpoint}: ${error.message}`, From 7e05d20d5398edd9288ec480179aa0492d063935 Mon Sep 17 00:00:00 2001 From: Josh Seltzer Date: Thu, 25 Jul 2024 13:52:35 -0400 Subject: [PATCH 08/44] Correct All Day appointment duration --- src/layouts/confirmation/confirmation.spec.js | 14 ++++++++++++++ src/layouts/confirmation/confirmation.vue | 7 ++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/layouts/confirmation/confirmation.spec.js b/src/layouts/confirmation/confirmation.spec.js index 39e5d8b49..19f3e1f22 100644 --- a/src/layouts/confirmation/confirmation.spec.js +++ b/src/layouts/confirmation/confirmation.spec.js @@ -397,6 +397,20 @@ describe("computed properties...", () => { // Assert expect(testValue).toEqual("Duration: 30 - 45 minutes"); }); + + test("Appointment Duration should return with All Day.", () => { + //Arrange + store.getters.submittedOrder.schedule.jobMaxMinutes = 45; + store.getters.submittedOrder.schedule.jobMinMinutes = 30; + store.getters.submittedOrder.serviceLocation.appointmentType = AppointmentTypeStrings.DROP_OFF; + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: All Day"); + }); }); function setupMocks({ customMountOptions }) { diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index efbc2e15f..5cac637e5 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -326,7 +326,12 @@ export default { AppointmentDuration() { const durationMaximum = store.getters.submittedOrder?.schedule?.jobMaxMinutes; const durationMinimum = store.getters.submittedOrder?.schedule?.jobMinMinutes; - return "Duration: " + getDisplayTextForDurationLength(durationMinimum, durationMaximum); + const durationLengthString = "Duration: "; + if (store.getters.submittedOrder?.serviceLocation?.appointmentType === AppointmentTypeStrings.DROP_OFF) { + return durationLengthString.concat("All Day") + } else { + return durationLengthString.concat(getDisplayTextForDurationLength(durationMinimum, durationMaximum)); + } }, }, methods: { From 15368e3255338220c2b01697c5632dd5c2c2cd36 Mon Sep 17 00:00:00 2001 From: Josh Seltzer Date: Thu, 25 Jul 2024 14:09:07 -0400 Subject: [PATCH 09/44] Prettier --- src/layouts/confirmation/confirmation.spec.js | 3 ++- src/layouts/confirmation/confirmation.vue | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/layouts/confirmation/confirmation.spec.js b/src/layouts/confirmation/confirmation.spec.js index 19f3e1f22..47b650a14 100644 --- a/src/layouts/confirmation/confirmation.spec.js +++ b/src/layouts/confirmation/confirmation.spec.js @@ -402,7 +402,8 @@ describe("computed properties...", () => { //Arrange store.getters.submittedOrder.schedule.jobMaxMinutes = 45; store.getters.submittedOrder.schedule.jobMinMinutes = 30; - store.getters.submittedOrder.serviceLocation.appointmentType = AppointmentTypeStrings.DROP_OFF; + store.getters.submittedOrder.serviceLocation.appointmentType = + AppointmentTypeStrings.DROP_OFF; const { wrapper } = setupMocks({}); // Act diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 5cac637e5..695482119 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -327,10 +327,15 @@ export default { const durationMaximum = store.getters.submittedOrder?.schedule?.jobMaxMinutes; const durationMinimum = store.getters.submittedOrder?.schedule?.jobMinMinutes; const durationLengthString = "Duration: "; - if (store.getters.submittedOrder?.serviceLocation?.appointmentType === AppointmentTypeStrings.DROP_OFF) { - return durationLengthString.concat("All Day") + if ( + store.getters.submittedOrder?.serviceLocation?.appointmentType === + AppointmentTypeStrings.DROP_OFF + ) { + return durationLengthString.concat("All Day"); } else { - return durationLengthString.concat(getDisplayTextForDurationLength(durationMinimum, durationMaximum)); + return durationLengthString.concat( + getDisplayTextForDurationLength(durationMinimum, durationMaximum) + ); } }, }, From d14823acc12b0627b4f8dcc70b3ec92b1fba60db Mon Sep 17 00:00:00 2001 From: Josh Seltzer Date: Thu, 25 Jul 2024 15:24:06 -0400 Subject: [PATCH 10/44] Corrected Overnight scheduling --- src/layouts/confirmation/confirmation.spec.js | 19 ++++++++++++++++--- src/layouts/confirmation/confirmation.vue | 13 ++++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/layouts/confirmation/confirmation.spec.js b/src/layouts/confirmation/confirmation.spec.js index 47b650a14..a079fab83 100644 --- a/src/layouts/confirmation/confirmation.spec.js +++ b/src/layouts/confirmation/confirmation.spec.js @@ -1,6 +1,6 @@ // Components import confirmation from "@/layouts/confirmation/confirmation.vue"; -import { AppointmentTypeStrings } from "@/constants/schedule-constants"; +import { AppointmentTypeStrings, RouteCodeFlags } from "@/constants/schedule-constants"; import { applicationConfig } from "@/constants/application-config.js"; // Supporting Files @@ -402,8 +402,7 @@ describe("computed properties...", () => { //Arrange store.getters.submittedOrder.schedule.jobMaxMinutes = 45; store.getters.submittedOrder.schedule.jobMinMinutes = 30; - store.getters.submittedOrder.serviceLocation.appointmentType = - AppointmentTypeStrings.DROP_OFF; + store.getters.submittedOrder.schedule.routeCode = RouteCodeFlags.ALL_DAY_DROP_OFF; const { wrapper } = setupMocks({}); // Act @@ -412,6 +411,20 @@ describe("computed properties...", () => { // Assert expect(testValue).toEqual("Duration: All Day"); }); + + test("Appointment Duration should return with Overnight.", () => { + //Arrange + store.getters.submittedOrder.schedule.jobMaxMinutes = 45; + store.getters.submittedOrder.schedule.jobMinMinutes = 30; + store.getters.submittedOrder.schedule.routeCode = RouteCodeFlags.OVERNIGHT_DROP_OFF; + const { wrapper } = setupMocks({}); + + // Act + const testValue = wrapper.vm.AppointmentDuration; + + // Assert + expect(testValue).toEqual("Duration: Overnight"); + }); }); function setupMocks({ customMountOptions }) { diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 695482119..b46154756 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -96,7 +96,7 @@ import analyticsMixin from "@/mixins/analytics-mixin"; import store from "@/store"; import { storeActions } from "@/constants/store-actions"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper"; -import { AppointmentTypeStrings } from "@/constants/schedule-constants"; +import { AppointmentTypeStrings, RouteCodeFlags } from "@/constants/schedule-constants"; import { settleAllPromises } from "@/helpers/layout-helper"; import { applicationConfig } from "@/constants/application-config.js"; import { convertDateStringToDate } from "@/layouts/schedule/helpers/schedule-helper"; @@ -328,10 +328,17 @@ export default { const durationMinimum = store.getters.submittedOrder?.schedule?.jobMinMinutes; const durationLengthString = "Duration: "; if ( - store.getters.submittedOrder?.serviceLocation?.appointmentType === - AppointmentTypeStrings.DROP_OFF + store.getters.submittedOrder?.schedule?.routeCode.includes( + RouteCodeFlags.ALL_DAY_DROP_OFF + ) ) { return durationLengthString.concat("All Day"); + } else if ( + store.getters.submittedOrder?.schedule?.routeCode.includes( + RouteCodeFlags.OVERNIGHT_DROP_OFF + ) + ) { + return durationLengthString.concat("Overnight"); } else { return durationLengthString.concat( getDisplayTextForDurationLength(durationMinimum, durationMaximum) From 9d379385353a31ffeac491125d3e79ddd079c301 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Mon, 29 Jul 2024 13:46:40 -0400 Subject: [PATCH 11/44] CSR-2130 payment method page corrections CSR-2130 payment method page corrections --- .../payment-method-question.vue | 25 +++---------------- src/layouts/payment-method/payment-method.vue | 17 +++++++++---- src/layouts/payment/payment.vue | 4 +-- 3 files changed, 18 insertions(+), 28 deletions(-) diff --git a/src/layouts/payment-method/payment-method-question/payment-method-question.vue b/src/layouts/payment-method/payment-method-question/payment-method-question.vue index 9991e6093..a2974d7ef 100644 --- a/src/layouts/payment-method/payment-method-question/payment-method-question.vue +++ b/src/layouts/payment-method/payment-method-question/payment-method-question.vue @@ -9,10 +9,8 @@ :answers="paymentMethodAnswerData" isRequired :validationRules="validationRules" - :hasRecal="hasRecal" :showApplePay="showApplePay" :isInsurance="isInsurance" - :isPiaEnabled="isPiaEnabled" v-model="selectedMethod" textPosition="text-start" /> @@ -21,8 +19,6 @@