CASH-2861: Pre select single damage option
This commit is contained in:
parent
0e119272f3
commit
465e6b5968
2 changed files with 54 additions and 1 deletions
|
|
@ -24,6 +24,31 @@ describe("damage-location-question.vue", () => {
|
|||
expect(wrapper.emitted()["update:modelValue"][0]).toEqual([{ modelValue: ["Backseat"] }]);
|
||||
});
|
||||
|
||||
test("when only one damage location is available, auto-selects it", async () => {
|
||||
const { wrapper, damageOptions } = setupMocks({
|
||||
modelValueProp: [],
|
||||
dataFromStoreApi: {
|
||||
driverSideOptions: {
|
||||
availableReplacementOptions: [],
|
||||
},
|
||||
passengerSideOptions: {
|
||||
availableReplacementOptions: [],
|
||||
},
|
||||
windshieldOptions: {
|
||||
availableReplacementOptions: ["Single"],
|
||||
},
|
||||
backGlassOptions: {
|
||||
availableReplacementOptions: [],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
damageLocationQuestion.methods.initializeComponent.call(wrapper.vm, damageOptions);
|
||||
await wrapper.vm.$nextTick();
|
||||
|
||||
expect(wrapper.emitted("update:modelValue")[0][0]).toEqual(["Windshield"]);
|
||||
});
|
||||
|
||||
test("Answers to display filtered by data from api.", async () => {
|
||||
//Arrange
|
||||
const { wrapper, cmsContent, damageOptions } = setupMocks({
|
||||
|
|
@ -31,6 +56,9 @@ describe("damage-location-question.vue", () => {
|
|||
driverSideOptions: {
|
||||
availableReplacementOptions: ["Quarter", "Front"],
|
||||
},
|
||||
passengerSideOptions: {
|
||||
availableReplacementOptions: [],
|
||||
},
|
||||
windshieldOptions: {
|
||||
availableReplacementOptions: ["Single"],
|
||||
},
|
||||
|
|
@ -51,6 +79,7 @@ describe("damage-location-question.vue", () => {
|
|||
expect(wrapper.vm.damageOptions).toStrictEqual({
|
||||
backGlassOptions: { availableReplacementOptions: [] },
|
||||
driverSideOptions: { availableReplacementOptions: ["Quarter", "Front"] },
|
||||
passengerSideOptions: { availableReplacementOptions: [] },
|
||||
windshieldOptions: { availableReplacementOptions: ["Single"] },
|
||||
});
|
||||
});
|
||||
|
|
@ -79,7 +108,15 @@ function setupMocks({
|
|||
//Mock props
|
||||
const mockMixin = {
|
||||
methods: {
|
||||
getCmsContent: jest.fn(),
|
||||
getCmsContent: jest.fn((widget, key) => {
|
||||
if (key === "Answers") {
|
||||
return cmsAnswers;
|
||||
}
|
||||
if (key === "QuestionText") {
|
||||
return cmsQuestionText;
|
||||
}
|
||||
return "";
|
||||
}),
|
||||
},
|
||||
};
|
||||
mountOptions.propsData = {
|
||||
|
|
@ -87,6 +124,16 @@ function setupMocks({
|
|||
isMultiSelect: isMultiSelect,
|
||||
};
|
||||
mountOptions.mixins = [mockMixin];
|
||||
mountOptions.data = function () {
|
||||
return {
|
||||
damageOptions: {
|
||||
driverSideOptions: { availableReplacementOptions: [] },
|
||||
passengerSideOptions: { availableReplacementOptions: [] },
|
||||
windshieldOptions: { availableReplacementOptions: [] },
|
||||
backGlassOptions: { availableReplacementOptions: [] },
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
const wrapper = shallowMount(damageLocationQuestion, mountOptions);
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,12 @@ export default {
|
|||
methods: {
|
||||
initializeComponent(damageOptions) {
|
||||
this.damageOptions = damageOptions;
|
||||
this.autoSelectSingleAnswer();
|
||||
},
|
||||
autoSelectSingleAnswer() {
|
||||
if (this.answersToDisplay.length === 1) {
|
||||
this.selectedValues = [this.answersToDisplay[0].Name];
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
|
|
|
|||
Loading…
Reference in a new issue