From 6852896f45ff8004453f614c291583337e82598c Mon Sep 17 00:00:00 2001 From: credelinghuys Date: Mon, 3 Aug 2026 13:20:25 -0400 Subject: [PATCH] CASH-1524: Add Save progress SMS consent management --- src/constants/save-progress-cms-widgets.js | 10 ++++ .../save-progress-modal-question.spec.js | 36 ++++++++---- .../save-progress-modal-question.vue | 57 ++++++++----------- .../save-progress-popup-question.vue | 19 +++---- .../coverage-statement/coverage-statement.vue | 2 +- 5 files changed, 70 insertions(+), 54 deletions(-) create mode 100644 src/constants/save-progress-cms-widgets.js diff --git a/src/constants/save-progress-cms-widgets.js b/src/constants/save-progress-cms-widgets.js new file mode 100644 index 000000000..d80960ace --- /dev/null +++ b/src/constants/save-progress-cms-widgets.js @@ -0,0 +1,10 @@ +const saveProgressCmsWidgets = { + PHONE_SPECIFIC: "SaveProgressPopupWidget_PhoneSpecific", + EMAIL_SPECIFIC: "SaveProgressPopupWidget_EmailSpecific", + MODAL_PHONE_QUESTION: "SaveProgressPhoneQuestionWidget", + MODAL_EMAIL_QUESTION: "SaveProgressEmailQuestionWidget", + POPUP_PHONE_QUESTION: "SaveProgressPopupPhoneQuestionWidget", + POPUP_EMAIL_QUESTION: "SaveProgressPopupEmailQuestionWidget", +}; + +export { saveProgressCmsWidgets }; diff --git a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.spec.js b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.spec.js index f5c30e323..0f27858de 100644 --- a/src/fmg-components/save-progress-modal-question/save-progress-modal-question.spec.js +++ b/src/fmg-components/save-progress-modal-question/save-progress-modal-question.spec.js @@ -1,7 +1,8 @@ -import { mount, flushPromises } from "@vue/test-utils"; +import { mount } from "@vue/test-utils"; import saveProgressModalQuestion from "./save-progress-modal-question"; import { getMountOptions } from "@/helpers/unit-test-helper.js"; import { storeActions } from "@/constants/store-actions"; +import { saveProgressCmsWidgets } from "@/constants/save-progress-cms-widgets"; import { saveQuote } from "@/helpers/heritage-integration/order-helper.js"; import experimentMixin from "@/mixins/experiment-mixin.js"; import { experimentSettings } from "@/constants/experiments"; @@ -114,14 +115,14 @@ describe("save-progress-modal-question", () => { expect(wrapper.vm.isPhoneTabSelected).toBe(true); }); - test("should use modal-specific tab labels from CMS widgets", () => { + test("should use popup-specific tab labels from CMS widgets", () => { const { wrapper } = setupMocks({ props: { modalWidgetName: "SaveProgressModalWidget", }, cmsContent: { - SaveProgressModalWidget_PhoneSpecific: { HeadlineText: "PHONE" }, - SaveProgressModalWidget_EmailSpecific: { HeadlineText: "EMAIL" }, + SaveProgressPopupWidget_PhoneSpecific: { HeadlineText: "PHONE" }, + SaveProgressPopupWidget_EmailSpecific: { HeadlineText: "EMAIL" }, }, }); @@ -131,14 +132,29 @@ describe("save-progress-modal-question", () => { ]); }); - test("should keep the legacy email disclaimer on the email tab", async () => { + test("should use the modal question CMS widgets for phone and email inputs", () => { + const { wrapper } = setupMocks({ + props: { + modalWidgetName: "SaveProgressModalWidget", + }, + }); + + expect(wrapper.vm.phoneQuestionWidgetName).toBe( + saveProgressCmsWidgets.MODAL_PHONE_QUESTION + ); + expect(wrapper.vm.emailQuestionWidgetName).toBe( + saveProgressCmsWidgets.MODAL_EMAIL_QUESTION + ); + }); + + test("should use the email-specific popup disclaimer on the email tab", async () => { const { wrapper } = setupMocks({ props: { modalWidgetName: "SaveProgressModalWidget", }, cmsContent: { - SaveProgressModalWidget: { FooterText2: "Email disclaimer" }, - SaveProgressModalWidget_PhoneSpecific: { BodyText: "Phone disclaimer" }, + SaveProgressPopupWidget_EmailSpecific: { BodyText: "Email disclaimer" }, + SaveProgressPopupWidget_PhoneSpecific: { BodyText: "Phone disclaimer" }, }, }); @@ -148,14 +164,14 @@ describe("save-progress-modal-question", () => { expect(wrapper.vm.modalDisclaimerText).toBe("Email disclaimer"); }); - test("should use the phone-specific disclaimer on the phone tab", () => { + test("should use the phone-specific popup disclaimer on the phone tab", () => { const { wrapper } = setupMocks({ props: { modalWidgetName: "SaveProgressModalWidget", }, cmsContent: { - SaveProgressModalWidget: { FooterText2: "Email disclaimer" }, - SaveProgressModalWidget_PhoneSpecific: { BodyText: "Phone disclaimer" }, + SaveProgressPopupWidget_EmailSpecific: { BodyText: "Email disclaimer" }, + SaveProgressPopupWidget_PhoneSpecific: { BodyText: "Phone disclaimer" }, }, }); 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 779236632..361a31869 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 @@ -62,18 +62,13 @@ :showConsentErrors="showConsentErrors" :showConsentManagement="showConsentManagement" /> - + :cmsWidgetName="emailQuestionWidgetName" + :isDisabled="isProgressSaved" />