UNPKG

@coorpacademy/progression-engine

Version:

80 lines (79 loc) 5.52 kB
"use strict"; var _ava = _interopRequireDefault(require("ava")); var _config = require("../config"); var _assertCheckAnswerCorrectness = require("./helpers/assert-check-answer-correctness"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const config = (0, _config.getConfig)({ ref: 'microlearning', version: 'latest' }); function createQuestion(matchOrder, answers) { return { type: 'qcmDrag', content: { matchOrder, answers } }; } [true, false].forEach(bool => { (0, _ava.default)(`should return true when the given answer is in the accepted answers (matchOrder=${bool.toString()})`, t => { const question = createQuestion(bool, [['answer1', 'answer3'], ['answer2', 'answer4'], ['answer1', 'answer4']]); (0, _assertCheckAnswerCorrectness.assertCorrect)(t, config, question, ['answer1', 'answer3']); (0, _assertCheckAnswerCorrectness.assertCorrect)(t, config, question, ['answer2', 'answer4']); (0, _assertCheckAnswerCorrectness.assertCorrect)(t, config, question, ['answer1', 'answer4']); }); (0, _ava.default)(`should return false when the given answer does not have the same case as the accepted answers (matchOrder=${bool.toString()})`, t => { const question = createQuestion(bool, [['answer2']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['ANSWER2'], [false]); }); (0, _ava.default)(`should return false when the given answer is not in the accepted answers (matchOrder=${bool.toString()})`, t => { const question = createQuestion(bool, [['answer1', 'answer3'], ['answer2', 'answer4'], ['answer1', 'answer4']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer1', 'answer2'], [true, false]); if (bool) { (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer2', 'answer1'], [true, false]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer3', 'answer4'], [false, true]); } else { (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer2', 'answer1'], [false, true]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer3', 'answer4'], [true, false]); } }); (0, _ava.default)(`should return false when the given answer has more elements that the accepted answers (matchOrder=${bool.toString()})`, t => { const question = createQuestion(bool, [['answer1', 'answer3'], ['answer2', 'answer4'], ['answer1', 'answer4']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer1', 'answer3', 'answer2'], [true, true, false]); if (bool) { (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer1', 'answer5', 'answer3'], [true, false, false]); } else { (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer1', 'answer5', 'answer3'], [true, false, true]); } }); (0, _ava.default)(`should return false when the given answer has less elements that the accepted answers (matchOrder=${bool.toString()})`, t => { const question = createQuestion(bool, [['answer1', 'answer3'], ['answer2', 'answer4'], ['answer1', 'answer4']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer1'], [true]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer2'], [true]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer5'], [false]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, [], []); }); (0, _ava.default)(`should return false when the given answer is different but looks like the accepted answers (matchOrder=${bool.toString()})`, t => { const question = createQuestion(bool, [['answer2']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answe2r'], [false]); }); }); (0, _ava.default)('should return false when the given answer is in the accepted answers but values but in a different order (matchOrder=true)', t => { const question = createQuestion(true, [['answer1', 'answer3'], ['answer2', 'answer4'], ['answer1', 'answer4']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer3', 'answer1'], [false, false]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer4', 'answer2'], [false, false]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer4', 'answer1'], [false, false]); }); (0, _ava.default)('should return true when the given answer is in the accepted answers but values but in a different order (matchOrder=false)', t => { const question = createQuestion(false, [['answer1', 'answer3'], ['answer2', 'answer4'], ['answer1', 'answer4']]); (0, _assertCheckAnswerCorrectness.assertCorrect)(t, config, question, ['answer3', 'answer1']); (0, _assertCheckAnswerCorrectness.assertCorrect)(t, config, question, ['answer4', 'answer2']); (0, _assertCheckAnswerCorrectness.assertCorrect)(t, config, question, ['answer4', 'answer1']); }); (0, _ava.default)('should return false when there are no correct answers', t => { const question = createQuestion(false, []); (0, _assertCheckAnswerCorrectness.assertIncorrectEmptyAnswer)(t, config, question, []); (0, _assertCheckAnswerCorrectness.assertIncorrectEmptyAnswer)(t, config, question, ['foo']); }); //# sourceMappingURL=check-answer-correctness.qcm-drag.js.map