diff --git a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.spec.js b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.spec.js index 43f69c74..a95f0c89 100644 --- a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.spec.js +++ b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.spec.js @@ -83,7 +83,7 @@ describe("glass-part-question.vue", () => { }, ], }; - + const { wrapper } = setupMocks(featureListData); //Act @@ -94,7 +94,7 @@ describe("glass-part-question.vue", () => { await wrapper.setData({ selectedTint: "Green Tint" }); // to trigger the computed setter wrapper.vm.selectedPartNumber = "DB12209GTYN"; - + //Assert expect(wrapper.emitted()["update:modelValue"][0]).toEqual([ { partNumber: "DB12209GTYN", color: "Green Tint" }, diff --git a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue index 75609fee..9b1beaec 100644 --- a/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue +++ b/src/layouts/vehicle-parts/glass-part-question/glass-part-question.vue @@ -50,6 +50,7 @@ import { errorMessages } from "@/constants/error-messages"; export default { name: "glass-part-question", + emits: ["update:modelValue"], inheritAttrs: false, data() { return { @@ -117,10 +118,8 @@ export default { return this.modelValue?.partNumber; }, set(newValue) { - this.$emit( - "update:modelValue", - this.partsForSelectedTint.filter((part) => part.partNumber == newValue.value)[0] - ); + const part = this.partsForSelectedTint.filter((part) => part.partNumber == newValue?.value)[0]; + this.$emit("update:modelValue", part); }, }, @@ -181,13 +180,6 @@ export default { return tintSourceObject.src; }, - // Reset selections when tint changes for the same glass to ensure proper selection. - // Also checks if only a single part is present for the tint. - ResetTintAndPartSelections() { - this.selectedPartNumber = null; - this.AutoSelectIfSinglePart(); - }, - AutoSelectIfSinglePart() { if (this.partsForSelectedTint?.length > 0) { @@ -202,6 +194,9 @@ export default { radioInput?.click(); }); } + else { + this.selectedPartNumber = null; + } } }, diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index 24413af3..08caf800 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -108,9 +108,7 @@ data() { }, computed: { isForwardActionDisabled() { - return ( - this.selectedGlassPartNumbers.length !== this.PartsFromApi.partsOrQuestions.length - ); + return this.selectedGlassPartNumbers.length !== this.PartsFromApi.partsOrQuestions.length }, selectedGlassPartNumbers() { // Compile all selected parts from the page.