-
+
diff --git a/src/layouts/payment-method/payment-method-question/payment-method-question.spec.js b/src/layouts/payment-method/payment-method-question/payment-method-question.spec.js
index d3a486d5..229823e4 100644
--- a/src/layouts/payment-method/payment-method-question/payment-method-question.spec.js
+++ b/src/layouts/payment-method/payment-method-question/payment-method-question.spec.js
@@ -1,29 +1,29 @@
-import { shallowMount } from "@vue/test-utils";
-import { getMountOptions } from "@/helpers/unit-test-helper.js";
+import { shallowMount } from '@vue/test-utils';
+import { getMountOptions } from '@/helpers/unit-test-helper.js';
-import paymentMethodQuestion from "@/layouts/payment-method/payment-method-question/payment-method-question";
+import paymentMethodQuestion from '@/layouts/payment-method/payment-method-question/payment-method-question.vue';
const testConstants = {
cms: {
question: {
- text: "Choose a payment option",
+ text: 'Choose a payment option'
},
answers: {
optionA: {
- name: "NameA",
- text: "TextA",
- subText: "SubTextA",
- imageId: "idA",
- image: "imageA",
- subWidget: "subWidgetA",
+ name: 'NameA',
+ text: 'TextA',
+ subText: 'SubTextA',
+ imageId: 'idA',
+ image: 'imageA',
+ subWidget: 'subWidgetA'
},
optionB: {
- name: "NameB",
- text: "TextB",
- subText: "SubTextB",
- imageId: "idB",
- image: "imageB",
- subWidget: "subWidgetB",
+ name: 'NameB',
+ text: 'TextB',
+ subText: 'SubTextB',
+ imageId: 'idB',
+ image: 'imageB',
+ subWidget: 'subWidgetB'
},
},
},
@@ -31,7 +31,30 @@ const testConstants = {
let cmsContent;
-describe("Payment Method Question", () => {
+function generateDefaultProps() {
+ return {
+ modelValue: 'modelValue'
+ };
+}
+
+function setupMocks(customMountOptions) {
+ const mountOptions = getMountOptions(customMountOptions);
+
+ const mockMixin = {
+ methods: {
+ getCmsContent: jest.fn((widgetName, cmsFieldName) => cmsContent?.[widgetName]?.[cmsFieldName] ?? '')
+ }
+ };
+
+ mountOptions.global.mixins = [mockMixin];
+
+ const wrapper = shallowMount(paymentMethodQuestion, mountOptions);
+ wrapper.vm.setCmsContent = jest.fn();
+ return { wrapper };
+}
+
+
+describe('Payment Method Question', () => {
beforeEach(() => {
cmsContent = {
PaymentMethodWidget: {
@@ -43,7 +66,7 @@ describe("Payment Method Question", () => {
SubText: testConstants.cms.answers.optionA.subText,
ImageId: testConstants.cms.answers.optionA.imageId,
AnswerImageUrl: testConstants.cms.answers.optionA.image,
- SubWidgetName: testConstants.cms.answers.optionA.subWidget,
+ SubWidgetName: testConstants.cms.answers.optionA.subWidget
},
{
Name: testConstants.cms.answers.optionB.name,
@@ -51,19 +74,19 @@ describe("Payment Method Question", () => {
SubText: testConstants.cms.answers.optionB.subText,
ImageId: testConstants.cms.answers.optionB.imageId,
AnswerImageUrl: testConstants.cms.answers.optionB.image,
- SubWidgetName: testConstants.cms.answers.optionB.subWidget,
- },
- ],
- },
+ SubWidgetName: testConstants.cms.answers.optionB.subWidget
+ }
+ ]
+ }
};
});
- it("Should map cms content correctly", () => {
+ it('Should map cms content correctly', () => {
// Arrange
const props = generateDefaultProps();
const { wrapper } = setupMocks({
- propsData: props,
+ propsData: props
});
// Act
@@ -74,21 +97,21 @@ describe("Payment Method Question", () => {
{
buttonLabel: testConstants.cms.answers.optionA.text,
altText: testConstants.cms.answers.optionA.text,
- groupName: "payment-method",
+ groupName: 'payment-method',
value: testConstants.cms.answers.optionA.name,
buttonImage: testConstants.cms.answers.optionA.image,
},
{
buttonLabel: testConstants.cms.answers.optionB.text,
altText: testConstants.cms.answers.optionB.text,
- groupName: "payment-method",
+ groupName: 'payment-method',
value: testConstants.cms.answers.optionB.name,
buttonImage: testConstants.cms.answers.optionB.image,
},
]);
});
- it("Handles null cms content gracefully", () => {
+ it('Handles null cms content gracefully', () => {
// Arrange
cmsContent = {};
const props = generateDefaultProps();
@@ -104,27 +127,3 @@ describe("Payment Method Question", () => {
expect(mappedContent).toEqual([]);
});
});
-
-function generateDefaultProps() {
- return {
- modelValue: "modelValue",
- };
-}
-
-function setupMocks(customMountOptions) {
- const mountOptions = getMountOptions(customMountOptions);
-
- const mockMixin = {
- methods: {
- getCmsContent: jest.fn((widgetName, cmsFieldName) => {
- return cmsContent?.[widgetName]?.[cmsFieldName] ?? "";
- }),
- },
- };
-
- mountOptions.global.mixins = [mockMixin];
-
- const wrapper = shallowMount(paymentMethodQuestion, mountOptions);
- wrapper.vm.setCmsContent = jest.fn();
- return { wrapper };
-}
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 bbd0617b..78767538 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
@@ -1,6 +1,7 @@
diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue
index 190e82c5..c65cffd4 100644
--- a/src/layouts/payment-method/payment-method.vue
+++ b/src/layouts/payment-method/payment-method.vue
@@ -4,7 +4,9 @@
v-slot="{ meta }"
@submit="onSubmit"
@invalidSubmit="onInvalidSubmit">
-
+
// Components
import siteHeader from '@/iss-components/site-header/site-header.vue';
-import navbar from "@/iss-components/nav-bar/nav-bar.vue";
+import navbar from '@/iss-components/nav-bar/nav-bar.vue';
import siteSubHeader from '@/iss-components/site-sub-header/site-sub-header.vue';
import reviewDropdown from '@/layouts/payment-method/review-dropdown/review-dropdown.vue';
-import paymentMethodQuestion from "@/layouts/payment-method/payment-method-question/payment-method-question.vue";
+import paymentMethodQuestion from '@/layouts/payment-method/payment-method-question/payment-method-question.vue';
import loadingModal from '@/iss-components/loading-modal/loading-modal.vue';
// Supporting Items
import settleAllPromises from '@/helpers/layout-helper';
import { useMainStore } from '@/store';
import { fetchCmsContentForPage } from '@/helpers/cms-content-helper';
-import { paymentMethods } from "@/constants/payment-method-constants";
+import { paymentMethods } from '@/constants/payment-method-constants';
import { Form, defineRule } from 'vee-validate';
@@ -73,7 +75,7 @@ export default {
navbar,
reviewDropdown,
paymentMethodQuestion,
- loadingModal,
+ loadingModal
},
async beforeRouteEnter(to, from, next) {
// Call APIs
@@ -102,8 +104,8 @@ export default {
});
},
data() {
- return {
- paymentMethodInternalModel: this.getPaymentMethodFromStore(),
+ return {
+ paymentMethodInternalModel: this.getPaymentMethodFromStore()
};
},
computed: {
@@ -113,11 +115,11 @@ export default {
customCtaCopy() {
switch (this.paymentMethod) {
case paymentMethods.CREDIT_CARD:
- return "Continue to checkout";
+ return 'Continue to checkout';
case paymentMethods.PAYPAL:
- return "Continue to Paypal";
+ return 'Continue to Paypal';
case paymentMethods.AFTERPAY:
- return "Continue to Afterpay";
+ return 'Continue to Afterpay';
default:
return null;
}
@@ -140,7 +142,12 @@ export default {
}
return this.paymentMethodInternalModel;
- },
+ }
+ },
+ watch: {
+ customCtaCopy(newValue) {
+ this.updateFooterButtonText(newValue);
+ }
},
methods: {
arePagePrerequisitesValid() {
@@ -212,7 +219,7 @@ export default {
);
},
getPaymentMethodFromStore() {
- const piaType = useMainStore().order.payment.piaType;
+ const { piaType } = useMainStore().order.payment;
const isPia = useMainStore().order.payment.isPia && !!piaType;
return isPia ? piaType : paymentMethods.LATER;
@@ -226,7 +233,7 @@ export default {
async forwardButtonAction() {
await useMainStore().savePaymentMethodChoice(this.paymentMethod);
- if (this.paymentMethod == paymentMethods.LATER) {
+ if (this.paymentMethod === paymentMethods.LATER) {
this.$router.navigateWithoutSaving(
this.navigationScenarios.CLICKED_FORWARD,
this.$route
@@ -240,32 +247,13 @@ export default {
// if we don't have a work order in delete substatus, set the flag and submit.
// we need a work order number for pia so we can pass it to safeliteHop.
- if (!store.getters.order.workOrderNumber) {
- try {
- await submitWorkOrder({
- pageNameToLog: "payment-method",
- submitAfterSave: false,
- createDeleteStatusWorkOrderForPia: true,
- });
- } catch (error) {
- console.log("error: response from pia submit work order:" + error.message);
- this.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE);
- this.$route.params[routerParams.DISPLAY_PIA_ALERT] = true;
- return;
- }
- }
- this.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE);
+
this.$router.navigateWithoutSaving(
this.navigationScenarios.CLICKED_PAY_NOW,
this.$route
);
- },
- },
- watch: {
- customCtaCopy(newValue) {
- this.updateFooterButtonText(newValue);
- },
- },
+ }
+ }
};
diff --git a/src/store/index.js b/src/store/index.js
index fe6538cd..88af31f8 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -13,7 +13,7 @@ import damageLocationsSelected from '@/constants/damage-locations-selected';
import coverageStatuses from '@/constants/coverage-statuses';
import { AppointmentTypeStrings, PREMIUM_FEE_PART_TYPE } from '@/constants/schedule-constants';
import { convertDateStringToDate, getDateDifferenceInDays, militaryToTwelveHourTime } from '@/helpers/date-helper';
-import { paymentMethods } from "@/constants/payment-method-constants";
+import { paymentMethods } from '@/constants/payment-method-constants';
const storeId = 'main';
@@ -150,7 +150,7 @@ const getDefaultState = () => ({
},
parentAccountNumber: 0,
isPia: null,
- piaType: null,
+ piaType: null
},
contactInfo: {
firstName: null,