From e29a2a00aef3e6062fee84511e71831dfce84792 Mon Sep 17 00:00:00 2001 From: scottkiener-at-safelite Date: Mon, 27 Oct 2025 16:33:41 -0400 Subject: [PATCH 1/4] Fix cart modification in getter Move it to the removeItem method where it's easier to follow the code flow --- src/fmg-components/cart/cart.vue | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index e9152dd9d..3961c4d4f 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -312,10 +312,23 @@ export default { this.lineItems[category] = this.lineItems[category].filter( (lineItemsToKeep) => lineItemsToKeep.cartItemType != cartItemType ); + let shouldSaveSupportingItems = category == cartItemCategories.SUPPORTING_ITEMS; if (category == cartItemCategories.VAPS || category == cartItemCategories.PROMOS) { this.saveVaps(this.lineItems); + // Check if service package discount should be removed after vaps change + if (this.servicePackageDiscountCartItem && this.discountPackageNames != this.packageLevel) { + this.lineItems.supportingItems = this.lineItems.supportingItems.filter( + (lineItemsToKeep) => lineItemsToKeep.cartItemType != this.servicePackageDiscountCartItem.cartItemType + ); + await this.dispatchStoreAction( + storeActions.SAVE_SUPPORTING_ITEMS_SUPPRESSING_STATE_RESETTING, + this.lineItems.supportingItems, + false + ); + shouldSaveSupportingItems = true; + } } - if (category == cartItemCategories.SUPPORTING_ITEMS) { + if (shouldSaveSupportingItems) { await this.dispatchStoreAction( storeActions.SAVE_SUPPORTING_ITEMS_SUPPRESSING_STATE_RESETTING, this.lineItems.supportingItems, @@ -471,14 +484,7 @@ export default { } if (this.servicePackageDiscountCartItem) { - if (this.discountPackageNames != this.packageLevel) { - this.removeItem( - this.servicePackageDiscountCartItem.cartItemType, - cartItemCategories.SUPPORTING_ITEMS - ); - } else { - cartItems.push(this.servicePackageDiscountCartItem); - } + cartItems.push(this.servicePackageDiscountCartItem); } if (this.premiumAppointmentDiscountCartItem) { From 78aa17361499b07df5c86c3c9d2cfdc2189b52b6 Mon Sep 17 00:00:00 2001 From: scottkiener-at-safelite Date: Tue, 28 Oct 2025 08:12:39 -0400 Subject: [PATCH 2/4] Formatting --- src/fmg-components/cart/cart.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index 3961c4d4f..9fb5bba92 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -316,9 +316,14 @@ export default { if (category == cartItemCategories.VAPS || category == cartItemCategories.PROMOS) { this.saveVaps(this.lineItems); // Check if service package discount should be removed after vaps change - if (this.servicePackageDiscountCartItem && this.discountPackageNames != this.packageLevel) { + if ( + this.servicePackageDiscountCartItem && + this.discountPackageNames != this.packageLevel + ) { this.lineItems.supportingItems = this.lineItems.supportingItems.filter( - (lineItemsToKeep) => lineItemsToKeep.cartItemType != this.servicePackageDiscountCartItem.cartItemType + (lineItemsToKeep) => + lineItemsToKeep.cartItemType != + this.servicePackageDiscountCartItem.cartItemType ); await this.dispatchStoreAction( storeActions.SAVE_SUPPORTING_ITEMS_SUPPRESSING_STATE_RESETTING, From 66b2efdbb4eb2c151eeaac71f2560721e22b52d2 Mon Sep 17 00:00:00 2001 From: scottkiener-at-safelite Date: Tue, 28 Oct 2025 09:26:51 -0400 Subject: [PATCH 3/4] Remove redundant save call --- src/fmg-components/cart/cart.vue | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index 9fb5bba92..d1bd2a939 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -325,11 +325,6 @@ export default { lineItemsToKeep.cartItemType != this.servicePackageDiscountCartItem.cartItemType ); - await this.dispatchStoreAction( - storeActions.SAVE_SUPPORTING_ITEMS_SUPPRESSING_STATE_RESETTING, - this.lineItems.supportingItems, - false - ); shouldSaveSupportingItems = true; } } From 90370f8a96ec8432fb6ad65077e32b4251ec9e2a Mon Sep 17 00:00:00 2001 From: scottkiener-at-safelite Date: Tue, 28 Oct 2025 13:31:30 -0400 Subject: [PATCH 4/4] Remove outdated unit test There shouldn't be logic that modifies the cartItems inside the getter --- src/fmg-components/cart/cart.spec.js | 34 ---------------------------- 1 file changed, 34 deletions(-) diff --git a/src/fmg-components/cart/cart.spec.js b/src/fmg-components/cart/cart.spec.js index 6cec9ed3b..f06a49a90 100644 --- a/src/fmg-components/cart/cart.spec.js +++ b/src/fmg-components/cart/cart.spec.js @@ -309,40 +309,6 @@ describe("cart.vue", () => { expect(found).toBe(true); }); - // Service package discount Fee Cart Item - test("only if there is service package discount fee for the package, a service package discount cart item should be added to the cart", () => { - // Arrange - const lineItems = { - glassParts: [], - supportingItems: [ - { - description: null, - id: "bc00294e-6baa-403e-866e-52c267187a15", - kitPrice: 0, - laborAmount: 0, - partNumber: "DISC CASHSAVE70", - partType: "SERVICE PACKAGE DISCOUNT", - salesTax: null, - sellingPrice: -70, - }, - ], - vaps: [], - promos: [], - }; - - const availableVaps = []; - - // Act - const { wrapper } = setupMocks({ - props: { - modelValue: lineItems, - availableVaps: availableVaps, - }, - }); - // Assert - expect(wrapper.vm.servicePackageDiscountCartItem).toBeNull(); - }); - // Other Supporting Items Cart Item test("if there are other supporting items on the order, an other supporting items cart item should be added to the cart but should not be displayed", () => { // Arrange