Merge pull request #782 from Safelite/bug/kbrown/SSR-1256
Updating QuestionData answer to match Question answer during deletion
This commit is contained in:
commit
f7c32ef8d5
2 changed files with 82 additions and 0 deletions
|
|
@ -118,6 +118,14 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// remove any disabled dependent answers
|
||||||
|
const answerQuestionNums = new Set(alreadyAnsweredQuestions[alreadyAnsweredQuestions.length-1].answeredQuestions.map(q => q.questionNum));
|
||||||
|
glass.questions.forEach(q => {
|
||||||
|
if(!answerQuestionNums.has(q.questionSequence)) {
|
||||||
|
delete q.answerSelected
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// advance the currentGlassIndex
|
// advance the currentGlassIndex
|
||||||
self.currentGlassIndex = index;
|
self.currentGlassIndex = index;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -445,6 +445,80 @@ describe('vehicle-questions-mixin', () => {
|
||||||
expect(returnedGlass.answerData).toMatchObject({ answerResult: 'WKT D1106 C' });
|
expect(returnedGlass.answerData).toMatchObject({ answerResult: 'WKT D1106 C' });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('if alreadyAnsweredQuestions and dependent question has been disabled', () => {
|
||||||
|
test('should return glass with the answerSelected of partQuestions and questions reflecting the answerData (previous context is being updated to reflect answerData)', async () => {
|
||||||
|
// Arrange
|
||||||
|
const glass = {
|
||||||
|
glassName: 'Single',
|
||||||
|
glassLocation: 'Windshield',
|
||||||
|
questions: [
|
||||||
|
{
|
||||||
|
questionSequence: 1,
|
||||||
|
questionText:
|
||||||
|
'Is your vehicle equipped with leather seats?',
|
||||||
|
answers: [
|
||||||
|
{
|
||||||
|
answerResult: 'FW02334',
|
||||||
|
answerText: 'Yes',
|
||||||
|
nextQuestionSequence: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
answerResult: '',
|
||||||
|
answerText: 'No',
|
||||||
|
nextQuestionSequence: 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
questionSequence: 2,
|
||||||
|
questionText:
|
||||||
|
'Is your vehicle equipped with heated seats?',
|
||||||
|
answers: [
|
||||||
|
{
|
||||||
|
answerResult: 'FW02334',
|
||||||
|
answerText: 'Yes',
|
||||||
|
nextQuestionSequence: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
answerResult: 'FW02333',
|
||||||
|
answerText: 'No',
|
||||||
|
nextQuestionSequence: null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
const i = 0;
|
||||||
|
const alreadyAnsweredQuestions = [
|
||||||
|
{
|
||||||
|
glassLocation: 'Windshield',
|
||||||
|
glassName: 'Single',
|
||||||
|
partNum: 'FW02334',
|
||||||
|
answeredQuestions: [
|
||||||
|
{
|
||||||
|
questionText:
|
||||||
|
'Is your vehicle equipped with leather seats?',
|
||||||
|
selectedAnswerText: 'Yes',
|
||||||
|
questionNum: 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const { wrapper } = setupMocks({});
|
||||||
|
|
||||||
|
// Act
|
||||||
|
const returnedGlass = await wrapper.vm.setupInitialData(
|
||||||
|
glass,
|
||||||
|
i,
|
||||||
|
alreadyAnsweredQuestions
|
||||||
|
);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(returnedGlass.questions[0].answerSelected).toEqual('1|answer|FW02334|Yes');
|
||||||
|
expect(returnedGlass.questions[1].answerSelected).toBeUndefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('handleAnswerUpdates', () => {
|
describe('handleAnswerUpdates', () => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue