Merge pull request #3251 from Safelite/feature/CASH-2861
CASH-2861: Pre select single damage option
This commit is contained in:
commit
129eecf265
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"] }]);
|
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 () => {
|
test("Answers to display filtered by data from api.", async () => {
|
||||||
//Arrange
|
//Arrange
|
||||||
const { wrapper, cmsContent, damageOptions } = setupMocks({
|
const { wrapper, cmsContent, damageOptions } = setupMocks({
|
||||||
|
|
@ -31,6 +56,9 @@ describe("damage-location-question.vue", () => {
|
||||||
driverSideOptions: {
|
driverSideOptions: {
|
||||||
availableReplacementOptions: ["Quarter", "Front"],
|
availableReplacementOptions: ["Quarter", "Front"],
|
||||||
},
|
},
|
||||||
|
passengerSideOptions: {
|
||||||
|
availableReplacementOptions: [],
|
||||||
|
},
|
||||||
windshieldOptions: {
|
windshieldOptions: {
|
||||||
availableReplacementOptions: ["Single"],
|
availableReplacementOptions: ["Single"],
|
||||||
},
|
},
|
||||||
|
|
@ -51,6 +79,7 @@ describe("damage-location-question.vue", () => {
|
||||||
expect(wrapper.vm.damageOptions).toStrictEqual({
|
expect(wrapper.vm.damageOptions).toStrictEqual({
|
||||||
backGlassOptions: { availableReplacementOptions: [] },
|
backGlassOptions: { availableReplacementOptions: [] },
|
||||||
driverSideOptions: { availableReplacementOptions: ["Quarter", "Front"] },
|
driverSideOptions: { availableReplacementOptions: ["Quarter", "Front"] },
|
||||||
|
passengerSideOptions: { availableReplacementOptions: [] },
|
||||||
windshieldOptions: { availableReplacementOptions: ["Single"] },
|
windshieldOptions: { availableReplacementOptions: ["Single"] },
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -79,7 +108,15 @@ function setupMocks({
|
||||||
//Mock props
|
//Mock props
|
||||||
const mockMixin = {
|
const mockMixin = {
|
||||||
methods: {
|
methods: {
|
||||||
getCmsContent: jest.fn(),
|
getCmsContent: jest.fn((widget, key) => {
|
||||||
|
if (key === "Answers") {
|
||||||
|
return cmsAnswers;
|
||||||
|
}
|
||||||
|
if (key === "QuestionText") {
|
||||||
|
return cmsQuestionText;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
mountOptions.propsData = {
|
mountOptions.propsData = {
|
||||||
|
|
@ -87,6 +124,16 @@ function setupMocks({
|
||||||
isMultiSelect: isMultiSelect,
|
isMultiSelect: isMultiSelect,
|
||||||
};
|
};
|
||||||
mountOptions.mixins = [mockMixin];
|
mountOptions.mixins = [mockMixin];
|
||||||
|
mountOptions.data = function () {
|
||||||
|
return {
|
||||||
|
damageOptions: {
|
||||||
|
driverSideOptions: { availableReplacementOptions: [] },
|
||||||
|
passengerSideOptions: { availableReplacementOptions: [] },
|
||||||
|
windshieldOptions: { availableReplacementOptions: [] },
|
||||||
|
backGlassOptions: { availableReplacementOptions: [] },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
const wrapper = shallowMount(damageLocationQuestion, mountOptions);
|
const wrapper = shallowMount(damageLocationQuestion, mountOptions);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,12 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
initializeComponent(damageOptions) {
|
initializeComponent(damageOptions) {
|
||||||
this.damageOptions = damageOptions;
|
this.damageOptions = damageOptions;
|
||||||
|
this.autoSelectSingleAnswer();
|
||||||
|
},
|
||||||
|
autoSelectSingleAnswer() {
|
||||||
|
if (this.answersToDisplay.length === 1) {
|
||||||
|
this.selectedValues = [this.answersToDisplay[0].Name];
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue