UNPKG

@coorpacademy/progression-engine

Version:

155 lines (154 loc) 3.77 kB
"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