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",
referralCorrelationId: "ref-123",
referralSequenceNumber: 1,
damage: { isRepair: false },
lineItems: {
glassParts: [{ id: "part1", partType: "WINDSHIELD" }],
},
});
describe("payment-adyen.vue", () => {
@ -160,6 +164,16 @@ describe("payment-adyen.vue", () => {
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", () => {
store.getters.order.serviceLocation.appointmentType =
AppointmentTypeStrings.MOBILE;

View file

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

View file

@ -43,7 +43,7 @@ const createValidOrderForPaymentMethod = () => ({
insuranceCoverage: { isVerified: true },
},
lineItems: {
glassParts: [],
glassParts: [{ id: "part1", partType: "WINDSHIELD" }],
supportingItems: [],
vaps: [],
promos: [],
@ -157,6 +157,16 @@ describe("payment-method.vue", () => {
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,
hasSchedulingInfo,
hasCustomerInfo,
hasGlassPartsOrRepairInfo,
} from "@/helpers/page-prerequisites-helper.js";
import { ErrorMessage } from "vee-validate";
import { Field } from "vee-validate";
@ -393,7 +394,8 @@ export default {
hasServiceLocationInfo(order, logQueue) &&
hasInsuranceInfo(order, logQueue) &&
hasSchedulingInfo(order, logQueue) &&
hasCustomerInfo(order, logQueue);
hasCustomerInfo(order, logQueue) &&
hasGlassPartsOrRepairInfo(order, logQueue);
flushPagePrereqsLogs("payment-method.vue", result, logQueue);
return result;
},

View file

@ -294,6 +294,16 @@ describe("payment.vue", () => {
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", () => {
test("Returns false if pia options are not valid", () => {
// Arrange

View file

@ -249,6 +249,7 @@ import {
hasSchedulingInfo,
hasCustomerInfo,
hasPaymentMethodInfo,
hasGlassPartsOrRepairInfo,
} from "@/helpers/page-prerequisites-helper.js";
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";
@ -449,7 +450,8 @@ export default {
hasInsuranceInfo(order, logQueue) &&
hasSchedulingInfo(order, logQueue) &&
hasCustomerInfo(order, logQueue) &&
hasPaymentMethodInfo(order, logQueue);
hasPaymentMethodInfo(order, logQueue) &&
hasGlassPartsOrRepairInfo(order, logQueue);
flushPagePrereqsLogs("payment.vue", result, logQueue);
return result;
},