Added hasGlassPartsOrRepairInfo check on the 3 payment pages

This commit is contained in:
Matt Sykes 2026-03-09 17:41:11 -04:00
parent 07a184735a
commit f00aab4ad8
6 changed files with 44 additions and 4 deletions

View file

@ -87,6 +87,10 @@ const createValidOrder = () => ({
workOrderNumber: "WO-123456", workOrderNumber: "WO-123456",
referralCorrelationId: "ref-123", referralCorrelationId: "ref-123",
referralSequenceNumber: 1, referralSequenceNumber: 1,
damage: { isRepair: false },
lineItems: {
glassParts: [{ id: "part1", partType: "WINDSHIELD" }],
},
}); });
describe("payment-adyen.vue", () => { describe("payment-adyen.vue", () => {
@ -160,6 +164,16 @@ describe("payment-adyen.vue", () => {
expect(result).toBe(false); expect(result).toBe(false);
}); });
test("returns false when glass parts or repair info is missing", () => {
store.getters.order.damage.isRepair = false;
store.getters.order.lineItems.glassParts = [];
const wrapper = setupMocks({});
const result = wrapper.vm.arePagePrerequisitesValid();
expect(result).toBe(false);
});
test("returns true for mobile appointment type when address fields are present", () => { test("returns true for mobile appointment type when address fields are present", () => {
store.getters.order.serviceLocation.appointmentType = store.getters.order.serviceLocation.appointmentType =
AppointmentTypeStrings.MOBILE; AppointmentTypeStrings.MOBILE;

View file

@ -90,6 +90,7 @@ import {
hasSchedulingInfo, hasSchedulingInfo,
hasCustomerInfo, hasCustomerInfo,
hasPaymentMethodInfo, hasPaymentMethodInfo,
hasGlassPartsOrRepairInfo,
} from "@/helpers/page-prerequisites-helper.js"; } from "@/helpers/page-prerequisites-helper.js";
export default { export default {
@ -150,7 +151,8 @@ export default {
hasInsuranceInfo(order, logQueue) && hasInsuranceInfo(order, logQueue) &&
hasSchedulingInfo(order, logQueue) && hasSchedulingInfo(order, logQueue) &&
hasCustomerInfo(order, logQueue) && hasCustomerInfo(order, logQueue) &&
hasPaymentMethodInfo(order, logQueue); hasPaymentMethodInfo(order, logQueue) &&
hasGlassPartsOrRepairInfo(order, logQueue);
flushPagePrereqsLogs("payment-adyen.vue", result, logQueue); flushPagePrereqsLogs("payment-adyen.vue", result, logQueue);
return result; return result;
}, },

View file

@ -43,7 +43,7 @@ const createValidOrderForPaymentMethod = () => ({
insuranceCoverage: { isVerified: true }, insuranceCoverage: { isVerified: true },
}, },
lineItems: { lineItems: {
glassParts: [], glassParts: [{ id: "part1", partType: "WINDSHIELD" }],
supportingItems: [], supportingItems: [],
vaps: [], vaps: [],
promos: [], promos: [],
@ -157,6 +157,16 @@ describe("payment-method.vue", () => {
expect(result).toBe(false); expect(result).toBe(false);
}); });
test("returns false when glass parts or repair info is missing", () => {
const { wrapper } = setupMocks();
store.getters.order.damage.isRepair = false;
store.getters.order.lineItems.glassParts = [];
const result = wrapper.vm.arePagePrerequisitesValid();
expect(result).toBe(false);
});
}); });
}); });

View file

@ -184,6 +184,7 @@ import {
hasInsuranceInfo, hasInsuranceInfo,
hasSchedulingInfo, hasSchedulingInfo,
hasCustomerInfo, hasCustomerInfo,
hasGlassPartsOrRepairInfo,
} from "@/helpers/page-prerequisites-helper.js"; } from "@/helpers/page-prerequisites-helper.js";
import { ErrorMessage } from "vee-validate"; import { ErrorMessage } from "vee-validate";
import { Field } from "vee-validate"; import { Field } from "vee-validate";
@ -393,7 +394,8 @@ export default {
hasServiceLocationInfo(order, logQueue) && hasServiceLocationInfo(order, logQueue) &&
hasInsuranceInfo(order, logQueue) && hasInsuranceInfo(order, logQueue) &&
hasSchedulingInfo(order, logQueue) && hasSchedulingInfo(order, logQueue) &&
hasCustomerInfo(order, logQueue); hasCustomerInfo(order, logQueue) &&
hasGlassPartsOrRepairInfo(order, logQueue);
flushPagePrereqsLogs("payment-method.vue", result, logQueue); flushPagePrereqsLogs("payment-method.vue", result, logQueue);
return result; return result;
}, },

View file

@ -294,6 +294,16 @@ describe("payment.vue", () => {
expect(result).toBe(false); expect(result).toBe(false);
}); });
test("Returns false when glass parts or repair info is missing", () => {
const wrapper = setupMocks({});
store.getters.order.damage.isRepair = false;
store.getters.order.lineItems.glassParts = [];
const result = wrapper.vm.arePagePrerequisitesValid();
expect(result).toBe(false);
});
describe("Payment method cases", () => { describe("Payment method cases", () => {
test("Returns false if pia options are not valid", () => { test("Returns false if pia options are not valid", () => {
// Arrange // Arrange

View file

@ -249,6 +249,7 @@ import {
hasSchedulingInfo, hasSchedulingInfo,
hasCustomerInfo, hasCustomerInfo,
hasPaymentMethodInfo, hasPaymentMethodInfo,
hasGlassPartsOrRepairInfo,
} from "@/helpers/page-prerequisites-helper.js"; } from "@/helpers/page-prerequisites-helper.js";
import buttonQuestion from "@/digital-components/button-question/button-question"; import buttonQuestion from "@/digital-components/button-question/button-question";
import paymentMethodListButton from "@/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button"; import paymentMethodListButton from "@/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button";
@ -449,7 +450,8 @@ export default {
hasInsuranceInfo(order, logQueue) && hasInsuranceInfo(order, logQueue) &&
hasSchedulingInfo(order, logQueue) && hasSchedulingInfo(order, logQueue) &&
hasCustomerInfo(order, logQueue) && hasCustomerInfo(order, logQueue) &&
hasPaymentMethodInfo(order, logQueue); hasPaymentMethodInfo(order, logQueue) &&
hasGlassPartsOrRepairInfo(order, logQueue);
flushPagePrereqsLogs("payment.vue", result, logQueue); flushPagePrereqsLogs("payment.vue", result, logQueue);
return result; return result;
}, },