Merge pull request #2017 from Safelite/feature/CSR-2243

CSR-2243
This commit is contained in:
CarlNation 2024-10-07 08:33:08 -04:00 committed by GitHub
commit a4c6427945
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 19 deletions

View file

@ -3201,14 +3201,16 @@ export function getArrayOfAllLineItemsAndChildParts(lineItems) {
return consolidatedLineItemsArray; return consolidatedLineItemsArray;
} }
function getFlattenedArrayOfLineItemsWithChildParts(lineItems) { function getFlattenedArrayOfLineItemsWithChildParts(lineItems, childPartRecursiveCall = false) {
let flattenedArray = []; let flattenedArray = [];
lineItems?.forEach((lineItem) => { lineItems?.forEach((lineItem) => {
// this assumes childparts will never be a glass part
lineItem.isChildPart = childPartRecursiveCall;
flattenedArray.push(lineItem); flattenedArray.push(lineItem);
if (lineItem.childParts) { if (lineItem.childParts) {
flattenedArray = [ flattenedArray = [
...flattenedArray, ...flattenedArray,
...getFlattenedArrayOfLineItemsWithChildParts(lineItem.childParts), ...getFlattenedArrayOfLineItemsWithChildParts(lineItem.childParts, true),
]; ];
} }
}); });
@ -3231,11 +3233,7 @@ function getFlattenedLineItemsWithGlassPartTag(lineItems) {
return { return {
partNumber: lineItem.partNumber, partNumber: lineItem.partNumber,
partType: lineItem.partType, partType: lineItem.partType,
isGlassPart: isGlassPart: lineItem.isChildPart ? false : true,
lineItem.partType == partTypeStrings.RECALIBRATION ||
lineItem.partType == partTypeStrings.ADAS_RECALIBRATION
? false
: true,
}; };
}); });

View file

@ -5,7 +5,6 @@ import { storeActions } from "@/constants/store-actions";
import { experimentTriggers } from "@/constants/experiments"; import { experimentTriggers } from "@/constants/experiments";
import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; import { fmgPageValues } from "@/router/router-constants/fmgPage-values";
import { AppointmentTypeStrings } from "@/constants/schedule-constants"; import { AppointmentTypeStrings } from "@/constants/schedule-constants";
import { coverageStatus } from "../constants/insurance";
// Mock global method // Mock global method
globalMethods.callHttpClient = jest.fn(); globalMethods.callHttpClient = jest.fn();
@ -2935,7 +2934,7 @@ describe("Actions", () => {
// Arrange // Arrange
const context = state; const context = state;
const promoCode = "testPromo"; const promoCode = "testPromo";
const lineItemsToUse = { vaps: [{ partNumber: 1 }], promos: [2] }; const lineItemsToUse = { vaps: [{ partNumber: 1 }], promos: [{ promoCode: "1wiper0" }] };
const addableVaps = [{ partNumber: "addableVap" }]; const addableVaps = [{ partNumber: "addableVap" }];
context["getters"] = { context["getters"] = {
@ -2999,7 +2998,7 @@ describe("Actions", () => {
{ partNumber: "SBB22", id: "GUID1" }, { partNumber: "SBB22", id: "GUID1" },
{ partNumber: "SBB22", id: "GUID2" }, { partNumber: "SBB22", id: "GUID2" },
], ],
promos: [2], promos: [{ promoCode: "1wiper0" }],
}; };
const addableVaps = [{ partNumber: "SBB22" }, { partNumber: "SBB22" }]; const addableVaps = [{ partNumber: "SBB22" }, { partNumber: "SBB22" }];
@ -3059,7 +3058,7 @@ describe("Actions", () => {
// Arrange // Arrange
const context = state; const context = state;
const promoCode = "testPromo"; const promoCode = "testPromo";
const lineItemsToUse = { vaps: [{ partNumber: 1 }], promos: [2] }; const lineItemsToUse = { vaps: [{ partNumber: 1 }], promos: [{ promoCode: "1wiper0" }] };
const addableVaps = [{ partNumber: "addableVap" }]; const addableVaps = [{ partNumber: "addableVap" }];
context["getters"] = { context["getters"] = {
@ -3140,7 +3139,7 @@ describe("Actions", () => {
referralSequenceNumber: "test", referralSequenceNumber: "test",
lineItems: { lineItems: {
vaps: [{ partNumber: 1 }], vaps: [{ partNumber: 1 }],
promos: [2], promos: [{ promoCode: "1wiper0" }],
serverData: "test", serverData: "test",
}, },
}, },
@ -3152,7 +3151,7 @@ describe("Actions", () => {
crypto.randomUUID = jest.fn(() => "GUID"); crypto.randomUUID = jest.fn(() => "GUID");
const expectedLineItemsOnOrder = [{ partNumber: 1, id: "GUID" }, 2]; const expectedLineItemsOnOrder = [{ partNumber: 1, isChildPart: false, id: "GUID" }, { promoCode: "1wiper0", isChildPart: false }];
// Act // Act
actions.validateOrderPromoAndSaveServerData(context, { actions.validateOrderPromoAndSaveServerData(context, {
@ -3200,7 +3199,7 @@ describe("Actions", () => {
referralSequenceNumber: "test", referralSequenceNumber: "test",
lineItems: { lineItems: {
vaps: [{ partNumber: 1 }], vaps: [{ partNumber: 1 }],
promos: [2], promos: [{ promoCode: "1wiper0" }],
serverData: "test", serverData: "test",
}, },
}, },
@ -3258,7 +3257,7 @@ describe("Actions", () => {
referralSequenceNumber: "test", referralSequenceNumber: "test",
lineItems: { lineItems: {
vaps: [{ partNumber: 1 }], vaps: [{ partNumber: 1 }],
promos: [2], promos: [{ promoCode: "1wiper0" }],
serverData: "test", serverData: "test",
}, },
}, },
@ -3350,9 +3349,9 @@ describe("Actions", () => {
const context = state; const context = state;
context.commit = jest.fn(() => {}); context.commit = jest.fn(() => {});
const activePromosToUse = [{ promoCode: "providedPromo" }]; const activePromosToUse = [{ promoCode: "providedPromo", isChildPart: false }];
const inactivePromosToUse = ["providedInactivePromo"]; const inactivePromosToUse = ["providedInactivePromo"];
const vapsProvided = [{ id: 123 }]; const vapsProvided = [{ id: 123, isChildPart: false }];
const lineItemsToUse = { vaps: vapsProvided }; const lineItemsToUse = { vaps: vapsProvided };
context["getters"] = { context["getters"] = {
@ -3440,8 +3439,8 @@ describe("Actions", () => {
referralSequenceNumber: "test", referralSequenceNumber: "test",
lineItems: { lineItems: {
serverData: "test", serverData: "test",
promos: [{ promoCode: "test" }], promos: [{ promoCode: "test", isChildPart: false }],
vaps: [{ partNumber: "testVap", id: "providedId" }], vaps: [{ partNumber: "testVap", isChildPart:false, id: "providedId" }],
}, },
}, },
}; };