UNPKG

@coorpacademy/progression-engine

Version:

34 lines 1.58 kB
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