diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js
index 262979ed4..c5ed73756 100644
--- a/src/constants/error-messages.js
+++ b/src/constants/error-messages.js
@@ -34,7 +34,8 @@ const errorMessages = {
PHONE_FORMAT: "Phone number must be 10 digits",
PHONE_EXTENSION_FORMAT: "The specified extension is invalid",
SMS_CONSENT_REQUIRED_1: "Please select checkbox to receive text messages",
- SMS_CONSENT_REQUIRED_2: "Please select at least one consent option",
+ SMS_CONSENT_REQUIRED_2:
+ "To receive communication about your saved progress, please check the first box. You can opt out at any time!",
YEAR_REQUIRED: "Please select your vehicle year",
MAKE_REQUIRED: "Please select your vehicle make",
MODEL_REQUIRED: "Please select your vehicle model",
diff --git a/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue b/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue
index 21b362b34..0a67bbd02 100644
--- a/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue
+++ b/src/fmg-components/save-progress-popup-question/save-progress-popup-question.vue
@@ -364,27 +364,33 @@ export default {
transition: background 0s 0s ease-in-out;
}
}
- .alert {
+ .alert.alert-success {
border-radius: $border-radius-lg;
border: 1px solid $green;
order: 2;
margin: 0 0 1.5rem 0;
+
+ .alert-heading {
+ position: relative;
+ font-weight: 600;
+ font-size: 1rem;
+ color: $black;
+ text-align: left;
+ padding-left: 1.5rem;
+ &::before {
+ position: absolute;
+ content: "";
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%230C7E47' d='M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0Zm3.7 6.171-4.449 4.45a.559.559 0 0 1-.8 0l-2.16-2.16a.563.563 0 0 1 .792-.8l1.76 1.76 4.066-4.042a.563.563 0 1 1 .792.8v-.008Z'/%3E%3C/svg%3E");
+ width: 1rem;
+ height: 1rem;
+ top: 6px;
+ left: 0;
+ }
+ }
}
- .alert-heading {
- position: relative;
- font-weight: 600;
- font-size: 1rem;
- color: $black;
- text-align: left;
- padding-left: 1.5rem;
- &::before {
- position: absolute;
- content: "";
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%230C7E47' d='M8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0Zm3.7 6.171-4.449 4.45a.559.559 0 0 1-.8 0l-2.16-2.16a.563.563 0 0 1 .792-.8l1.76 1.76 4.066-4.042a.563.563 0 1 1 .792.8v-.008Z'/%3E%3C/svg%3E");
- width: 1rem;
- height: 1rem;
- top: 6px;
- left: 0;
+ .alert.alert-warning.text-center {
+ .alert-heading {
+ color: $gray-650;
}
}
.modal.modal-component .modal-dialog .modal-content {
diff --git a/src/fmg-components/save-progress-popup-question/save-progress-popup-sms-consent-question.spec.js b/src/fmg-components/save-progress-popup-question/save-progress-popup-sms-consent-question.spec.js
index 67d50dd4b..997f6983e 100644
--- a/src/fmg-components/save-progress-popup-question/save-progress-popup-sms-consent-question.spec.js
+++ b/src/fmg-components/save-progress-popup-question/save-progress-popup-sms-consent-question.spec.js
@@ -88,8 +88,7 @@ describe("save-progress-popup-sms-consent-question", () => {
const checkboxes = wrapper.findAllComponents({ name: "checkboxQuestion" });
expect(checkboxes.at(0).props("hasError")).toBe(false);
- expect(wrapper.text()).not.toContain(errorMessages.SMS_CONSENT_REQUIRED_1);
- expect(wrapper.text()).not.toContain(errorMessages.SMS_CONSENT_REQUIRED_2);
+ expect(wrapper.findComponent({ name: "alert" }).exists()).toBe(false);
});
it("should show the transactional consent error when consent management is disabled", async () => {
@@ -103,14 +102,17 @@ describe("save-progress-popup-sms-consent-question", () => {
await wrapper.setProps({ showConsentErrors: true });
- expect(wrapper.text()).toContain(errorMessages.SMS_CONSENT_REQUIRED_1);
- expect(wrapper.text()).not.toContain(errorMessages.SMS_CONSENT_REQUIRED_2);
+ const errorAlert = wrapper.findComponent({ name: "alert" });
+ expect(errorAlert.exists()).toBe(true);
+ expect(errorAlert.props("manualHeadline")).toBe(errorMessages.SMS_CONSENT_REQUIRED_1);
+ expect(errorAlert.props("alertClass")).toBe("alert-warning");
+ expect(errorAlert.props("hasBorder")).toBe(true);
const checkboxes = wrapper.findAllComponents({ name: "checkboxQuestion" });
expect(checkboxes.at(0).props("hasError")).toBe(true);
});
- it("should show the multi-consent error when consent management is enabled", async () => {
+ it("should show the transactional consent error when consent management is enabled", async () => {
const wrapper = shallowMount(saveProgressPopupSmsConsentQuestion, {
propsData: {
modelValue: defaultSaveProgressSmsConsent(),
@@ -121,8 +123,11 @@ describe("save-progress-popup-sms-consent-question", () => {
await wrapper.setProps({ showConsentErrors: true });
- expect(wrapper.text()).toContain(errorMessages.SMS_CONSENT_REQUIRED_2);
- expect(wrapper.text()).not.toContain(errorMessages.SMS_CONSENT_REQUIRED_1);
+ const errorAlert = wrapper.findComponent({ name: "alert" });
+ expect(errorAlert.exists()).toBe(true);
+ expect(errorAlert.props("manualHeadline")).toBe(errorMessages.SMS_CONSENT_REQUIRED_2);
+ expect(errorAlert.props("alertClass")).toBe("alert-warning");
+ expect(errorAlert.props("hasBorder")).toBe(true);
const checkboxes = wrapper.findAllComponents({ name: "checkboxQuestion" });
expect(checkboxes.at(0).props("hasError")).toBe(true);
diff --git a/src/fmg-components/save-progress-popup-question/save-progress-popup-sms-consent-question.vue b/src/fmg-components/save-progress-popup-question/save-progress-popup-sms-consent-question.vue
index 29fc45f71..d43665254 100644
--- a/src/fmg-components/save-progress-popup-question/save-progress-popup-sms-consent-question.vue
+++ b/src/fmg-components/save-progress-popup-question/save-progress-popup-sms-consent-question.vue
@@ -16,18 +16,21 @@
:labelText="consentCopy.marketing"
:hasError="showConsentError"
:isDisabled="isDisabled" />
-
+ class="mt-1"
+ cmsWidgetName="SaveProgressSmsConsentErrorAlert"
+ :manualHeadline="consentErrorMessage"
+ alertClass="alert-warning"
+ :hasBorder="true"
+ :isDismissible="false"
+ :shouldScrollToOnMount="false" />
@@ -99,8 +103,10 @@ export default {
margin: 0;
padding: 0;
- &__error {
- color: $red;
+ .alert.alert-warning {
+ :deep(.alert-heading) {
+ color: $gray-650;
+ }
}
}