@coorpacademy/progression-engine
Version:
70 lines (69 loc) • 4.67 kB
JavaScript
;
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