UNPKG

@coorpacademy/progression-engine

Version:

70 lines (69 loc) 4.67 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(answers) { return { type: 'qcm', content: { choices: [], answers } }; } (0, _ava.default)('should return true when the given answer is in the accepted answers', t => { const question = createQuestion([['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', t => { const question = createQuestion([['answer2']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['ANSWER2'], [false]); }); (0, _ava.default)('should return true when the given answer is in the accepted answers but values are in a different order', t => { const question = createQuestion([['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 the given answer is not in the accepted answers', t => { const question = createQuestion([['answer1', 'answer3'], ['answer2', 'answer4'], ['answer1', 'answer4']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer2', 'answer1'], [false, true]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer1', 'answer2'], [true, false]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer3', 'answer4'], [true, false]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer5', 'answer4'], [false, true]); }); (0, _ava.default)('should return false when the given answer has more elements that the accepted answers', t => { const question = createQuestion([['answer1', 'answer3'], ['answer2', 'answer4'], ['answer1', 'answer4']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer1', 'answer3', 'answer2'], [true, true, false]); (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', t => { const question = createQuestion([['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 isn't the same but resembles the accepted answers", t => { const question = createQuestion([['answer2']]); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answe2r'], [false]); }); (0, _ava.default)('should return false when there are no correct answers', t => { const question = createQuestion([]); (0, _assertCheckAnswerCorrectness.assertIncorrectEmptyAnswer)(t, config, question, []); (0, _assertCheckAnswerCorrectness.assertIncorrectEmptyAnswer)(t, config, question, ['foo']); }); (0, _ava.default)('should trim the given and accepted answers before comparing', t => { const question = createQuestion([[' answer1', ' answer3 ']]); (0, _assertCheckAnswerCorrectness.assertCorrect)(t, config, question, ['answer1', 'answer3']); (0, _assertCheckAnswerCorrectness.assertCorrect)(t, config, question, ['answer1 ', ' answer3']); (0, _assertCheckAnswerCorrectness.assertIncorrect)(t, config, question, ['answer2', 'answer3'], [false, true]); }); //# sourceMappingURL=check-answer-correctness.qcm.js.map