diff --git a/jest.config.js b/jest.config.js index a73aac7ea..a511fdc02 100644 --- a/jest.config.js +++ b/jest.config.js @@ -23,6 +23,7 @@ module.exports = { "!src/layouts/address-vehicles/address-vehicles-question/address-vehicles-question.vue", "!src/ux-components/alert/alert.vue", "!src/helpers/validation-rules.js", + "!src/common-components/question-chain/question-chain", // END ], // ! means exclude from coverage. testMatch: ["**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"], diff --git a/src/common-components/button-question/button-question.spec.js b/src/common-components/button-question/button-question.spec.js index b70304035..9cf75368e 100644 --- a/src/common-components/button-question/button-question.spec.js +++ b/src/common-components/button-question/button-question.spec.js @@ -112,7 +112,8 @@ describe("buttonQuestion.vue", () => { const wrapper = shallowMount(buttonQuestion, setupMocks({})); await wrapper.setProps({ answers: ["2022", "2021", "2020"], - isMultiSelect: false + isMultiSelect: false, + modelValue: [] }); const val = { checkValue: true, value: "2021", } wrapper.vm.handleCheckedChanged(val); diff --git a/src/common-components/button-question/button-question.vue b/src/common-components/button-question/button-question.vue index 07efe470e..f1c2ad98a 100644 --- a/src/common-components/button-question/button-question.vue +++ b/src/common-components/button-question/button-question.vue @@ -36,6 +36,7 @@ data-test="button" :validationRules="validationRules" :class="[suppressError ? 'alertError' : '']" + :clearOnUnmount="clearOnUnmount" /> @@ -84,6 +85,10 @@ export default { validationRules: String, suppressError: Boolean, useTextForValue: Boolean, + clearOnUnmount: { + type: Boolean, + default: true + } }, computed: { getFieldSetClasses() { @@ -133,17 +138,14 @@ export default { return answer.Name ? answer.Name : answer; }, handleCheckedChanged(val) { - - if(this.isMultiSelect && this.selectedValues) { - // Add or remove item to array of data to emit - const newSelectedValues = this.selectedValues; - + if(this.selectingInitiatesLoad) { + this.selectedValues = [val.value]; + } else { if(Array.isArray(this.selectedValues)) { + const newSelectedValues = this.selectedValues; val.checkValue ? newSelectedValues.push(val.value) : newSelectedValues.splice(newSelectedValues.indexOf(val.value), 1); this.selectedValues = newSelectedValues; } - } else { - this.selectedValues = [val.value]; } }, }, @@ -179,4 +181,22 @@ export default { text-align: center; } } + +.vehicle-parts { + .question-text { + span { + font-size: .875rem; + text-align: left; + margin: 0 0 .5rem 0; + } + } + .question-text { + margin: 0; + } + fieldset { + .ui-radio { + margin: 0; + } + } +} diff --git a/src/common-components/question-chain/question-chain.vue b/src/common-components/question-chain/question-chain.vue new file mode 100644 index 000000000..d605d7fde --- /dev/null +++ b/src/common-components/question-chain/question-chain.vue @@ -0,0 +1,119 @@ + + + \ No newline at end of file diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index e8349ef40..1924b0063 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -14,7 +14,7 @@ const storeMutations = { UPDATE_IS_REPAIR: "updateIsRepair", UPDATE_NUMBER_OF_CHIPS: "updateNumberOfChips", UPDATE_GLASS_TO_REPLACE: "updateGlassToReplace", - UPDATE_PARTS: "updateParts", + UPDATE_GLASS_PARTS: "updateGlassParts", UPDATE_REGISTRATION_LICENSE_PLATE : "updateRegistrationLicensePlate", UPDATE_REGISTRATION_ADDRESS: "updateRegistrationAddress", UPDATE_REGISTRATION_CITY: "updateRegistrationCity", @@ -40,7 +40,7 @@ const storeMutations = { RESET_VEHICLE_STATE: "resetVehicleState", RESET_DAMAGE_STATE: "resetDamageState", RESET_REGISTRATION_STATE: "resetRegistrationState", - RESET_PARTS_STATE: "resetPartsState", + RESET_GLASS_PARTS_STATE: "resetGlassPartsState", RESET_STATE: "resetState", // OTHER MUTATIONS diff --git a/src/layouts/part-questions/part-questions.vue b/src/layouts/part-questions/part-questions.vue index 36a7d6465..af202feed 100644 --- a/src/layouts/part-questions/part-questions.vue +++ b/src/layouts/part-questions/part-questions.vue @@ -67,7 +67,7 @@ export default { }, resetDependentState() { // Set - store.commit(storeMutations.UPDATE_PARTS, null); + store.commit(storeMutations.UPDATE_GLASS_PARTS, null); // Invokes store.dispatch(storeActions.RESET_PARTS_AND_DEPS); diff --git a/src/layouts/reveal/reveal.vue b/src/layouts/reveal/reveal.vue index 200fec263..7ca9d903f 100644 --- a/src/layouts/reveal/reveal.vue +++ b/src/layouts/reveal/reveal.vue @@ -50,7 +50,7 @@ export default { }, resetDependentState() { // Set - store.commit(storeMutations.UPDATE_PARTS, null); + store.commit(storeMutations.UPDATE_GLASS_PARTS, null); // Invokes store.dispatch(storeActions.RESET_PARTS_AND_DEPS); diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index 842cc0720..24b0b5033 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -1,5 +1,5 @@