@coorpacademy/progression-engine
Version:
34 lines • 1.58 kB
JavaScript
import _zip from "lodash/fp/zip";
import _trim from "lodash/fp/trim";
import _pipe from "lodash/fp/pipe";
import _map from "lodash/fp/map";
import checkAnswerCorrectness from '../../check-answer-correctness';
// eslint-disable-next-line flowtype/no-weak-types
export function assertCorrect(t, config, question, givenAnswer) {
const result = checkAnswerCorrectness(config, question, givenAnswer);
t.true(result.isCorrect, 'Answer should have been considered as correct');
t.deepEqual(result.corrections, givenAnswer.map(answer => ({
answer: _trim(answer),
isCorrect: true
})), 'All sub-answers should be considered correct');
}
export function assertIncorrect(t,
// eslint-disable-line flowtype/no-weak-types
config, question, givenAnswer, expectedCorrections) {
t.is(givenAnswer.length, expectedCorrections.length, 'Expected corrections should have the same length as givenAnswer');
const result = checkAnswerCorrectness(config, question, givenAnswer);
t.false(result.isCorrect, 'Answer should have been considered as incorrect');
t.deepEqual(result.corrections, _pipe(_zip(givenAnswer), _map(([answer, isCorrect]) => ({
answer: _trim(answer),
isCorrect
})))(expectedCorrections), 'Some sub-answers were not correctly marked as correct');
}
export function assertIncorrectEmptyAnswer(t,
// eslint-disable-line flowtype/no-weak-types
config, question, givenAnswer) {
t.deepEqual(checkAnswerCorrectness(config, question, givenAnswer), {
isCorrect: false,
corrections: []
});
}
//# sourceMappingURL=assert-check-answer-correctness.js.map