@coorpacademy/progression-engine
Version:
155 lines (154 loc) • 3.77 kB
JavaScript
"use strict";
var _ava = _interopRequireDefault(require("ava"));
var _ = require("..");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const createProgression = ({
ref,
version
}) => ({
engine: {
ref,
version
},
engineOptions: {
version
},
content: {
type: 'chapter',
ref: '1.A1'
},
actions: []
});
(0, _ava.default)('should throw an error if the engine ref is unknown', t => {
t.throws(() => (0, _.getConfigForProgression)(createProgression({
ref: 'foobar',
version: '1'
})), {
message: 'Unknown engine foobar'
});
});
(0, _ava.default)('should return the configuration with the given version if it exists', t => {
t.deepEqual((0, _.getConfigForProgression)(createProgression({
ref: 'microlearning',
version: '1'
})), {
version: '1',
lives: 1,
livesDisabled: false,
maxTypos: 2,
slidesToComplete: 4,
shuffleChoices: true,
answerBoundaryLimit: 5,
starsPerAskingClue: -1,
starsPerCorrectAnswer: 4,
starsPerResourceViewed: 4,
remainingLifeRequests: 1
});
t.deepEqual((0, _.getConfigForProgression)(createProgression({
ref: 'microlearning',
version: '2'
})), {
version: '2',
lives: 1,
livesDisabled: true,
maxTypos: 2,
slidesToComplete: 4,
shuffleChoices: true,
answerBoundaryLimit: 5,
starsPerAskingClue: -1,
starsPerCorrectAnswer: 4,
starsPerResourceViewed: 4,
remainingLifeRequests: 1
});
t.deepEqual((0, _.getConfigForProgression)(createProgression({
ref: 'learner',
version: '1'
})), {
version: '1',
lives: 3,
livesDisabled: false,
maxTypos: 2,
slidesToComplete: 4,
shuffleChoices: true,
answerBoundaryLimit: 5,
starsPerAskingClue: -1,
starsPerCorrectAnswer: 4,
starsPerResourceViewed: 4,
remainingLifeRequests: 1
});
t.deepEqual((0, _.getConfigForProgression)(createProgression({
ref: 'learner',
version: '2'
})), {
version: '2',
lives: 4,
livesDisabled: false,
maxTypos: 2,
slidesToComplete: 4,
shuffleChoices: true,
answerBoundaryLimit: 5,
starsPerAskingClue: -1,
starsPerCorrectAnswer: 4,
starsPerResourceViewed: 4,
remainingLifeRequests: 1
});
t.deepEqual((0, _.getConfigForProgression)(createProgression({
ref: 'external',
version: '1'
})), {
version: '1',
lives: 1,
livesDisabled: true,
maxTypos: 0,
slidesToComplete: 0,
shuffleChoices: false,
answerBoundaryLimit: 0,
starsPerAskingClue: 0,
starsPerCorrectAnswer: 0,
starsPerResourceViewed: 0,
remainingLifeRequests: 0
});
t.deepEqual((0, _.getConfigForProgression)(createProgression({
ref: 'review',
version: '1'
})), {
version: '1',
lives: 0,
livesDisabled: true,
maxTypos: 2,
slidesToComplete: 5,
shuffleChoices: true,
answerBoundaryLimit: 5,
starsPerAskingClue: 0,
starsPerCorrectAnswer: 8,
starsPerResourceViewed: 0,
remainingLifeRequests: 0
});
});
(0, _ava.default)('should merge the engineOptions values from the progression into the resulting configuration', t => {
const engineOptions = {
livesDisabled: true,
maxTypos: 100,
version: 'foobar'
};
t.deepEqual((0, _.getConfigForProgression)({
...createProgression({
ref: 'microlearning',
version: '1'
}),
engineOptions
}), {
version: 'foobar',
lives: 1,
livesDisabled: true,
maxTypos: 100,
slidesToComplete: 4,
shuffleChoices: true,
answerBoundaryLimit: 5,
starsPerAskingClue: -1,
starsPerCorrectAnswer: 4,
starsPerResourceViewed: 4,
remainingLifeRequests: 1
});
});
//# sourceMappingURL=get-config-for-progression.js.map