@coorpacademy/player-web 3.19.2 → 3.19.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/map-state-to-props/player.js +5 -3
- package/es/map-state-to-props/player.js.map +1 -1
- package/es/map-state-to-props/test/player.js +18 -1
- package/es/map-state-to-props/test/player.js.map +1 -1
- package/es/views/test/slide.js +18 -1
- package/es/views/test/slide.js.map +1 -1
- package/lib/map-state-to-props/player.js +5 -3
- package/lib/map-state-to-props/player.js.map +1 -1
- package/lib/map-state-to-props/test/player.js +24 -1
- package/lib/map-state-to-props/test/player.js.map +1 -1
- package/lib/views/test/slide.js +24 -1
- package/lib/views/test/slide.js.map +1 -1
- package/package.json +3 -3
|
@@ -19,7 +19,8 @@ const playerProps = (options, store) => {
|
|
|
19
19
|
const createHeaderStateToProps_ = createHeaderStateToProps(options, store);
|
|
20
20
|
return state => {
|
|
21
21
|
const {
|
|
22
|
-
translate
|
|
22
|
+
translate,
|
|
23
|
+
services
|
|
23
24
|
} = options;
|
|
24
25
|
const {
|
|
25
26
|
dispatch
|
|
@@ -79,12 +80,13 @@ const playerProps = (options, store) => {
|
|
|
79
80
|
selected: route === 'clue',
|
|
80
81
|
disabled: !hasClue,
|
|
81
82
|
onClick: clickClueHandler
|
|
82
|
-
}
|
|
83
|
+
}];
|
|
84
|
+
services?.Coach && buttons.push({
|
|
83
85
|
title: translate('Coach'),
|
|
84
86
|
type: 'coach',
|
|
85
87
|
disabled: availableCoaches === 0,
|
|
86
88
|
onClick: () => dispatch(startChat())
|
|
87
|
-
}
|
|
89
|
+
});
|
|
88
90
|
const headerProps = createHeaderStateToProps_(state);
|
|
89
91
|
|
|
90
92
|
if (!_includes(route, ROUTES)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/map-state-to-props/player.js"],"names":["getClue","getCoaches","getCurrentClue","getCurrentContent","getCurrentSlide","getEngineConfig","getQuestionMedia","getRoute","hasSeenLesson","selectClue","selectRoute","startChat","validateAnswer","isQuestionCtaDisabled","getProgressionSteps","createGetAnswerProps","createGetHelp","createHeaderStateToProps","getResourcesProps","ROUTES","STARS_DIFF","media","clue","playerProps","options","store","createGetAnswerProps_","getResourcesProps_","createGetHelp_","createHeaderStateToProps_","state","translate","dispatch","engineConfig","slide","slideContext","currentContent","answer","mediaQuestion","route","resources","help","starsDiff","clickClueHandler","clickSeeClueHandler","clickBackToAnswerHandler","clickCTAHandler","hasClue","slideLessons","notifyNewMedia","notifyReviewLesson","contextButton","title","type","selected","onClick","availableCoaches","buttons","disabled","notify","headerProps","ctaButtonValidate","submitValue","light","small","name","secondary","ctaButtonBackToQuestion","typeClue","text","onClickSeeClue","question","step","backgroundUrl","verticalMargin","cta","answerType","model","showNewMedia","showReviewLesson","header"],"mappings":"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","sourcesContent":["import {includes, isEmpty, get, isNil} from 'lodash/fp';\nimport {\n getClue,\n getCoaches,\n getCurrentClue,\n getCurrentContent,\n getCurrentSlide,\n getEngineConfig,\n getQuestionMedia,\n getRoute,\n hasSeenLesson,\n selectClue,\n selectRoute,\n startChat,\n validateAnswer,\n isQuestionCtaDisabled,\n getProgressionSteps\n} from '@coorpacademy/player-store';\nimport {createGetAnswerProps, createGetHelp} from './answer';\nimport createHeaderStateToProps from './header';\nimport getResourcesProps from './resources';\n\nconst ROUTES = ['media', 'clue', 'context', 'answer'];\n\nconst STARS_DIFF = {\n media: 'starsPerResourceViewed',\n clue: 'starsPerAskingClue'\n};\n\nconst playerProps = (options, store) => {\n const createGetAnswerProps_ = createGetAnswerProps(options, store);\n const getResourcesProps_ = getResourcesProps(options, store);\n const createGetHelp_ = createGetHelp(options, store);\n const createHeaderStateToProps_ = createHeaderStateToProps(options, store);\n\n return state => {\n const {translate} = options;\n const {dispatch} = store;\n\n const engineConfig = getEngineConfig(state);\n const slide = getCurrentSlide(state);\n const slideContext = get('context', slide);\n const currentContent = getCurrentContent(state);\n const answer = createGetAnswerProps_(state, slide);\n const mediaQuestion = getQuestionMedia(state);\n const clue = getCurrentClue(state) || null;\n const route = getRoute(state);\n const resources = getResourcesProps_(state, slide);\n const help = createGetHelp_(slide);\n const starsDiff = get(STARS_DIFF[route], engineConfig) || 0;\n const clickClueHandler = () => dispatch(selectClue);\n const clickSeeClueHandler = () => dispatch(getClue);\n const clickBackToAnswerHandler = () => dispatch(selectRoute('answer'));\n const clickCTAHandler = () => dispatch(validateAnswer());\n\n const hasClue = get('hasClue', slide);\n const slideLessons = get('lessons', slide);\n\n const notifyNewMedia = !isEmpty(slideLessons) && !hasSeenLesson(state);\n const notifyReviewLesson = !isEmpty(slideLessons) && hasSeenLesson(state);\n\n const contextButton = get('title', slideContext)\n ? [\n {\n title: translate('Context'),\n type: 'context',\n selected: route === 'context',\n onClick: () => {\n return dispatch(selectRoute('context'));\n }\n }\n ]\n : [];\n\n const availableCoaches = getCoaches(state);\n const buttons = [\n ...contextButton,\n {\n title: translate('Question'),\n type: 'question',\n selected: route === 'answer',\n onClick: clickBackToAnswerHandler\n },\n {\n title: translate('Media'),\n type: 'media',\n selected: route === 'media',\n disabled: isEmpty(slideLessons),\n onClick: () => dispatch(selectRoute('media')),\n notify: notifyNewMedia\n },\n {\n title: translate('Clue'),\n type: 'clue',\n selected: route === 'clue',\n disabled: !hasClue,\n onClick: clickClueHandler\n },\n {\n title: translate('Coach'),\n type: 'coach',\n disabled: availableCoaches === 0,\n onClick: () => dispatch(startChat())\n }\n ];\n const headerProps = createHeaderStateToProps_(state);\n\n if (!includes(route, ROUTES)) {\n return {};\n }\n\n const ctaButtonValidate = {\n submitValue: translate('Validate'),\n onClick: clickCTAHandler,\n light: false,\n small: false,\n name: 'validateAnswerCTA',\n secondary: false,\n disabled: isQuestionCtaDisabled(state)\n };\n\n const ctaButtonBackToQuestion = {\n submitValue: translate(route === 'context' ? 'Go to question' : 'Back to question'),\n onClick: clickBackToAnswerHandler,\n light: false,\n small: false,\n name: 'backToQuestionCTA',\n secondary: true,\n disabled: false\n };\n\n return {\n typeClue: route,\n text: clue,\n onClickSeeClue: clickSeeClueHandler,\n question: get('question.header')(slide),\n step: getProgressionSteps(state),\n slideContext,\n backgroundUrl: get('backgroundUrl')(currentContent),\n verticalMargin: 260,\n starsDiff,\n resources,\n cta: route === 'answer' ? ctaButtonValidate : ctaButtonBackToQuestion,\n help,\n answerType: {\n model: answer,\n media: mediaQuestion\n },\n showNewMedia: (isNil(route) || route === 'answer') && notifyNewMedia,\n showReviewLesson: (isNil(route) || route === 'answer') && notifyReviewLesson,\n buttons,\n header: headerProps\n };\n };\n};\n\nexport default playerProps;\n"],"file":"player.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/player.js"],"names":["getClue","getCoaches","getCurrentClue","getCurrentContent","getCurrentSlide","getEngineConfig","getQuestionMedia","getRoute","hasSeenLesson","selectClue","selectRoute","startChat","validateAnswer","isQuestionCtaDisabled","getProgressionSteps","createGetAnswerProps","createGetHelp","createHeaderStateToProps","getResourcesProps","ROUTES","STARS_DIFF","media","clue","playerProps","options","store","createGetAnswerProps_","getResourcesProps_","createGetHelp_","createHeaderStateToProps_","state","translate","services","dispatch","engineConfig","slide","slideContext","currentContent","answer","mediaQuestion","route","resources","help","starsDiff","clickClueHandler","clickSeeClueHandler","clickBackToAnswerHandler","clickCTAHandler","hasClue","slideLessons","notifyNewMedia","notifyReviewLesson","contextButton","title","type","selected","onClick","availableCoaches","buttons","disabled","notify","Coach","push","headerProps","ctaButtonValidate","submitValue","light","small","name","secondary","ctaButtonBackToQuestion","typeClue","text","onClickSeeClue","question","step","backgroundUrl","verticalMargin","cta","answerType","model","showNewMedia","showReviewLesson","header"],"mappings":"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","sourcesContent":["import {includes, isEmpty, get, isNil} from 'lodash/fp';\nimport {\n getClue,\n getCoaches,\n getCurrentClue,\n getCurrentContent,\n getCurrentSlide,\n getEngineConfig,\n getQuestionMedia,\n getRoute,\n hasSeenLesson,\n selectClue,\n selectRoute,\n startChat,\n validateAnswer,\n isQuestionCtaDisabled,\n getProgressionSteps\n} from '@coorpacademy/player-store';\nimport {createGetAnswerProps, createGetHelp} from './answer';\nimport createHeaderStateToProps from './header';\nimport getResourcesProps from './resources';\n\nconst ROUTES = ['media', 'clue', 'context', 'answer'];\n\nconst STARS_DIFF = {\n media: 'starsPerResourceViewed',\n clue: 'starsPerAskingClue'\n};\n\nconst playerProps = (options, store) => {\n const createGetAnswerProps_ = createGetAnswerProps(options, store);\n const getResourcesProps_ = getResourcesProps(options, store);\n const createGetHelp_ = createGetHelp(options, store);\n const createHeaderStateToProps_ = createHeaderStateToProps(options, store);\n\n return state => {\n const {translate, services} = options;\n const {dispatch} = store;\n\n const engineConfig = getEngineConfig(state);\n const slide = getCurrentSlide(state);\n const slideContext = get('context', slide);\n const currentContent = getCurrentContent(state);\n const answer = createGetAnswerProps_(state, slide);\n const mediaQuestion = getQuestionMedia(state);\n const clue = getCurrentClue(state) || null;\n const route = getRoute(state);\n const resources = getResourcesProps_(state, slide);\n const help = createGetHelp_(slide);\n const starsDiff = get(STARS_DIFF[route], engineConfig) || 0;\n const clickClueHandler = () => dispatch(selectClue);\n const clickSeeClueHandler = () => dispatch(getClue);\n const clickBackToAnswerHandler = () => dispatch(selectRoute('answer'));\n const clickCTAHandler = () => dispatch(validateAnswer());\n\n const hasClue = get('hasClue', slide);\n const slideLessons = get('lessons', slide);\n\n const notifyNewMedia = !isEmpty(slideLessons) && !hasSeenLesson(state);\n const notifyReviewLesson = !isEmpty(slideLessons) && hasSeenLesson(state);\n\n const contextButton = get('title', slideContext)\n ? [\n {\n title: translate('Context'),\n type: 'context',\n selected: route === 'context',\n onClick: () => {\n return dispatch(selectRoute('context'));\n }\n }\n ]\n : [];\n\n const availableCoaches = getCoaches(state);\n const buttons = [\n ...contextButton,\n {\n title: translate('Question'),\n type: 'question',\n selected: route === 'answer',\n onClick: clickBackToAnswerHandler\n },\n {\n title: translate('Media'),\n type: 'media',\n selected: route === 'media',\n disabled: isEmpty(slideLessons),\n onClick: () => dispatch(selectRoute('media')),\n notify: notifyNewMedia\n },\n {\n title: translate('Clue'),\n type: 'clue',\n selected: route === 'clue',\n disabled: !hasClue,\n onClick: clickClueHandler\n }\n ];\n services?.Coach &&\n buttons.push({\n title: translate('Coach'),\n type: 'coach',\n disabled: availableCoaches === 0,\n onClick: () => dispatch(startChat())\n });\n const headerProps = createHeaderStateToProps_(state);\n\n if (!includes(route, ROUTES)) {\n return {};\n }\n\n const ctaButtonValidate = {\n submitValue: translate('Validate'),\n onClick: clickCTAHandler,\n light: false,\n small: false,\n name: 'validateAnswerCTA',\n secondary: false,\n disabled: isQuestionCtaDisabled(state)\n };\n\n const ctaButtonBackToQuestion = {\n submitValue: translate(route === 'context' ? 'Go to question' : 'Back to question'),\n onClick: clickBackToAnswerHandler,\n light: false,\n small: false,\n name: 'backToQuestionCTA',\n secondary: true,\n disabled: false\n };\n\n return {\n typeClue: route,\n text: clue,\n onClickSeeClue: clickSeeClueHandler,\n question: get('question.header')(slide),\n step: getProgressionSteps(state),\n slideContext,\n backgroundUrl: get('backgroundUrl')(currentContent),\n verticalMargin: 260,\n starsDiff,\n resources,\n cta: route === 'answer' ? ctaButtonValidate : ctaButtonBackToQuestion,\n help,\n answerType: {\n model: answer,\n media: mediaQuestion\n },\n showNewMedia: (isNil(route) || route === 'answer') && notifyNewMedia,\n showReviewLesson: (isNil(route) || route === 'answer') && notifyReviewLesson,\n buttons,\n header: headerProps\n };\n };\n};\n\nexport default playerProps;\n"],"file":"player.js"}
|
|
@@ -12,9 +12,11 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
12
12
|
|
|
13
13
|
import test from 'ava';
|
|
14
14
|
import { mockTranslate } from '@coorpacademy/translate';
|
|
15
|
+
import { Analytics as AnalyticsService, Answers as AnswersService, Clues as CluesService, Coach as CoachService, Comments as CommentsService, Content as ContentService, ExitNodes as ExitNodesService, LeaderBoard as LeaderBoardService, Location as LocationService, Progressions as ProgressionsService, Recommendations as RecommendationsService } from '@coorpacademy/player-services';
|
|
15
16
|
import { UI_SELECT_ROUTE } from '@coorpacademy/player-store';
|
|
16
17
|
import createPlayer from '../player';
|
|
17
18
|
import createHeader from '../header';
|
|
19
|
+
import * as fixtures from '../../../sandbox/fixtures';
|
|
18
20
|
import learnerProgressionStateFixture from './fixtures/progression-learner';
|
|
19
21
|
import plopSlide from './fixtures/slides/plop';
|
|
20
22
|
import basicSlide from './fixtures/slides/basic';
|
|
@@ -23,8 +25,23 @@ import templateSlide from './fixtures/slides/template';
|
|
|
23
25
|
import qcmSlide from './fixtures/slides/qcm';
|
|
24
26
|
import qcmDragSlide from './fixtures/slides/qcm-drag';
|
|
25
27
|
import qcmGraphicSlide from './fixtures/slides/qcm-graphic';
|
|
28
|
+
const services = {
|
|
29
|
+
Analytics: AnalyticsService,
|
|
30
|
+
Answers: AnswersService(fixtures),
|
|
31
|
+
Clues: CluesService(fixtures),
|
|
32
|
+
Coach: CoachService,
|
|
33
|
+
Comments: CommentsService,
|
|
34
|
+
Content: ContentService(fixtures),
|
|
35
|
+
ExitNodes: ExitNodesService(fixtures),
|
|
36
|
+
LeaderBoard: LeaderBoardService,
|
|
37
|
+
Location: LocationService,
|
|
38
|
+
Logger: console,
|
|
39
|
+
Progressions: ProgressionsService(fixtures),
|
|
40
|
+
Recommendations: RecommendationsService(fixtures)
|
|
41
|
+
};
|
|
26
42
|
export const options = {
|
|
27
|
-
translate: mockTranslate
|
|
43
|
+
translate: mockTranslate,
|
|
44
|
+
services
|
|
28
45
|
};
|
|
29
46
|
export const store = {
|
|
30
47
|
dispatch: _identity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/map-state-to-props/test/player.js"],"names":["test","mockTranslate","UI_SELECT_ROUTE","createPlayer","createHeader","learnerProgressionStateFixture","plopSlide","basicSlide","contextSlide","templateSlide","qcmSlide","qcmDragSlide","qcmGraphicSlide","options","translate","store","dispatch","createPlayerProps","createHeaderProps","availableSlides","slide","_id","createProgression","contentRef","engine","ref","version","content","type","state","nextContent","lives","livesDisabled","step","current","viewedResources","data","contents","chapter","entities","nonAdaptiveContent","isConditional","adaptiveContent","progressions","basic","plop","qcm","qcmDrag","qcmGraphic","template","context","adaptiveBasic","adaptiveQcm","adaptiveQcmDrag","adaptiveQcmGraphic","adaptiveContext","adaptiveTemplate","isDisabledFor","answer","progressionId","chapterId","chapter_id","ui","route","answers","value","cta","disabled","t","coaches","availableCoaches","props","headerProps","deepEqual","answerType","media","mimeType","url","is","typeClue","question","model","true","onChange","slideContext","undefined","submitValue","buttons","length","title","header","onClick","false","throws","message","plan","action","payload","meta","description","selected","foo","onClickSeeClue","progression","resources","showNewMedia","forEach","lessons","showReviewLesson","total","falsy","createLearnerProgression","check","levelId","level","chapterIds"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {map, get, isEmpty, set, pipe, fromPairs, isFunction, identity, omit} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {UI_SELECT_ROUTE} from '@coorpacademy/player-store';\nimport createPlayer from '../player';\nimport createHeader from '../header';\nimport learnerProgressionStateFixture from './fixtures/progression-learner';\nimport plopSlide from './fixtures/slides/plop';\nimport basicSlide from './fixtures/slides/basic';\nimport contextSlide from './fixtures/slides/with-context';\nimport templateSlide from './fixtures/slides/template';\nimport qcmSlide from './fixtures/slides/qcm';\nimport qcmDragSlide from './fixtures/slides/qcm-drag';\nimport qcmGraphicSlide from './fixtures/slides/qcm-graphic';\n\nexport const options = {translate: mockTranslate};\nexport const store = {dispatch: identity};\nconst createPlayerProps = createPlayer(options, store);\nconst createHeaderProps = createHeader(options, store);\n\nconst availableSlides = pipe(\n map(slide => [slide._id, slide]),\n fromPairs\n)([basicSlide, plopSlide, qcmSlide, qcmDragSlide, qcmGraphicSlide, contextSlide]);\n\nconst createProgression = (slide, contentRef) => ({\n engine: {\n ref: 'microlearning',\n version: '1'\n },\n content: {\n ref: contentRef,\n type: 'chapter'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 1,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nexport const data = {\n contents: {\n chapter: {\n entities: {\n nonAdaptiveContent: {\n _id: 'nonAdaptiveContent',\n isConditional: false\n },\n adaptiveContent: {\n _id: 'adaptiveContent',\n isConditional: true\n }\n }\n },\n slide: {\n entities: availableSlides\n }\n },\n progressions: {\n entities: {\n basic: createProgression(basicSlide, 'nonAdaptiveContent'),\n plop: createProgression(plopSlide, 'nonAdaptiveContent'),\n qcm: createProgression(qcmSlide, 'nonAdaptiveContent'),\n qcmDrag: createProgression(qcmDragSlide, 'nonAdaptiveContent'),\n qcmGraphic: createProgression(qcmGraphicSlide, 'nonAdaptiveContent'),\n template: createProgression(templateSlide, 'nonAdaptiveContent'),\n context: createProgression(contextSlide, 'nonAdaptiveContent'),\n adaptiveBasic: createProgression(basicSlide, 'adaptiveContent'),\n adaptiveQcm: createProgression(qcmSlide, 'adaptiveContent'),\n adaptiveQcmDrag: createProgression(qcmDragSlide, 'adaptiveContent'),\n adaptiveQcmGraphic: createProgression(qcmGraphicSlide, 'adaptiveContent'),\n adaptiveContext: createProgression(contextSlide, 'adaptiveContent'),\n adaptiveTemplate: createProgression(templateSlide, 'adaptiveContent')\n }\n }\n};\n\nconst isDisabledFor = (slide, isConditional, answer) => {\n const progressionId = 'progression';\n const chapterId = 'chapter';\n return createPlayerProps({\n data: {\n contents: {\n slide: {\n entities: {\n [slide._id]: {...slide, chapter_id: chapterId}\n }\n },\n chapter: {\n entities: {\n [chapterId]: {\n _id: chapterId,\n isConditional\n }\n }\n }\n },\n progressions: {\n entities: {\n [progressionId]: createProgression(slide, chapterId)\n }\n }\n },\n ui: {\n route: {[progressionId]: 'answer'},\n current: {progressionId},\n answers: {[progressionId]: {value: answer}}\n }\n }).cta.disabled;\n};\n\ntest('should create player props for basic question and show coaches', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n coaches: {availableCoaches: 1}\n }\n };\n\n const props = createPlayerProps(state);\n const headerProps = createHeaderProps(state);\n\n t.deepEqual(props.answerType.media, {\n _id: '593eb72a187bd18c01283592',\n mimeType: 'image/jpeg',\n type: 'img',\n url: '//static.coorpacademy.com/content/ijoinchanel/en/slides/1B2_Q6/1B2-Q6-canap-v1.jpg'\n });\n t.is(props.typeClue, 'answer');\n t.is(props.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.is(props.answerType.model.type, 'freeText');\n t.true(isFunction(props.answerType.model.onChange));\n t.is(props.slideContext, undefined);\n t.is(props.cta.submitValue, '__Validate');\n t.true(props.cta.disabled);\n\n t.is(props.buttons.length, 4);\n t.is(props.buttons[3].title, '__Coach');\n t.is(props.buttons[3].type, 'coach');\n t.deepEqual(omit('content.onClick', props.header), omit('content.onClick', headerProps));\n t.true(isFunction(props.header.content.onClick));\n});\ntest('should enable the validate button when there is an answer', t => {\n t.true(isDisabledFor(basicSlide, false, []));\n t.false(isDisabledFor(basicSlide, false, ['foo']));\n});\n\ntest('should enable the validate button when there are two answers in an non-adaptive content for all questions', t => {\n const answers = ['foo', 'bar'];\n\n t.false(isDisabledFor(basicSlide, false, answers));\n t.false(isDisabledFor(qcmSlide, false, answers));\n t.false(isDisabledFor(qcmGraphicSlide, false, answers));\n t.false(isDisabledFor(qcmDragSlide, false, answers));\n t.false(isDisabledFor(contextSlide, false, answers));\n t.false(isDisabledFor(templateSlide, false, answers));\n});\n\ntest('should disable the validate button when there are several answers in an adaptive content for qcm questions', t => {\n t.false(isDisabledFor(basicSlide, true, ['foo', 'bar']));\n t.true(isDisabledFor(qcmSlide, true, ['foo', 'bar']));\n t.true(isDisabledFor(qcmGraphicSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(qcmDragSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(contextSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(templateSlide, true, ['foo', 'bar']));\n\n t.false(isDisabledFor(basicSlide, true, ['foo', 'bar', 'baz']));\n t.true(isDisabledFor(qcmSlide, true, ['foo', 'bar', 'baz']));\n t.true(isDisabledFor(qcmGraphicSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(qcmDragSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(contextSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(templateSlide, true, ['foo', 'bar', 'baz']));\n});\n\ntest('should disable the validate button when there the text answer has been deleted', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {basic: {value: ['']}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should return defaut props when slide.question.type is not handles', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'plop'},\n answers: {basic: {value: ['']}}\n }\n };\n\n t.throws(() => createPlayerProps(state), {message: 'plop is not an handled question.type'});\n});\n\ntest('should disable the validate button when no answer is provided', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when a previous selected answer has been unselected', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {basic: {value: []}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when some answer fields are empty', t => {\n const state = {\n data,\n ui: {\n route: {template: 'answer'},\n current: {progressionId: 'template'},\n answers: {template: {value: ['', 'Test']}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when no answer has been selected by user on template question', t => {\n const state = {\n data,\n ui: {\n route: {template: 'answer'},\n current: {progressionId: 'template'}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should display context tab button if slide context is available', t => {\n t.plan(10);\n const state = {\n data,\n ui: {\n route: {context: 'answer'},\n current: {progressionId: 'context'}\n }\n };\n\n const dispatch = action => {\n t.deepEqual(action, {\n type: UI_SELECT_ROUTE,\n payload: 'context',\n meta: {\n progressionId: 'context'\n }\n });\n };\n\n const props = createPlayer(options, {dispatch: action => action(dispatch, () => state)})(state);\n\n t.is(typeof props.slideContext, 'object');\n t.is(props.slideContext.title, 'Some context title');\n t.is(typeof props.slideContext.description, 'string');\n t.is(props.slideContext.description, contextSlide.context.description);\n t.is(props.buttons.length, 5);\n t.is(props.buttons[0].title, '__Context');\n t.is(props.buttons[0].type, 'context');\n t.false(props.buttons[0].selected);\n t.is(typeof props.buttons[0].onClick, 'function');\n\n props.buttons[0].onClick();\n});\n\ntest('should display \"Back to question\" for the cta in the tabs', t => {\n const state = {\n data,\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'media'\n }\n }\n };\n\n const props = createPlayerProps(state);\n\n t.is(props.cta.submitValue, '__Back to question');\n\n state.ui.route.foo = 'clue';\n\n t.is(typeof props.onClickSeeClue, 'function');\n props.onClickSeeClue();\n\n t.is(props.cta.submitValue, '__Back to question');\n});\n\ntest('should display \"Go to question\" for the context tab cta', t => {\n const state = {\n data,\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'context'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.is(props.cta.submitValue, '__Go to question');\n});\n\ntest('should display new media notification when user has not seen any media for the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n resources: ['1234']\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.true(props.showNewMedia);\n});\n\ntest('should display new media notification for the answer/undefined route when user has not seen any media', t => {\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {}\n }\n };\n\n [undefined].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.true(isEmpty(props));\n });\n\n ['media', 'clue', 'context', 'answer'].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.false(isEmpty(props));\n });\n});\n\ntest('should not display new media notification for the other routes when user has not seen any media', t => {\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {}\n }\n };\n\n ['media', 'clue'].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.false(props.showNewMedia);\n });\n});\n\ntest('should not display new media notification when user has seen at least one media of the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: [basicSlide.lessons[0].ref]\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.false(props.showNewMedia);\n});\n\ntest('should display review lesson notification when user has seen at least one media of the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: [basicSlide.lessons[0].ref]\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.true(props.showReviewLesson);\n});\n\ntest('should not display review lesson notification when user has not seen any media for the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: []\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.false(props.showReviewLesson);\n});\n\ntest('should feed step prop in non-adaptive mode', t => {\n const state = set(\n 'data.contents.level.entities.1.info.nbSlides',\n 12,\n learnerProgressionStateFixture\n );\n\n const props = createPlayerProps(state);\n\n t.deepEqual(props.step, {current: 0, total: 12});\n});\n\ntest('should not feed step prop in adaptive mode', t => {\n const state = pipe(\n set('data.contents.level.entities.1.info.nbSlides', 12),\n set('data.contents.chapter.entities.chapter2.isConditional', true)\n )(learnerProgressionStateFixture);\n\n const props = createPlayerProps(state);\n\n t.falsy(props.step);\n});\n\ntest('should not send an id prop in resources', t => {\n const props = createPlayerProps(learnerProgressionStateFixture);\n\n t.is(get('resources.0.id', props), undefined);\n});\n\nconst createLearnerProgression = (slide, contentRef) => ({\n engine: {\n ref: 'learner',\n version: '1'\n },\n content: {\n ref: contentRef,\n type: 'level'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 1,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nconst check = (slide, answer) => {\n const progressionId = 'progression';\n const levelId = 'level';\n const chapterId = 'chapter';\n return createPlayerProps({\n data: {\n contents: {\n slide: {\n entities: {\n [slide._id]: {...slide, chapter_id: chapterId}\n }\n },\n level: {\n entities: {\n [levelId]: {\n ref: levelId,\n chapterIds: [chapterId],\n isConditional: true\n }\n }\n },\n chapter: {\n entities: {\n [chapterId]: {\n _id: chapterId,\n isConditional: false\n }\n }\n }\n },\n progressions: {\n entities: {\n [progressionId]: createLearnerProgression(slide, levelId)\n }\n }\n },\n ui: {\n route: {[progressionId]: 'answer'},\n current: {progressionId},\n answers: {[progressionId]: {value: answer}}\n }\n }).cta.disabled;\n};\n\ntest('should allow multi answers on adaptive level if the current chapter is not adaptive', t => {\n t.true(check(basicSlide, []));\n t.true(check(qcmSlide, []));\n t.true(check(qcmGraphicSlide, []));\n t.true(check(qcmDragSlide, []));\n t.true(check(contextSlide, []));\n t.true(check(templateSlide, []));\n\n t.false(check(basicSlide, ['foo']));\n t.false(check(qcmSlide, ['foo']));\n t.false(check(qcmGraphicSlide, ['foo']));\n t.false(check(qcmDragSlide, ['foo']));\n t.false(check(contextSlide, ['foo']));\n t.false(check(templateSlide, ['foo']));\n\n t.false(check(basicSlide, ['foo', 'bar']));\n t.false(check(qcmSlide, ['foo', 'bar']));\n t.false(check(qcmGraphicSlide, ['foo', 'bar']));\n t.false(check(qcmDragSlide, ['foo', 'bar']));\n t.false(check(contextSlide, ['foo', 'bar']));\n t.false(check(templateSlide, ['foo', 'bar']));\n});\n"],"file":"player.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/map-state-to-props/test/player.js"],"names":["test","mockTranslate","Analytics","AnalyticsService","Answers","AnswersService","Clues","CluesService","Coach","CoachService","Comments","CommentsService","Content","ContentService","ExitNodes","ExitNodesService","LeaderBoard","LeaderBoardService","Location","LocationService","Progressions","ProgressionsService","Recommendations","RecommendationsService","UI_SELECT_ROUTE","createPlayer","createHeader","fixtures","learnerProgressionStateFixture","plopSlide","basicSlide","contextSlide","templateSlide","qcmSlide","qcmDragSlide","qcmGraphicSlide","services","Logger","console","options","translate","store","dispatch","createPlayerProps","createHeaderProps","availableSlides","slide","_id","createProgression","contentRef","engine","ref","version","content","type","state","nextContent","lives","livesDisabled","step","current","viewedResources","data","contents","chapter","entities","nonAdaptiveContent","isConditional","adaptiveContent","progressions","basic","plop","qcm","qcmDrag","qcmGraphic","template","context","adaptiveBasic","adaptiveQcm","adaptiveQcmDrag","adaptiveQcmGraphic","adaptiveContext","adaptiveTemplate","isDisabledFor","answer","progressionId","chapterId","chapter_id","ui","route","answers","value","cta","disabled","t","coaches","availableCoaches","props","headerProps","deepEqual","answerType","media","mimeType","url","is","typeClue","question","model","true","onChange","slideContext","undefined","submitValue","buttons","length","title","header","onClick","false","throws","message","plan","action","payload","meta","description","selected","foo","onClickSeeClue","progression","resources","showNewMedia","forEach","lessons","showReviewLesson","total","falsy","createLearnerProgression","check","levelId","level","chapterIds"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,IAAP,MAAiB,KAAjB;AAGA,SAAQC,aAAR,QAA4B,yBAA5B;AACA,SACEC,SAAS,IAAIC,gBADf,EAEEC,OAAO,IAAIC,cAFb,EAGEC,KAAK,IAAIC,YAHX,EAIEC,KAAK,IAAIC,YAJX,EAKEC,QAAQ,IAAIC,eALd,EAMEC,OAAO,IAAIC,cANb,EAOEC,SAAS,IAAIC,gBAPf,EAQEC,WAAW,IAAIC,kBARjB,EASEC,QAAQ,IAAIC,eATd,EAUEC,YAAY,IAAIC,mBAVlB,EAWEC,eAAe,IAAIC,sBAXrB,QAYO,+BAZP;AAaA,SAAQC,eAAR,QAA8B,4BAA9B;AACA,OAAOC,YAAP,MAAyB,WAAzB;AACA,OAAOC,YAAP,MAAyB,WAAzB;AACA,OAAO,KAAKC,QAAZ,MAA0B,2BAA1B;AACA,OAAOC,8BAAP,MAA2C,gCAA3C;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,YAAP,MAAyB,gCAAzB;AACA,OAAOC,aAAP,MAA0B,4BAA1B;AACA,OAAOC,QAAP,MAAqB,uBAArB;AACA,OAAOC,YAAP,MAAyB,4BAAzB;AACA,OAAOC,eAAP,MAA4B,+BAA5B;AAEA,MAAMC,QAAQ,GAAG;AACflC,EAAAA,SAAS,EAAEC,gBADI;AAEfC,EAAAA,OAAO,EAAEC,cAAc,CAACsB,QAAD,CAFR;AAGfrB,EAAAA,KAAK,EAAEC,YAAY,CAACoB,QAAD,CAHJ;AAIfnB,EAAAA,KAAK,EAAEC,YAJQ;AAKfC,EAAAA,QAAQ,EAAEC,eALK;AAMfC,EAAAA,OAAO,EAAEC,cAAc,CAACc,QAAD,CANR;AAOfb,EAAAA,SAAS,EAAEC,gBAAgB,CAACY,QAAD,CAPZ;AAQfX,EAAAA,WAAW,EAAEC,kBARE;AASfC,EAAAA,QAAQ,EAAEC,eATK;AAUfkB,EAAAA,MAAM,EAAEC,OAVO;AAWflB,EAAAA,YAAY,EAAEC,mBAAmB,CAACM,QAAD,CAXlB;AAYfL,EAAAA,eAAe,EAAEC,sBAAsB,CAACI,QAAD;AAZxB,CAAjB;AAeA,OAAO,MAAMY,OAAO,GAAG;AAACC,EAAAA,SAAS,EAAEvC,aAAZ;AAA2BmC,EAAAA;AAA3B,CAAhB;AACP,OAAO,MAAMK,KAAK,GAAG;AAACC,EAAAA,QAAQ;AAAT,CAAd;AACP,MAAMC,iBAAiB,GAAGlB,YAAY,CAACc,OAAD,EAAUE,KAAV,CAAtC;AACA,MAAMG,iBAAiB,GAAGlB,YAAY,CAACa,OAAD,EAAUE,KAAV,CAAtC;;AAEA,MAAMI,eAAe,GAAG,MACtB,KAAIC,KAAK,IAAI,CAACA,KAAK,CAACC,GAAP,EAAYD,KAAZ,CAAb,CADsB,cAGtB,CAAChB,UAAD,EAAaD,SAAb,EAAwBI,QAAxB,EAAkCC,YAAlC,EAAgDC,eAAhD,EAAiEJ,YAAjE,CAHsB,CAAxB;;AAKA,MAAMiB,iBAAiB,GAAG,CAACF,KAAD,EAAQG,UAAR,MAAwB;AAChDC,EAAAA,MAAM,EAAE;AACNC,IAAAA,GAAG,EAAE,eADC;AAENC,IAAAA,OAAO,EAAE;AAFH,GADwC;AAKhDC,EAAAA,OAAO,EAAE;AACPF,IAAAA,GAAG,EAAEF,UADE;AAEPK,IAAAA,IAAI,EAAE;AAFC,GALuC;AAShDC,EAAAA,KAAK,EAAE;AACLC,IAAAA,WAAW,EAAE;AACXL,MAAAA,GAAG,EAAEL,KAAK,CAACC,GADA;AAEXO,MAAAA,IAAI,EAAE;AAFK,KADR;AAKLG,IAAAA,KAAK,EAAE,CALF;AAMLC,IAAAA,aAAa,EAAE,KANV;AAOLC,IAAAA,IAAI,EAAE;AACJC,MAAAA,OAAO,EAAE;AADL,KAPD;AAULC,IAAAA,eAAe,EAAE;AAVZ;AATyC,CAAxB,CAA1B;;AAuBA,OAAO,MAAMC,IAAI,GAAG;AAClBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,OAAO,EAAE;AACPC,MAAAA,QAAQ,EAAE;AACRC,QAAAA,kBAAkB,EAAE;AAClBnB,UAAAA,GAAG,EAAE,oBADa;AAElBoB,UAAAA,aAAa,EAAE;AAFG,SADZ;AAKRC,QAAAA,eAAe,EAAE;AACfrB,UAAAA,GAAG,EAAE,iBADU;AAEfoB,UAAAA,aAAa,EAAE;AAFA;AALT;AADH,KADD;AAaRrB,IAAAA,KAAK,EAAE;AACLmB,MAAAA,QAAQ,EAAEpB;AADL;AAbC,GADQ;AAkBlBwB,EAAAA,YAAY,EAAE;AACZJ,IAAAA,QAAQ,EAAE;AACRK,MAAAA,KAAK,EAAEtB,iBAAiB,CAAClB,UAAD,EAAa,oBAAb,CADhB;AAERyC,MAAAA,IAAI,EAAEvB,iBAAiB,CAACnB,SAAD,EAAY,oBAAZ,CAFf;AAGR2C,MAAAA,GAAG,EAAExB,iBAAiB,CAACf,QAAD,EAAW,oBAAX,CAHd;AAIRwC,MAAAA,OAAO,EAAEzB,iBAAiB,CAACd,YAAD,EAAe,oBAAf,CAJlB;AAKRwC,MAAAA,UAAU,EAAE1B,iBAAiB,CAACb,eAAD,EAAkB,oBAAlB,CALrB;AAMRwC,MAAAA,QAAQ,EAAE3B,iBAAiB,CAAChB,aAAD,EAAgB,oBAAhB,CANnB;AAOR4C,MAAAA,OAAO,EAAE5B,iBAAiB,CAACjB,YAAD,EAAe,oBAAf,CAPlB;AAQR8C,MAAAA,aAAa,EAAE7B,iBAAiB,CAAClB,UAAD,EAAa,iBAAb,CARxB;AASRgD,MAAAA,WAAW,EAAE9B,iBAAiB,CAACf,QAAD,EAAW,iBAAX,CATtB;AAUR8C,MAAAA,eAAe,EAAE/B,iBAAiB,CAACd,YAAD,EAAe,iBAAf,CAV1B;AAWR8C,MAAAA,kBAAkB,EAAEhC,iBAAiB,CAACb,eAAD,EAAkB,iBAAlB,CAX7B;AAYR8C,MAAAA,eAAe,EAAEjC,iBAAiB,CAACjB,YAAD,EAAe,iBAAf,CAZ1B;AAaRmD,MAAAA,gBAAgB,EAAElC,iBAAiB,CAAChB,aAAD,EAAgB,iBAAhB;AAb3B;AADE;AAlBI,CAAb;;AAqCP,MAAMmD,aAAa,GAAG,CAACrC,KAAD,EAAQqB,aAAR,EAAuBiB,MAAvB,KAAkC;AACtD,QAAMC,aAAa,GAAG,aAAtB;AACA,QAAMC,SAAS,GAAG,SAAlB;AACA,SAAO3C,iBAAiB,CAAC;AACvBmB,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE;AACRjB,QAAAA,KAAK,EAAE;AACLmB,UAAAA,QAAQ,EAAE;AACR,aAACnB,KAAK,CAACC,GAAP,yBAAiBD,KAAjB;AAAwByC,cAAAA,UAAU,EAAED;AAApC;AADQ;AADL,SADC;AAMRtB,QAAAA,OAAO,EAAE;AACPC,UAAAA,QAAQ,EAAE;AACR,aAACqB,SAAD,GAAa;AACXvC,cAAAA,GAAG,EAAEuC,SADM;AAEXnB,cAAAA;AAFW;AADL;AADH;AAND,OADN;AAgBJE,MAAAA,YAAY,EAAE;AACZJ,QAAAA,QAAQ,EAAE;AACR,WAACoB,aAAD,GAAiBrC,iBAAiB,CAACF,KAAD,EAAQwC,SAAR;AAD1B;AADE;AAhBV,KADiB;AAuBvBE,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAAC,SAACJ,aAAD,GAAiB;AAAlB,OADL;AAEFzB,MAAAA,OAAO,EAAE;AAACyB,QAAAA;AAAD,OAFP;AAGFK,MAAAA,OAAO,EAAE;AAAC,SAACL,aAAD,GAAiB;AAACM,UAAAA,KAAK,EAAEP;AAAR;AAAlB;AAHP;AAvBmB,GAAD,CAAjB,CA4BJQ,GA5BI,CA4BAC,QA5BP;AA6BD,CAhCD;;AAkCA7F,IAAI,CAAC,gEAAD,EAAmE8F,CAAC,IAAI;AAC1E,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAACnB,QAAAA,KAAK,EAAE;AAAR,OADL;AAEFV,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OAFP;AAGFU,MAAAA,OAAO,EAAE;AAACC,QAAAA,gBAAgB,EAAE;AAAnB;AAHP;AAFQ,GAAd;AASA,QAAMC,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AACA,QAAM2C,WAAW,GAAGtD,iBAAiB,CAACW,KAAD,CAArC;AAEAuC,EAAAA,CAAC,CAACK,SAAF,CAAYF,KAAK,CAACG,UAAN,CAAiBC,KAA7B,EAAoC;AAClCtD,IAAAA,GAAG,EAAE,0BAD6B;AAElCuD,IAAAA,QAAQ,EAAE,YAFwB;AAGlChD,IAAAA,IAAI,EAAE,KAH4B;AAIlCiD,IAAAA,GAAG,EAAE;AAJ6B,GAApC;AAMAT,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACQ,QAAX,EAAqB,QAArB;AACAX,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACS,QAAX,EAAqB,qCAArB;AACAZ,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACG,UAAN,CAAiBO,KAAjB,CAAuBrD,IAA5B,EAAkC,UAAlC;AACAwC,EAAAA,CAAC,CAACc,IAAF,CAAO,YAAWX,KAAK,CAACG,UAAN,CAAiBO,KAAjB,CAAuBE,QAAlC,CAAP;AACAf,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACa,YAAX,EAAyBC,SAAzB;AACAjB,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACL,GAAN,CAAUoB,WAAf,EAA4B,YAA5B;AACAlB,EAAAA,CAAC,CAACc,IAAF,CAAOX,KAAK,CAACL,GAAN,CAAUC,QAAjB;AAEAC,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACgB,OAAN,CAAcC,MAAnB,EAA2B,CAA3B;AACApB,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACgB,OAAN,CAAc,CAAd,EAAiBE,KAAtB,EAA6B,SAA7B;AACArB,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACgB,OAAN,CAAc,CAAd,EAAiB3D,IAAtB,EAA4B,OAA5B;AACAwC,EAAAA,CAAC,CAACK,SAAF,CAAY,MAAK,iBAAL,EAAwBF,KAAK,CAACmB,MAA9B,CAAZ,EAAmD,MAAK,iBAAL,EAAwBlB,WAAxB,CAAnD;AACAJ,EAAAA,CAAC,CAACc,IAAF,CAAO,YAAWX,KAAK,CAACmB,MAAN,CAAa/D,OAAb,CAAqBgE,OAAhC,CAAP;AACD,CAhCG,CAAJ;AAiCArH,IAAI,CAAC,2DAAD,EAA8D8F,CAAC,IAAI;AACrEA,EAAAA,CAAC,CAACc,IAAF,CAAOzB,aAAa,CAACrD,UAAD,EAAa,KAAb,EAAoB,EAApB,CAApB;AACAgE,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACrD,UAAD,EAAa,KAAb,EAAoB,CAAC,KAAD,CAApB,CAArB;AACD,CAHG,CAAJ;AAKA9B,IAAI,CAAC,2GAAD,EAA8G8F,CAAC,IAAI;AACrH,QAAMJ,OAAO,GAAG,CAAC,KAAD,EAAQ,KAAR,CAAhB;AAEAI,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACrD,UAAD,EAAa,KAAb,EAAoB4D,OAApB,CAArB;AACAI,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAAClD,QAAD,EAAW,KAAX,EAAkByD,OAAlB,CAArB;AACAI,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAAChD,eAAD,EAAkB,KAAlB,EAAyBuD,OAAzB,CAArB;AACAI,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACjD,YAAD,EAAe,KAAf,EAAsBwD,OAAtB,CAArB;AACAI,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACpD,YAAD,EAAe,KAAf,EAAsB2D,OAAtB,CAArB;AACAI,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACnD,aAAD,EAAgB,KAAhB,EAAuB0D,OAAvB,CAArB;AACD,CATG,CAAJ;AAWA1F,IAAI,CAAC,4GAAD,EAA+G8F,CAAC,IAAI;AACtHA,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACrD,UAAD,EAAa,IAAb,EAAmB,CAAC,KAAD,EAAQ,KAAR,CAAnB,CAArB;AACAgE,EAAAA,CAAC,CAACc,IAAF,CAAOzB,aAAa,CAAClD,QAAD,EAAW,IAAX,EAAiB,CAAC,KAAD,EAAQ,KAAR,CAAjB,CAApB;AACA6D,EAAAA,CAAC,CAACc,IAAF,CAAOzB,aAAa,CAAChD,eAAD,EAAkB,IAAlB,EAAwB,CAAC,KAAD,EAAQ,KAAR,CAAxB,CAApB;AACA2D,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACjD,YAAD,EAAe,IAAf,EAAqB,CAAC,KAAD,EAAQ,KAAR,CAArB,CAArB;AACA4D,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACpD,YAAD,EAAe,IAAf,EAAqB,CAAC,KAAD,EAAQ,KAAR,CAArB,CAArB;AACA+D,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACnD,aAAD,EAAgB,IAAhB,EAAsB,CAAC,KAAD,EAAQ,KAAR,CAAtB,CAArB;AAEA8D,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACrD,UAAD,EAAa,IAAb,EAAmB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,CAAnB,CAArB;AACAgE,EAAAA,CAAC,CAACc,IAAF,CAAOzB,aAAa,CAAClD,QAAD,EAAW,IAAX,EAAiB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,CAAjB,CAApB;AACA6D,EAAAA,CAAC,CAACc,IAAF,CAAOzB,aAAa,CAAChD,eAAD,EAAkB,IAAlB,EAAwB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,CAAxB,CAApB;AACA2D,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACjD,YAAD,EAAe,IAAf,EAAqB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,CAArB,CAArB;AACA4D,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACpD,YAAD,EAAe,IAAf,EAAqB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,CAArB,CAArB;AACA+D,EAAAA,CAAC,CAACwB,KAAF,CAAQnC,aAAa,CAACnD,aAAD,EAAgB,IAAhB,EAAsB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,CAAtB,CAArB;AACD,CAdG,CAAJ;AAgBAhC,IAAI,CAAC,gFAAD,EAAmF8F,CAAC,IAAI;AAC1F,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAACnB,QAAAA,KAAK,EAAE;AAAR,OADL;AAEFV,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OAFP;AAGFK,MAAAA,OAAO,EAAE;AAACpB,QAAAA,KAAK,EAAE;AAACqB,UAAAA,KAAK,EAAE,CAAC,EAAD;AAAR;AAAR;AAHP;AAFQ,GAAd;AASA,QAAMM,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AAEAuC,EAAAA,CAAC,CAACc,IAAF,CAAOX,KAAK,CAACL,GAAN,CAAUC,QAAjB;AACD,CAbG,CAAJ;AAeA7F,IAAI,CAAC,oEAAD,EAAuE8F,CAAC,IAAI;AAC9E,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAACnB,QAAAA,KAAK,EAAE;AAAR,OADL;AAEFV,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OAFP;AAGFK,MAAAA,OAAO,EAAE;AAACpB,QAAAA,KAAK,EAAE;AAACqB,UAAAA,KAAK,EAAE,CAAC,EAAD;AAAR;AAAR;AAHP;AAFQ,GAAd;AASAG,EAAAA,CAAC,CAACyB,MAAF,CAAS,MAAM5E,iBAAiB,CAACY,KAAD,CAAhC,EAAyC;AAACiE,IAAAA,OAAO,EAAE;AAAV,GAAzC;AACD,CAXG,CAAJ;AAaAxH,IAAI,CAAC,+DAAD,EAAkE8F,CAAC,IAAI;AACzE,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAACnB,QAAAA,KAAK,EAAE;AAAR,OADL;AAEFV,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OAFP;AAGFK,MAAAA,OAAO,EAAE;AAHP;AAFQ,GAAd;AASA,QAAMO,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AAEAuC,EAAAA,CAAC,CAACc,IAAF,CAAOX,KAAK,CAACL,GAAN,CAAUC,QAAjB;AACD,CAbG,CAAJ;AAeA7F,IAAI,CAAC,wFAAD,EAA2F8F,CAAC,IAAI;AAClG,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAACnB,QAAAA,KAAK,EAAE;AAAR,OADL;AAEFV,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OAFP;AAGFK,MAAAA,OAAO,EAAE;AAACpB,QAAAA,KAAK,EAAE;AAACqB,UAAAA,KAAK,EAAE;AAAR;AAAR;AAHP;AAFQ,GAAd;AASA,QAAMM,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AAEAuC,EAAAA,CAAC,CAACc,IAAF,CAAOX,KAAK,CAACL,GAAN,CAAUC,QAAjB;AACD,CAbG,CAAJ;AAeA7F,IAAI,CAAC,sEAAD,EAAyE8F,CAAC,IAAI;AAChF,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAACd,QAAAA,QAAQ,EAAE;AAAX,OADL;AAEFf,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OAFP;AAGFK,MAAAA,OAAO,EAAE;AAACf,QAAAA,QAAQ,EAAE;AAACgB,UAAAA,KAAK,EAAE,CAAC,EAAD,EAAK,MAAL;AAAR;AAAX;AAHP;AAFQ,GAAd;AASA,QAAMM,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AAEAuC,EAAAA,CAAC,CAACc,IAAF,CAAOX,KAAK,CAACL,GAAN,CAAUC,QAAjB;AACD,CAbG,CAAJ;AAeA7F,IAAI,CAAC,kGAAD,EAAqG8F,CAAC,IAAI;AAC5G,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAACd,QAAAA,QAAQ,EAAE;AAAX,OADL;AAEFf,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB;AAFP;AAFQ,GAAd;AAQA,QAAMY,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AAEAuC,EAAAA,CAAC,CAACc,IAAF,CAAOX,KAAK,CAACL,GAAN,CAAUC,QAAjB;AACD,CAZG,CAAJ;AAcA7F,IAAI,CAAC,iEAAD,EAAoE8F,CAAC,IAAI;AAC3EA,EAAAA,CAAC,CAAC2B,IAAF,CAAO,EAAP;AACA,QAAMlE,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAACb,QAAAA,OAAO,EAAE;AAAV,OADL;AAEFhB,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB;AAFP;AAFQ,GAAd;;AAQA,QAAM3C,QAAQ,GAAGgF,MAAM,IAAI;AACzB5B,IAAAA,CAAC,CAACK,SAAF,CAAYuB,MAAZ,EAAoB;AAClBpE,MAAAA,IAAI,EAAE9B,eADY;AAElBmG,MAAAA,OAAO,EAAE,SAFS;AAGlBC,MAAAA,IAAI,EAAE;AACJvC,QAAAA,aAAa,EAAE;AADX;AAHY,KAApB;AAOD,GARD;;AAUA,QAAMY,KAAK,GAAGxE,YAAY,CAACc,OAAD,EAAU;AAACG,IAAAA,QAAQ,EAAEgF,MAAM,IAAIA,MAAM,CAAChF,QAAD,EAAW,MAAMa,KAAjB;AAA3B,GAAV,CAAZ,CAA2EA,KAA3E,CAAd;AAEAuC,EAAAA,CAAC,CAACU,EAAF,CAAK,OAAOP,KAAK,CAACa,YAAlB,EAAgC,QAAhC;AACAhB,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACa,YAAN,CAAmBK,KAAxB,EAA+B,oBAA/B;AACArB,EAAAA,CAAC,CAACU,EAAF,CAAK,OAAOP,KAAK,CAACa,YAAN,CAAmBe,WAA/B,EAA4C,QAA5C;AACA/B,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACa,YAAN,CAAmBe,WAAxB,EAAqC9F,YAAY,CAAC6C,OAAb,CAAqBiD,WAA1D;AACA/B,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACgB,OAAN,CAAcC,MAAnB,EAA2B,CAA3B;AACApB,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACgB,OAAN,CAAc,CAAd,EAAiBE,KAAtB,EAA6B,WAA7B;AACArB,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACgB,OAAN,CAAc,CAAd,EAAiB3D,IAAtB,EAA4B,SAA5B;AACAwC,EAAAA,CAAC,CAACwB,KAAF,CAAQrB,KAAK,CAACgB,OAAN,CAAc,CAAd,EAAiBa,QAAzB;AACAhC,EAAAA,CAAC,CAACU,EAAF,CAAK,OAAOP,KAAK,CAACgB,OAAN,CAAc,CAAd,EAAiBI,OAA7B,EAAsC,UAAtC;AAEApB,EAAAA,KAAK,CAACgB,OAAN,CAAc,CAAd,EAAiBI,OAAjB;AACD,CAjCG,CAAJ;AAmCArH,IAAI,CAAC,2DAAD,EAA8D8F,CAAC,IAAI;AACrE,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACF5B,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OADP;AAEFI,MAAAA,KAAK,EAAE;AACLnB,QAAAA,KAAK,EAAE;AADF;AAFL;AAFQ,GAAd;AAUA,QAAM2B,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AAEAuC,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACL,GAAN,CAAUoB,WAAf,EAA4B,oBAA5B;AAEAzD,EAAAA,KAAK,CAACiC,EAAN,CAASC,KAAT,CAAesC,GAAf,GAAqB,MAArB;AAEAjC,EAAAA,CAAC,CAACU,EAAF,CAAK,OAAOP,KAAK,CAAC+B,cAAlB,EAAkC,UAAlC;AACA/B,EAAAA,KAAK,CAAC+B,cAAN;AAEAlC,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACL,GAAN,CAAUoB,WAAf,EAA4B,oBAA5B;AACD,CArBG,CAAJ;AAuBAhH,IAAI,CAAC,yDAAD,EAA4D8F,CAAC,IAAI;AACnE,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IADY;AAEZ0B,IAAAA,EAAE,EAAE;AACF5B,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OADP;AAEFI,MAAAA,KAAK,EAAE;AACLnB,QAAAA,KAAK,EAAE;AADF;AAFL;AAFQ,GAAd;AAUA,QAAM2B,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AACAuC,EAAAA,CAAC,CAACU,EAAF,CAAKP,KAAK,CAACL,GAAN,CAAUoB,WAAf,EAA4B,kBAA5B;AACD,CAbG,CAAJ;AAeAhH,IAAI,CAAC,8FAAD,EAAiG8F,CAAC,IAAI;AACxG,QAAMmC,WAAW,GAAGjF,iBAAiB,CAAClB,UAAD,CAArC;AACAmG,EAAAA,WAAW,CAAC1E,KAAZ,CAAkBM,eAAlB,GAAoC,CAClC;AACEqE,IAAAA,SAAS,EAAE,CAAC,MAAD;AADb,GADkC,CAApC;AAKA,QAAM3E,KAAK,GAAG;AACZO,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAED,IAAI,CAACC,QADX;AAEJM,MAAAA,YAAY,EAAE;AACZJ,QAAAA,QAAQ,EAAE;AACRK,UAAAA,KAAK,EAAE2D;AADC;AADE;AAFV,KADM;AASZzC,IAAAA,EAAE,EAAE;AACF5B,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OADP;AAEFI,MAAAA,KAAK,EAAE;AACLnB,QAAAA,KAAK,EAAE;AADF;AAFL;AATQ,GAAd;AAiBA,QAAM2B,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AACAuC,EAAAA,CAAC,CAACc,IAAF,CAAOX,KAAK,CAACkC,YAAb;AACD,CA1BG,CAAJ;AA4BAnI,IAAI,CAAC,uGAAD,EAA0G8F,CAAC,IAAI;AACjH,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAED,IAAI,CAACC,QADX;AAEJM,MAAAA,YAAY,EAAE;AACZJ,QAAAA,QAAQ,EAAE;AACRK,UAAAA,KAAK,EAAEtB,iBAAiB,CAAClB,UAAD;AADhB;AADE;AAFV,KADM;AASZ0D,IAAAA,EAAE,EAAE;AACF5B,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OADP;AAEFI,MAAAA,KAAK,EAAE;AAFL;AATQ,GAAd;AAeA,GAACsB,SAAD,EAAYqB,OAAZ,CAAoB3C,KAAK,IAAI;AAC3B,UAAMQ,KAAK,GAAGtD,iBAAiB,CAAC,KAAI,gBAAJ,EAAsB8C,KAAtB,EAA6BlC,KAA7B,CAAD,CAA/B;AACAuC,IAAAA,CAAC,CAACc,IAAF,CAAO,SAAQX,KAAR,CAAP;AACD,GAHD;AAKA,GAAC,OAAD,EAAU,MAAV,EAAkB,SAAlB,EAA6B,QAA7B,EAAuCmC,OAAvC,CAA+C3C,KAAK,IAAI;AACtD,UAAMQ,KAAK,GAAGtD,iBAAiB,CAAC,KAAI,gBAAJ,EAAsB8C,KAAtB,EAA6BlC,KAA7B,CAAD,CAA/B;AACAuC,IAAAA,CAAC,CAACwB,KAAF,CAAQ,SAAQrB,KAAR,CAAR;AACD,GAHD;AAID,CAzBG,CAAJ;AA2BAjG,IAAI,CAAC,iGAAD,EAAoG8F,CAAC,IAAI;AAC3G,QAAMvC,KAAK,GAAG;AACZO,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAED,IAAI,CAACC,QADX;AAEJM,MAAAA,YAAY,EAAE;AACZJ,QAAAA,QAAQ,EAAE;AACRK,UAAAA,KAAK,EAAEtB,iBAAiB,CAAClB,UAAD;AADhB;AADE;AAFV,KADM;AASZ0D,IAAAA,EAAE,EAAE;AACF5B,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OADP;AAEFI,MAAAA,KAAK,EAAE;AAFL;AATQ,GAAd;AAeA,GAAC,OAAD,EAAU,MAAV,EAAkB2C,OAAlB,CAA0B3C,KAAK,IAAI;AACjC,UAAMQ,KAAK,GAAGtD,iBAAiB,CAAC,KAAI,gBAAJ,EAAsB8C,KAAtB,EAA6BlC,KAA7B,CAAD,CAA/B;AACAuC,IAAAA,CAAC,CAACwB,KAAF,CAAQrB,KAAK,CAACkC,YAAd;AACD,GAHD;AAID,CApBG,CAAJ;AAsBAnI,IAAI,CAAC,sGAAD,EAAyG8F,CAAC,IAAI;AAChH,QAAMmC,WAAW,GAAGjF,iBAAiB,CAAClB,UAAD,CAArC;AACAmG,EAAAA,WAAW,CAAC1E,KAAZ,CAAkBM,eAAlB,GAAoC,CAClC;AACEP,IAAAA,IAAI,EAAE,SADR;AAEEH,IAAAA,GAAG,EAAErB,UAAU,CAACyD,UAFlB;AAGE2C,IAAAA,SAAS,EAAE,CAACpG,UAAU,CAACuG,OAAX,CAAmB,CAAnB,EAAsBlF,GAAvB;AAHb,GADkC,CAApC;AAOA,QAAMI,KAAK,GAAG;AACZO,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAED,IAAI,CAACC,QADX;AAEJM,MAAAA,YAAY,EAAE;AACZJ,QAAAA,QAAQ,EAAE;AACRK,UAAAA,KAAK,EAAE2D;AADC;AADE;AAFV,KADM;AASZzC,IAAAA,EAAE,EAAE;AACF5B,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OADP;AAEFI,MAAAA,KAAK,EAAE;AACLnB,QAAAA,KAAK,EAAE;AADF;AAFL;AATQ,GAAd;AAiBA,QAAM2B,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AACAuC,EAAAA,CAAC,CAACwB,KAAF,CAAQrB,KAAK,CAACkC,YAAd;AACD,CA5BG,CAAJ;AA8BAnI,IAAI,CAAC,sGAAD,EAAyG8F,CAAC,IAAI;AAChH,QAAMmC,WAAW,GAAGjF,iBAAiB,CAAClB,UAAD,CAArC;AACAmG,EAAAA,WAAW,CAAC1E,KAAZ,CAAkBM,eAAlB,GAAoC,CAClC;AACEP,IAAAA,IAAI,EAAE,SADR;AAEEH,IAAAA,GAAG,EAAErB,UAAU,CAACyD,UAFlB;AAGE2C,IAAAA,SAAS,EAAE,CAACpG,UAAU,CAACuG,OAAX,CAAmB,CAAnB,EAAsBlF,GAAvB;AAHb,GADkC,CAApC;AAOA,QAAMI,KAAK,GAAG;AACZO,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAED,IAAI,CAACC,QADX;AAEJM,MAAAA,YAAY,EAAE;AACZJ,QAAAA,QAAQ,EAAE;AACRK,UAAAA,KAAK,EAAE2D;AADC;AADE;AAFV,KADM;AASZzC,IAAAA,EAAE,EAAE;AACF5B,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OADP;AAEFI,MAAAA,KAAK,EAAE;AACLnB,QAAAA,KAAK,EAAE;AADF;AAFL;AATQ,GAAd;AAiBA,QAAM2B,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AACAuC,EAAAA,CAAC,CAACc,IAAF,CAAOX,KAAK,CAACqC,gBAAb;AACD,CA5BG,CAAJ;AA8BAtI,IAAI,CAAC,sGAAD,EAAyG8F,CAAC,IAAI;AAChH,QAAMmC,WAAW,GAAGjF,iBAAiB,CAAClB,UAAD,CAArC;AACAmG,EAAAA,WAAW,CAAC1E,KAAZ,CAAkBM,eAAlB,GAAoC,CAClC;AACEP,IAAAA,IAAI,EAAE,SADR;AAEEH,IAAAA,GAAG,EAAErB,UAAU,CAACyD,UAFlB;AAGE2C,IAAAA,SAAS,EAAE;AAHb,GADkC,CAApC;AAOA,QAAM3E,KAAK,GAAG;AACZO,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAED,IAAI,CAACC,QADX;AAEJM,MAAAA,YAAY,EAAE;AACZJ,QAAAA,QAAQ,EAAE;AACRK,UAAAA,KAAK,EAAE2D;AADC;AADE;AAFV,KADM;AASZzC,IAAAA,EAAE,EAAE;AACF5B,MAAAA,OAAO,EAAE;AAACyB,QAAAA,aAAa,EAAE;AAAhB,OADP;AAEFI,MAAAA,KAAK,EAAE;AACLnB,QAAAA,KAAK,EAAE;AADF;AAFL;AATQ,GAAd;AAiBA,QAAM2B,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AACAuC,EAAAA,CAAC,CAACwB,KAAF,CAAQrB,KAAK,CAACqC,gBAAd;AACD,CA5BG,CAAJ;AA8BAtI,IAAI,CAAC,4CAAD,EAA+C8F,CAAC,IAAI;AACtD,QAAMvC,KAAK,GAAG,KACZ,8CADY,EAEZ,EAFY,EAGZ3B,8BAHY,CAAd;;AAMA,QAAMqE,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AAEAuC,EAAAA,CAAC,CAACK,SAAF,CAAYF,KAAK,CAACtC,IAAlB,EAAwB;AAACC,IAAAA,OAAO,EAAE,CAAV;AAAa2E,IAAAA,KAAK,EAAE;AAApB,GAAxB;AACD,CAVG,CAAJ;AAYAvI,IAAI,CAAC,4CAAD,EAA+C8F,CAAC,IAAI;AACtD,QAAMvC,KAAK,GAAG,MACZ,KAAI,8CAAJ,EAAoD,EAApD,CADY,EAEZ,KAAI,uDAAJ,EAA6D,IAA7D,CAFY,EAGZ3B,8BAHY,CAAd;;AAKA,QAAMqE,KAAK,GAAGtD,iBAAiB,CAACY,KAAD,CAA/B;AAEAuC,EAAAA,CAAC,CAAC0C,KAAF,CAAQvC,KAAK,CAACtC,IAAd;AACD,CATG,CAAJ;AAWA3D,IAAI,CAAC,yCAAD,EAA4C8F,CAAC,IAAI;AACnD,QAAMG,KAAK,GAAGtD,iBAAiB,CAACf,8BAAD,CAA/B;AAEAkE,EAAAA,CAAC,CAACU,EAAF,CAAK,KAAI,gBAAJ,EAAsBP,KAAtB,CAAL,EAAmCc,SAAnC;AACD,CAJG,CAAJ;;AAMA,MAAM0B,wBAAwB,GAAG,CAAC3F,KAAD,EAAQG,UAAR,MAAwB;AACvDC,EAAAA,MAAM,EAAE;AACNC,IAAAA,GAAG,EAAE,SADC;AAENC,IAAAA,OAAO,EAAE;AAFH,GAD+C;AAKvDC,EAAAA,OAAO,EAAE;AACPF,IAAAA,GAAG,EAAEF,UADE;AAEPK,IAAAA,IAAI,EAAE;AAFC,GAL8C;AASvDC,EAAAA,KAAK,EAAE;AACLC,IAAAA,WAAW,EAAE;AACXL,MAAAA,GAAG,EAAEL,KAAK,CAACC,GADA;AAEXO,MAAAA,IAAI,EAAE;AAFK,KADR;AAKLG,IAAAA,KAAK,EAAE,CALF;AAMLC,IAAAA,aAAa,EAAE,KANV;AAOLC,IAAAA,IAAI,EAAE;AACJC,MAAAA,OAAO,EAAE;AADL,KAPD;AAULC,IAAAA,eAAe,EAAE;AAVZ;AATgD,CAAxB,CAAjC;;AAuBA,MAAM6E,KAAK,GAAG,CAAC5F,KAAD,EAAQsC,MAAR,KAAmB;AAC/B,QAAMC,aAAa,GAAG,aAAtB;AACA,QAAMsD,OAAO,GAAG,OAAhB;AACA,QAAMrD,SAAS,GAAG,SAAlB;AACA,SAAO3C,iBAAiB,CAAC;AACvBmB,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE;AACRjB,QAAAA,KAAK,EAAE;AACLmB,UAAAA,QAAQ,EAAE;AACR,aAACnB,KAAK,CAACC,GAAP,yBAAiBD,KAAjB;AAAwByC,cAAAA,UAAU,EAAED;AAApC;AADQ;AADL,SADC;AAMRsD,QAAAA,KAAK,EAAE;AACL3E,UAAAA,QAAQ,EAAE;AACR,aAAC0E,OAAD,GAAW;AACTxF,cAAAA,GAAG,EAAEwF,OADI;AAETE,cAAAA,UAAU,EAAE,CAACvD,SAAD,CAFH;AAGTnB,cAAAA,aAAa,EAAE;AAHN;AADH;AADL,SANC;AAeRH,QAAAA,OAAO,EAAE;AACPC,UAAAA,QAAQ,EAAE;AACR,aAACqB,SAAD,GAAa;AACXvC,cAAAA,GAAG,EAAEuC,SADM;AAEXnB,cAAAA,aAAa,EAAE;AAFJ;AADL;AADH;AAfD,OADN;AAyBJE,MAAAA,YAAY,EAAE;AACZJ,QAAAA,QAAQ,EAAE;AACR,WAACoB,aAAD,GAAiBoD,wBAAwB,CAAC3F,KAAD,EAAQ6F,OAAR;AADjC;AADE;AAzBV,KADiB;AAgCvBnD,IAAAA,EAAE,EAAE;AACFC,MAAAA,KAAK,EAAE;AAAC,SAACJ,aAAD,GAAiB;AAAlB,OADL;AAEFzB,MAAAA,OAAO,EAAE;AAACyB,QAAAA;AAAD,OAFP;AAGFK,MAAAA,OAAO,EAAE;AAAC,SAACL,aAAD,GAAiB;AAACM,UAAAA,KAAK,EAAEP;AAAR;AAAlB;AAHP;AAhCmB,GAAD,CAAjB,CAqCJQ,GArCI,CAqCAC,QArCP;AAsCD,CA1CD;;AA4CA7F,IAAI,CAAC,qFAAD,EAAwF8F,CAAC,IAAI;AAC/FA,EAAAA,CAAC,CAACc,IAAF,CAAO8B,KAAK,CAAC5G,UAAD,EAAa,EAAb,CAAZ;AACAgE,EAAAA,CAAC,CAACc,IAAF,CAAO8B,KAAK,CAACzG,QAAD,EAAW,EAAX,CAAZ;AACA6D,EAAAA,CAAC,CAACc,IAAF,CAAO8B,KAAK,CAACvG,eAAD,EAAkB,EAAlB,CAAZ;AACA2D,EAAAA,CAAC,CAACc,IAAF,CAAO8B,KAAK,CAACxG,YAAD,EAAe,EAAf,CAAZ;AACA4D,EAAAA,CAAC,CAACc,IAAF,CAAO8B,KAAK,CAAC3G,YAAD,EAAe,EAAf,CAAZ;AACA+D,EAAAA,CAAC,CAACc,IAAF,CAAO8B,KAAK,CAAC1G,aAAD,EAAgB,EAAhB,CAAZ;AAEA8D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAAC5G,UAAD,EAAa,CAAC,KAAD,CAAb,CAAb;AACAgE,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAACzG,QAAD,EAAW,CAAC,KAAD,CAAX,CAAb;AACA6D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAACvG,eAAD,EAAkB,CAAC,KAAD,CAAlB,CAAb;AACA2D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAACxG,YAAD,EAAe,CAAC,KAAD,CAAf,CAAb;AACA4D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAAC3G,YAAD,EAAe,CAAC,KAAD,CAAf,CAAb;AACA+D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAAC1G,aAAD,EAAgB,CAAC,KAAD,CAAhB,CAAb;AAEA8D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAAC5G,UAAD,EAAa,CAAC,KAAD,EAAQ,KAAR,CAAb,CAAb;AACAgE,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAACzG,QAAD,EAAW,CAAC,KAAD,EAAQ,KAAR,CAAX,CAAb;AACA6D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAACvG,eAAD,EAAkB,CAAC,KAAD,EAAQ,KAAR,CAAlB,CAAb;AACA2D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAACxG,YAAD,EAAe,CAAC,KAAD,EAAQ,KAAR,CAAf,CAAb;AACA4D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAAC3G,YAAD,EAAe,CAAC,KAAD,EAAQ,KAAR,CAAf,CAAb;AACA+D,EAAAA,CAAC,CAACwB,KAAF,CAAQoB,KAAK,CAAC1G,aAAD,EAAgB,CAAC,KAAD,EAAQ,KAAR,CAAhB,CAAb;AACD,CArBG,CAAJ","sourcesContent":["import test from 'ava';\nimport {map, get, isEmpty, set, pipe, fromPairs, isFunction, identity, omit} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {\n Analytics as AnalyticsService,\n Answers as AnswersService,\n Clues as CluesService,\n Coach as CoachService,\n Comments as CommentsService,\n Content as ContentService,\n ExitNodes as ExitNodesService,\n LeaderBoard as LeaderBoardService,\n Location as LocationService,\n Progressions as ProgressionsService,\n Recommendations as RecommendationsService\n} from '@coorpacademy/player-services';\nimport {UI_SELECT_ROUTE} from '@coorpacademy/player-store';\nimport createPlayer from '../player';\nimport createHeader from '../header';\nimport * as fixtures from '../../../sandbox/fixtures';\nimport learnerProgressionStateFixture from './fixtures/progression-learner';\nimport plopSlide from './fixtures/slides/plop';\nimport basicSlide from './fixtures/slides/basic';\nimport contextSlide from './fixtures/slides/with-context';\nimport templateSlide from './fixtures/slides/template';\nimport qcmSlide from './fixtures/slides/qcm';\nimport qcmDragSlide from './fixtures/slides/qcm-drag';\nimport qcmGraphicSlide from './fixtures/slides/qcm-graphic';\n\nconst services = {\n Analytics: AnalyticsService,\n Answers: AnswersService(fixtures),\n Clues: CluesService(fixtures),\n Coach: CoachService,\n Comments: CommentsService,\n Content: ContentService(fixtures),\n ExitNodes: ExitNodesService(fixtures),\n LeaderBoard: LeaderBoardService,\n Location: LocationService,\n Logger: console,\n Progressions: ProgressionsService(fixtures),\n Recommendations: RecommendationsService(fixtures)\n};\n\nexport const options = {translate: mockTranslate, services};\nexport const store = {dispatch: identity};\nconst createPlayerProps = createPlayer(options, store);\nconst createHeaderProps = createHeader(options, store);\n\nconst availableSlides = pipe(\n map(slide => [slide._id, slide]),\n fromPairs\n)([basicSlide, plopSlide, qcmSlide, qcmDragSlide, qcmGraphicSlide, contextSlide]);\n\nconst createProgression = (slide, contentRef) => ({\n engine: {\n ref: 'microlearning',\n version: '1'\n },\n content: {\n ref: contentRef,\n type: 'chapter'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 1,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nexport const data = {\n contents: {\n chapter: {\n entities: {\n nonAdaptiveContent: {\n _id: 'nonAdaptiveContent',\n isConditional: false\n },\n adaptiveContent: {\n _id: 'adaptiveContent',\n isConditional: true\n }\n }\n },\n slide: {\n entities: availableSlides\n }\n },\n progressions: {\n entities: {\n basic: createProgression(basicSlide, 'nonAdaptiveContent'),\n plop: createProgression(plopSlide, 'nonAdaptiveContent'),\n qcm: createProgression(qcmSlide, 'nonAdaptiveContent'),\n qcmDrag: createProgression(qcmDragSlide, 'nonAdaptiveContent'),\n qcmGraphic: createProgression(qcmGraphicSlide, 'nonAdaptiveContent'),\n template: createProgression(templateSlide, 'nonAdaptiveContent'),\n context: createProgression(contextSlide, 'nonAdaptiveContent'),\n adaptiveBasic: createProgression(basicSlide, 'adaptiveContent'),\n adaptiveQcm: createProgression(qcmSlide, 'adaptiveContent'),\n adaptiveQcmDrag: createProgression(qcmDragSlide, 'adaptiveContent'),\n adaptiveQcmGraphic: createProgression(qcmGraphicSlide, 'adaptiveContent'),\n adaptiveContext: createProgression(contextSlide, 'adaptiveContent'),\n adaptiveTemplate: createProgression(templateSlide, 'adaptiveContent')\n }\n }\n};\n\nconst isDisabledFor = (slide, isConditional, answer) => {\n const progressionId = 'progression';\n const chapterId = 'chapter';\n return createPlayerProps({\n data: {\n contents: {\n slide: {\n entities: {\n [slide._id]: {...slide, chapter_id: chapterId}\n }\n },\n chapter: {\n entities: {\n [chapterId]: {\n _id: chapterId,\n isConditional\n }\n }\n }\n },\n progressions: {\n entities: {\n [progressionId]: createProgression(slide, chapterId)\n }\n }\n },\n ui: {\n route: {[progressionId]: 'answer'},\n current: {progressionId},\n answers: {[progressionId]: {value: answer}}\n }\n }).cta.disabled;\n};\n\ntest('should create player props for basic question and show coaches', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n coaches: {availableCoaches: 1}\n }\n };\n\n const props = createPlayerProps(state);\n const headerProps = createHeaderProps(state);\n\n t.deepEqual(props.answerType.media, {\n _id: '593eb72a187bd18c01283592',\n mimeType: 'image/jpeg',\n type: 'img',\n url: '//static.coorpacademy.com/content/ijoinchanel/en/slides/1B2_Q6/1B2-Q6-canap-v1.jpg'\n });\n t.is(props.typeClue, 'answer');\n t.is(props.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.is(props.answerType.model.type, 'freeText');\n t.true(isFunction(props.answerType.model.onChange));\n t.is(props.slideContext, undefined);\n t.is(props.cta.submitValue, '__Validate');\n t.true(props.cta.disabled);\n\n t.is(props.buttons.length, 4);\n t.is(props.buttons[3].title, '__Coach');\n t.is(props.buttons[3].type, 'coach');\n t.deepEqual(omit('content.onClick', props.header), omit('content.onClick', headerProps));\n t.true(isFunction(props.header.content.onClick));\n});\ntest('should enable the validate button when there is an answer', t => {\n t.true(isDisabledFor(basicSlide, false, []));\n t.false(isDisabledFor(basicSlide, false, ['foo']));\n});\n\ntest('should enable the validate button when there are two answers in an non-adaptive content for all questions', t => {\n const answers = ['foo', 'bar'];\n\n t.false(isDisabledFor(basicSlide, false, answers));\n t.false(isDisabledFor(qcmSlide, false, answers));\n t.false(isDisabledFor(qcmGraphicSlide, false, answers));\n t.false(isDisabledFor(qcmDragSlide, false, answers));\n t.false(isDisabledFor(contextSlide, false, answers));\n t.false(isDisabledFor(templateSlide, false, answers));\n});\n\ntest('should disable the validate button when there are several answers in an adaptive content for qcm questions', t => {\n t.false(isDisabledFor(basicSlide, true, ['foo', 'bar']));\n t.true(isDisabledFor(qcmSlide, true, ['foo', 'bar']));\n t.true(isDisabledFor(qcmGraphicSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(qcmDragSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(contextSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(templateSlide, true, ['foo', 'bar']));\n\n t.false(isDisabledFor(basicSlide, true, ['foo', 'bar', 'baz']));\n t.true(isDisabledFor(qcmSlide, true, ['foo', 'bar', 'baz']));\n t.true(isDisabledFor(qcmGraphicSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(qcmDragSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(contextSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(templateSlide, true, ['foo', 'bar', 'baz']));\n});\n\ntest('should disable the validate button when there the text answer has been deleted', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {basic: {value: ['']}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should return defaut props when slide.question.type is not handles', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'plop'},\n answers: {basic: {value: ['']}}\n }\n };\n\n t.throws(() => createPlayerProps(state), {message: 'plop is not an handled question.type'});\n});\n\ntest('should disable the validate button when no answer is provided', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when a previous selected answer has been unselected', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {basic: {value: []}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when some answer fields are empty', t => {\n const state = {\n data,\n ui: {\n route: {template: 'answer'},\n current: {progressionId: 'template'},\n answers: {template: {value: ['', 'Test']}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when no answer has been selected by user on template question', t => {\n const state = {\n data,\n ui: {\n route: {template: 'answer'},\n current: {progressionId: 'template'}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should display context tab button if slide context is available', t => {\n t.plan(10);\n const state = {\n data,\n ui: {\n route: {context: 'answer'},\n current: {progressionId: 'context'}\n }\n };\n\n const dispatch = action => {\n t.deepEqual(action, {\n type: UI_SELECT_ROUTE,\n payload: 'context',\n meta: {\n progressionId: 'context'\n }\n });\n };\n\n const props = createPlayer(options, {dispatch: action => action(dispatch, () => state)})(state);\n\n t.is(typeof props.slideContext, 'object');\n t.is(props.slideContext.title, 'Some context title');\n t.is(typeof props.slideContext.description, 'string');\n t.is(props.slideContext.description, contextSlide.context.description);\n t.is(props.buttons.length, 5);\n t.is(props.buttons[0].title, '__Context');\n t.is(props.buttons[0].type, 'context');\n t.false(props.buttons[0].selected);\n t.is(typeof props.buttons[0].onClick, 'function');\n\n props.buttons[0].onClick();\n});\n\ntest('should display \"Back to question\" for the cta in the tabs', t => {\n const state = {\n data,\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'media'\n }\n }\n };\n\n const props = createPlayerProps(state);\n\n t.is(props.cta.submitValue, '__Back to question');\n\n state.ui.route.foo = 'clue';\n\n t.is(typeof props.onClickSeeClue, 'function');\n props.onClickSeeClue();\n\n t.is(props.cta.submitValue, '__Back to question');\n});\n\ntest('should display \"Go to question\" for the context tab cta', t => {\n const state = {\n data,\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'context'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.is(props.cta.submitValue, '__Go to question');\n});\n\ntest('should display new media notification when user has not seen any media for the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n resources: ['1234']\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.true(props.showNewMedia);\n});\n\ntest('should display new media notification for the answer/undefined route when user has not seen any media', t => {\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {}\n }\n };\n\n [undefined].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.true(isEmpty(props));\n });\n\n ['media', 'clue', 'context', 'answer'].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.false(isEmpty(props));\n });\n});\n\ntest('should not display new media notification for the other routes when user has not seen any media', t => {\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {}\n }\n };\n\n ['media', 'clue'].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.false(props.showNewMedia);\n });\n});\n\ntest('should not display new media notification when user has seen at least one media of the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: [basicSlide.lessons[0].ref]\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.false(props.showNewMedia);\n});\n\ntest('should display review lesson notification when user has seen at least one media of the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: [basicSlide.lessons[0].ref]\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.true(props.showReviewLesson);\n});\n\ntest('should not display review lesson notification when user has not seen any media for the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: []\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.false(props.showReviewLesson);\n});\n\ntest('should feed step prop in non-adaptive mode', t => {\n const state = set(\n 'data.contents.level.entities.1.info.nbSlides',\n 12,\n learnerProgressionStateFixture\n );\n\n const props = createPlayerProps(state);\n\n t.deepEqual(props.step, {current: 0, total: 12});\n});\n\ntest('should not feed step prop in adaptive mode', t => {\n const state = pipe(\n set('data.contents.level.entities.1.info.nbSlides', 12),\n set('data.contents.chapter.entities.chapter2.isConditional', true)\n )(learnerProgressionStateFixture);\n\n const props = createPlayerProps(state);\n\n t.falsy(props.step);\n});\n\ntest('should not send an id prop in resources', t => {\n const props = createPlayerProps(learnerProgressionStateFixture);\n\n t.is(get('resources.0.id', props), undefined);\n});\n\nconst createLearnerProgression = (slide, contentRef) => ({\n engine: {\n ref: 'learner',\n version: '1'\n },\n content: {\n ref: contentRef,\n type: 'level'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 1,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nconst check = (slide, answer) => {\n const progressionId = 'progression';\n const levelId = 'level';\n const chapterId = 'chapter';\n return createPlayerProps({\n data: {\n contents: {\n slide: {\n entities: {\n [slide._id]: {...slide, chapter_id: chapterId}\n }\n },\n level: {\n entities: {\n [levelId]: {\n ref: levelId,\n chapterIds: [chapterId],\n isConditional: true\n }\n }\n },\n chapter: {\n entities: {\n [chapterId]: {\n _id: chapterId,\n isConditional: false\n }\n }\n }\n },\n progressions: {\n entities: {\n [progressionId]: createLearnerProgression(slide, levelId)\n }\n }\n },\n ui: {\n route: {[progressionId]: 'answer'},\n current: {progressionId},\n answers: {[progressionId]: {value: answer}}\n }\n }).cta.disabled;\n};\n\ntest('should allow multi answers on adaptive level if the current chapter is not adaptive', t => {\n t.true(check(basicSlide, []));\n t.true(check(qcmSlide, []));\n t.true(check(qcmGraphicSlide, []));\n t.true(check(qcmDragSlide, []));\n t.true(check(contextSlide, []));\n t.true(check(templateSlide, []));\n\n t.false(check(basicSlide, ['foo']));\n t.false(check(qcmSlide, ['foo']));\n t.false(check(qcmGraphicSlide, ['foo']));\n t.false(check(qcmDragSlide, ['foo']));\n t.false(check(contextSlide, ['foo']));\n t.false(check(templateSlide, ['foo']));\n\n t.false(check(basicSlide, ['foo', 'bar']));\n t.false(check(qcmSlide, ['foo', 'bar']));\n t.false(check(qcmGraphicSlide, ['foo', 'bar']));\n t.false(check(qcmDragSlide, ['foo', 'bar']));\n t.false(check(contextSlide, ['foo', 'bar']));\n t.false(check(templateSlide, ['foo', 'bar']));\n});\n"],"file":"player.js"}
|
package/es/views/test/slide.js
CHANGED
|
@@ -4,6 +4,7 @@ import _map from "lodash/fp/map";
|
|
|
4
4
|
import _identity from "lodash/fp/identity";
|
|
5
5
|
import test from 'ava';
|
|
6
6
|
import { mockTranslate } from '@coorpacademy/translate';
|
|
7
|
+
import { Analytics as AnalyticsService, Answers as AnswersService, Clues as CluesService, Coach as CoachService, Comments as CommentsService, Content as ContentService, ExitNodes as ExitNodesService, LeaderBoard as LeaderBoardService, Location as LocationService, Progressions as ProgressionsService, Recommendations as RecommendationsService } from '@coorpacademy/player-services';
|
|
7
8
|
import microlearningHeader from '../../map-state-to-props/test/fixtures/progression-state';
|
|
8
9
|
import learnerHeader from '../../map-state-to-props/test/fixtures/progression-learner';
|
|
9
10
|
import stateSlide from '../../map-state-to-props/test/fixtures/player/slide';
|
|
@@ -11,10 +12,26 @@ import stateSlideNoLessons from '../../map-state-to-props/test/fixtures/player/s
|
|
|
11
12
|
import stateNoClue from '../../map-state-to-props/test/fixtures/player/no-clue';
|
|
12
13
|
import stateClue from '../../map-state-to-props/test/fixtures/player/clue';
|
|
13
14
|
import stateLoadingClue from '../../map-state-to-props/test/fixtures/player/loading-clue';
|
|
15
|
+
import * as fixtures from '../../../sandbox/fixtures';
|
|
14
16
|
import stateToVNode from './helpers/state-to-vnode';
|
|
15
17
|
import testRendering from './helpers/render';
|
|
18
|
+
const services = {
|
|
19
|
+
Analytics: AnalyticsService,
|
|
20
|
+
Answers: AnswersService(fixtures),
|
|
21
|
+
Clues: CluesService(fixtures),
|
|
22
|
+
Coach: CoachService,
|
|
23
|
+
Comments: CommentsService,
|
|
24
|
+
Content: ContentService(fixtures),
|
|
25
|
+
ExitNodes: ExitNodesService(fixtures),
|
|
26
|
+
LeaderBoard: LeaderBoardService,
|
|
27
|
+
Location: LocationService,
|
|
28
|
+
Logger: console,
|
|
29
|
+
Progressions: ProgressionsService(fixtures),
|
|
30
|
+
Recommendations: RecommendationsService(fixtures)
|
|
31
|
+
};
|
|
16
32
|
const options = {
|
|
17
|
-
translate: mockTranslate
|
|
33
|
+
translate: mockTranslate,
|
|
34
|
+
services
|
|
18
35
|
};
|
|
19
36
|
const store = {
|
|
20
37
|
dispatch: _identity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/test/slide.js"],"names":["test","mockTranslate","microlearningHeader","learnerHeader","stateSlide","stateSlideNoLessons","stateNoClue","stateClue","stateLoadingClue","stateToVNode","testRendering","options","translate","store","dispatch","mapStateToVNode","t","vNode","props","player","header","headerProps","is","type","content","title","subcontent","deepEqual","lives","count","onClick","true","actionOnClick","details","state","playerProps","typeClue","text","step","current","total","question","cta","submitValue","disabled","name","light","small","secondary","notThrows","help","truthy","answerType","buttons","selected","notify","showNewMedia","showReviewLesson","Promise","all","button"],"mappings":";;;;AAAA,OAAOA,IAAP,MAAiB,KAAjB;AAGA,SAAQC,aAAR,QAA4B,yBAA5B;AACA,OAAOC,mBAAP,MAAgC,0DAAhC;AACA,OAAOC,aAAP,MAA0B,4DAA1B;AACA,OAAOC,UAAP,MAAuB,qDAAvB;AACA,OAAOC,mBAAP,MAAgC,gEAAhC;AACA,OAAOC,WAAP,MAAwB,uDAAxB;AACA,OAAOC,SAAP,MAAsB,oDAAtB;AACA,OAAOC,gBAAP,MAA6B,4DAA7B;AACA,OAAOC,YAAP,MAAyB,0BAAzB;AACA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,MAAMC,OAAO,GAAG;AAACC,EAAAA,SAAS,EAAEX;AAAZ,CAAhB;AACA,MAAMY,KAAK,GAAG;AAACC,EAAAA,QAAQ;AAAT,CAAd;AACA,MAAMC,eAAe,GAAGN,YAAY,CAACE,OAAD,EAAUE,KAAV,CAApC;AAEAb,IAAI,CAAC,qCAAD,EAAwCgB,CAAC,IAAI;AAC/C,QAAMC,KAAK,GAAGF,eAAe,CAACb,mBAAD,CAA7B;AACAQ,EAAAA,aAAa,CAACO,KAAD,CAAb;AACA,QAAM;AACJC,IAAAA,KAAK,EAAE;AACLC,MAAAA,MAAM,EAAE;AAACC,QAAAA,MAAM,EAAEC;AAAT;AADH;AADH,MAIFJ,KAJJ;AAKAD,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACE,IAAjB,EAAuB,eAAvB;AACAP,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACG,OAAZ,CAAoBC,KAAzB,EAAgC,gDAAhC;AACAT,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACK,UAAjB,EAA6B,IAA7B;AACAV,EAAAA,CAAC,CAACW,SAAF,CAAYN,WAAW,CAACO,KAAxB,EAA+B;AAACC,IAAAA,KAAK,EAAE;AAAR,GAA/B;AACA,QAAMC,OAAO,GAAGT,WAAW,CAACG,OAAZ,CAAoBM,OAApC;AACAd,EAAAA,CAAC,CAACe,IAAF,CAAO,YAAWD,OAAX,CAAP;AACA,QAAME,aAAa,GAAGF,OAAO,EAA7B;AACAd,EAAAA,CAAC,CAACe,IAAF,CAAO,YAAWC,aAAX,CAAP;AACD,CAhBG,CAAJ;AAkBAhC,IAAI,CAAC,gDAAD,EAAmDgB,CAAC,IAAI;AAC1D,QAAMC,KAAK,GAAGF,eAAe,CAACZ,aAAD,CAA7B;AACAO,EAAAA,aAAa,CAACO,KAAD,CAAb;AACA,QAAM;AACJC,IAAAA,KAAK,EAAE;AACLC,MAAAA,MAAM,EAAE;AAACC,QAAAA,MAAM,EAAEC;AAAT;AADH;AADH,MAIFJ,KAJJ;AAMAD,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACE,IAAjB,EAAuB,SAAvB;AACAP,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACG,OAAZ,CAAoBC,KAAzB,EAAgC,QAAhC;AACAT,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACG,OAAZ,CAAoBS,OAAzB,EAAkC,kBAAlC;AACAjB,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACK,UAAZ,CAAuBD,KAA5B,EAAmC,WAAnC;AACAT,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACK,UAAZ,CAAuBO,OAA5B,EAAqC,KAArC;AACAjB,EAAAA,CAAC,CAACW,SAAF,CAAYN,WAAW,CAACO,KAAxB,EAA+B;AAACC,IAAAA,KAAK,EAAE;AAAR,GAA/B;AAEA,QAAMC,OAAO,GAAGT,WAAW,CAACG,OAAZ,CAAoBM,OAApC;AACAd,EAAAA,CAAC,CAACe,IAAF,CAAO,YAAWD,OAAX,CAAP;AACA,QAAME,aAAa,GAAGF,OAAO,EAA7B;AACAd,EAAAA,CAAC,CAACe,IAAF,CAAO,YAAWC,aAAX,CAAP;AACD,CApBG,CAAJ;AAsBAhC,IAAI,CAAC,oDAAD,EAAuDgB,CAAC,IAAI;AAC9D,QAAMkB,KAAK,GAAG,MAAK,2CAAL,EAAkD/B,aAAlD,CAAd;;AAEA,QAAMc,KAAK,GAAGF,eAAe,CAACmB,KAAD,CAA7B;AACAxB,EAAAA,aAAa,CAACO,KAAD,CAAb;AACA,QAAM;AACJC,IAAAA,KAAK,EAAE;AACLC,MAAAA,MAAM,EAAE;AAACC,QAAAA,MAAM,EAAEC;AAAT;AADH;AADH,MAIFJ,KAJJ;AAMAD,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACE,IAAjB,EAAuB,SAAvB;AACAP,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACG,OAAZ,CAAoBC,KAAzB,EAAgC,QAAhC;AACAT,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACG,OAAZ,CAAoBS,OAAzB,EAAkC,kBAAlC;AACAjB,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACK,UAAZ,CAAuBD,KAA5B,EAAmC,WAAnC;AACAT,EAAAA,CAAC,CAACM,EAAF,CAAKD,WAAW,CAACK,UAAZ,CAAuBO,OAA5B,EAAqC,IAArC;AACAjB,EAAAA,CAAC,CAACW,SAAF,CAAYN,WAAW,CAACO,KAAxB,EAA+B;AAACC,IAAAA,KAAK,EAAE;AAAR,GAA/B;AAEA,QAAMC,OAAO,GAAGT,WAAW,CAACG,OAAZ,CAAoBM,OAApC;AACAd,EAAAA,CAAC,CAACe,IAAF,CAAO,YAAWD,OAAX,CAAP;AACA,QAAME,aAAa,GAAGF,OAAO,EAA7B;AACAd,EAAAA,CAAC,CAACe,IAAF,CAAO,YAAWC,aAAX,CAAP;AACD,CAtBG,CAAJ;AAwBAhC,IAAI,CAAC,sBAAD,EAAyB,MAAMgB,CAAN,IAAW;AACtC,QAAMC,KAAK,GAAGF,eAAe,CAACX,UAAD,CAA7B;AACAM,EAAAA,aAAa,CAACO,KAAD,CAAb;AACA,QAAM;AACJC,IAAAA,KAAK,EAAE;AAACC,MAAAA,MAAM,EAAEgB;AAAT;AADH,MAEFlB,KAFJ;AAIAD,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACC,QAAjB,EAA2B,QAA3B;AACApB,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACE,IAAjB,EAAuB,IAAvB;AAEArB,EAAAA,CAAC,CAACW,SAAF,CAAYQ,WAAW,CAACG,IAAxB,EAA8B;AAACC,IAAAA,OAAO,EAAE,CAAV;AAAaC,IAAAA,KAAK,EAAE;AAApB,GAA9B;AAEAxB,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACM,QAAjB,EAA2B,qCAA3B;AACAzB,EAAAA,CAAC,CAACW,SAAF,CAAY,MAAK,SAAL,EAAgBQ,WAAW,CAACO,GAA5B,CAAZ,EAA8C;AAC5CC,IAAAA,WAAW,EAAE,YAD+B;AAE5CC,IAAAA,QAAQ,EAAE,IAFkC;AAG5CC,IAAAA,IAAI,EAAE,mBAHsC;AAI5CC,IAAAA,KAAK,EAAE,KAJqC;AAK5CC,IAAAA,KAAK,EAAE,KALqC;AAM5CC,IAAAA,SAAS,EAAE;AANiC,GAA9C;AAQA,QAAMhC,CAAC,CAACiC,SAAF,CAAYd,WAAW,CAACO,GAAZ,CAAgBZ,OAA5B,CAAN;AACAd,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACe,IAAjB,EAAuB,0BAAvB;AACAlC,EAAAA,CAAC,CAACmC,MAAF,CAAShB,WAAW,CAACiB,UAArB;AAEApC,EAAAA,CAAC,CAACW,SAAF,CAAY,KAAI,MAAK,SAAL,CAAJ,EAAqBQ,WAAW,CAACkB,OAAjC,CAAZ,EAAuD,CACrD;AACE5B,IAAAA,KAAK,EAAE,YADT;AAEEF,IAAAA,IAAI,EAAE,UAFR;AAGE+B,IAAAA,QAAQ,EAAE;AAHZ,GADqD,EAMrD;AACEC,IAAAA,MAAM,EAAE,IADV;AAEEX,IAAAA,QAAQ,EAAE,KAFZ;AAGEnB,IAAAA,KAAK,EAAE,SAHT;AAIEF,IAAAA,IAAI,EAAE,OAJR;AAKE+B,IAAAA,QAAQ,EAAE;AALZ,GANqD,EAarD;AACE7B,IAAAA,KAAK,EAAE,QADT;AAEEF,IAAAA,IAAI,EAAE,MAFR;AAGE+B,IAAAA,QAAQ,EAAE,KAHZ;AAIEV,IAAAA,QAAQ,EAAE;AAJZ,GAbqD,EAmBrD;AACEA,IAAAA,QAAQ,EAAE,IADZ;AAEEnB,IAAAA,KAAK,EAAE,SAFT;AAGEF,IAAAA,IAAI,EAAE;AAHR,GAnBqD,CAAvD;AAyBAP,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACqB,YAAjB,EAA+B,IAA/B;AACAxC,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACsB,gBAAjB,EAAmC,KAAnC;AACA,SAAOC,OAAO,CAACC,GAAR,CAAY,KAAIC,MAAM,IAAI5C,CAAC,CAACiC,SAAF,CAAYW,MAAM,CAAC9B,OAAnB,CAAd,EAA2CK,WAAW,CAACkB,OAAvD,CAAZ,CAAP;AACD,CArDG,CAAJ;AAuDArD,IAAI,CAAC,sDAAD,EAAyD,MAAMgB,CAAN,IAAW;AACtE,QAAMC,KAAK,GAAGF,eAAe,CAACV,mBAAD,CAA7B;AACAK,EAAAA,aAAa,CAACO,KAAD,CAAb;AACA,QAAM;AACJC,IAAAA,KAAK,EAAE;AAACC,MAAAA,MAAM,EAAEgB;AAAT;AADH,MAEFlB,KAFJ;AAIAD,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACC,QAAjB,EAA2B,QAA3B;AACApB,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACE,IAAjB,EAAuB,IAAvB;AAEArB,EAAAA,CAAC,CAACW,SAAF,CAAYQ,WAAW,CAACG,IAAxB,EAA8B;AAACC,IAAAA,OAAO,EAAE,CAAV;AAAaC,IAAAA,KAAK,EAAE;AAApB,GAA9B;AAEAxB,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACM,QAAjB,EAA2B,qCAA3B;AACAzB,EAAAA,CAAC,CAACW,SAAF,CAAY,MAAK,SAAL,EAAgBQ,WAAW,CAACO,GAA5B,CAAZ,EAA8C;AAC5CC,IAAAA,WAAW,EAAE,YAD+B;AAE5CC,IAAAA,QAAQ,EAAE,IAFkC;AAG5CC,IAAAA,IAAI,EAAE,mBAHsC;AAI5CC,IAAAA,KAAK,EAAE,KAJqC;AAK5CC,IAAAA,KAAK,EAAE,KALqC;AAM5CC,IAAAA,SAAS,EAAE;AANiC,GAA9C;AAQA,QAAMhC,CAAC,CAACiC,SAAF,CAAYd,WAAW,CAACO,GAAZ,CAAgBZ,OAA5B,CAAN;AACAd,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACe,IAAjB,EAAuB,0BAAvB;AACAlC,EAAAA,CAAC,CAACmC,MAAF,CAAShB,WAAW,CAACiB,UAArB;AAEApC,EAAAA,CAAC,CAACW,SAAF,CAAY,KAAI,MAAK,SAAL,CAAJ,EAAqBQ,WAAW,CAACkB,OAAjC,CAAZ,EAAuD,CACrD;AACE5B,IAAAA,KAAK,EAAE,YADT;AAEEF,IAAAA,IAAI,EAAE,UAFR;AAGE+B,IAAAA,QAAQ,EAAE;AAHZ,GADqD,EAMrD;AACEC,IAAAA,MAAM,EAAE,KADV;AAEEX,IAAAA,QAAQ,EAAE,IAFZ;AAGEnB,IAAAA,KAAK,EAAE,SAHT;AAIEF,IAAAA,IAAI,EAAE,OAJR;AAKE+B,IAAAA,QAAQ,EAAE;AALZ,GANqD,EAarD;AACE7B,IAAAA,KAAK,EAAE,QADT;AAEEF,IAAAA,IAAI,EAAE,MAFR;AAGE+B,IAAAA,QAAQ,EAAE,KAHZ;AAIEV,IAAAA,QAAQ,EAAE;AAJZ,GAbqD,EAmBrD;AACEA,IAAAA,QAAQ,EAAE,IADZ;AAEEnB,IAAAA,KAAK,EAAE,SAFT;AAGEF,IAAAA,IAAI,EAAE;AAHR,GAnBqD,CAAvD;AAyBAP,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACqB,YAAjB,EAA+B,KAA/B;AACAxC,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACsB,gBAAjB,EAAmC,KAAnC;AACA,SAAOC,OAAO,CAACC,GAAR,CAAY,KAAIC,MAAM,IAAI5C,CAAC,CAACiC,SAAF,CAAYW,MAAM,CAAC9B,OAAnB,CAAd,EAA2CK,WAAW,CAACkB,OAAvD,CAAZ,CAAP;AACD,CArDG,CAAJ;AAuDArD,IAAI,CAAC,6BAAD,EAAgC,MAAMgB,CAAN,IAAW;AAC7C,QAAMC,KAAK,GAAGF,eAAe,CAACP,gBAAD,CAA7B;AACAE,EAAAA,aAAa,CAACO,KAAD,CAAb;AACA,QAAM;AACJC,IAAAA,KAAK,EAAE;AAACC,MAAAA,MAAM,EAAEgB;AAAT;AADH,MAEFlB,KAFJ;AAIAD,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACC,QAAjB,EAA2B,MAA3B;AACApB,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACE,IAAjB,EAAuB,IAAvB;AAEArB,EAAAA,CAAC,CAACW,SAAF,CAAYQ,WAAW,CAACG,IAAxB,EAA8B;AAACC,IAAAA,OAAO,EAAE,CAAV;AAAaC,IAAAA,KAAK,EAAE;AAApB,GAA9B;AAEAxB,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACM,QAAjB,EAA2B,qCAA3B;AACAzB,EAAAA,CAAC,CAACW,SAAF,CAAY,MAAK,SAAL,EAAgBQ,WAAW,CAACO,GAA5B,CAAZ,EAA8C;AAC5CC,IAAAA,WAAW,EAAE,oBAD+B;AAE5CE,IAAAA,IAAI,EAAE,mBAFsC;AAG5CC,IAAAA,KAAK,EAAE,KAHqC;AAI5CC,IAAAA,KAAK,EAAE,KAJqC;AAK5CC,IAAAA,SAAS,EAAE,IALiC;AAM5CJ,IAAAA,QAAQ,EAAE;AANkC,GAA9C;AAQA,QAAM5B,CAAC,CAACiC,SAAF,CAAYd,WAAW,CAACO,GAAZ,CAAgBZ,OAA5B,CAAN;AACAd,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACe,IAAjB,EAAuB,0BAAvB;AACAlC,EAAAA,CAAC,CAACmC,MAAF,CAAShB,WAAW,CAACiB,UAArB;AAEApC,EAAAA,CAAC,CAACW,SAAF,CAAY,KAAI,MAAK,SAAL,CAAJ,EAAqBQ,WAAW,CAACkB,OAAjC,CAAZ,EAAuD,CACrD;AACE5B,IAAAA,KAAK,EAAE,YADT;AAEEF,IAAAA,IAAI,EAAE,UAFR;AAGE+B,IAAAA,QAAQ,EAAE;AAHZ,GADqD,EAMrD;AACEC,IAAAA,MAAM,EAAE,IADV;AAEEX,IAAAA,QAAQ,EAAE,KAFZ;AAGEnB,IAAAA,KAAK,EAAE,SAHT;AAIEF,IAAAA,IAAI,EAAE,OAJR;AAKE+B,IAAAA,QAAQ,EAAE;AALZ,GANqD,EAarD;AACE7B,IAAAA,KAAK,EAAE,QADT;AAEEF,IAAAA,IAAI,EAAE,MAFR;AAGE+B,IAAAA,QAAQ,EAAE,IAHZ;AAIEV,IAAAA,QAAQ,EAAE;AAJZ,GAbqD,EAmBrD;AACEA,IAAAA,QAAQ,EAAE,IADZ;AAEEnB,IAAAA,KAAK,EAAE,SAFT;AAGEF,IAAAA,IAAI,EAAE;AAHR,GAnBqD,CAAvD;AA0BA,SAAOmC,OAAO,CAACC,GAAR,CAAY,KAAIC,MAAM,IAAI5C,CAAC,CAACiC,SAAF,CAAYW,MAAM,CAAC9B,OAAnB,CAAd,EAA2CK,WAAW,CAACkB,OAAvD,CAAZ,CAAP;AACD,CApDG,CAAJ;AAsDArD,IAAI,CAAC,qBAAD,EAAwB,MAAMgB,CAAN,IAAW;AACrC,QAAMC,KAAK,GAAGF,eAAe,CAACR,SAAD,CAA7B;AACAG,EAAAA,aAAa,CAACO,KAAD,CAAb;AACA,QAAM;AACJC,IAAAA,KAAK,EAAE;AAACC,MAAAA,MAAM,EAAEgB;AAAT;AADH,MAEFlB,KAFJ;AAIAD,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACC,QAAjB,EAA2B,MAA3B;AACApB,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACE,IAAjB,EAAuB,MAAvB;AAEArB,EAAAA,CAAC,CAACW,SAAF,CAAYQ,WAAW,CAACG,IAAxB,EAA8B;AAACC,IAAAA,OAAO,EAAE,CAAV;AAAaC,IAAAA,KAAK,EAAE;AAApB,GAA9B;AAEAxB,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACM,QAAjB,EAA2B,qCAA3B;AACAzB,EAAAA,CAAC,CAACW,SAAF,CAAY,MAAK,SAAL,EAAgBQ,WAAW,CAACO,GAA5B,CAAZ,EAA8C;AAC5CC,IAAAA,WAAW,EAAE,oBAD+B;AAE5CE,IAAAA,IAAI,EAAE,mBAFsC;AAG5CC,IAAAA,KAAK,EAAE,KAHqC;AAI5CC,IAAAA,KAAK,EAAE,KAJqC;AAK5CC,IAAAA,SAAS,EAAE,IALiC;AAM5CJ,IAAAA,QAAQ,EAAE;AANkC,GAA9C;AAQA,QAAM5B,CAAC,CAACiC,SAAF,CAAYd,WAAW,CAACO,GAAZ,CAAgBZ,OAA5B,CAAN;AACAd,EAAAA,CAAC,CAACM,EAAF,CAAKa,WAAW,CAACe,IAAjB,EAAuB,0BAAvB;AACAlC,EAAAA,CAAC,CAACmC,MAAF,CAAShB,WAAW,CAACiB,UAArB;AAEApC,EAAAA,CAAC,CAACW,SAAF,CAAY,KAAI,MAAK,SAAL,CAAJ,EAAqBQ,WAAW,CAACkB,OAAjC,CAAZ,EAAuD,CACrD;AACE5B,IAAAA,KAAK,EAAE,YADT;AAEEF,IAAAA,IAAI,EAAE,UAFR;AAGE+B,IAAAA,QAAQ,EAAE;AAHZ,GADqD,EAMrD;AACEC,IAAAA,MAAM,EAAE,IADV;AAEEX,IAAAA,QAAQ,EAAE,KAFZ;AAGEnB,IAAAA,KAAK,EAAE,SAHT;AAIEF,IAAAA,IAAI,EAAE,OAJR;AAKE+B,IAAAA,QAAQ,EAAE;AALZ,GANqD,EAarD;AACE7B,IAAAA,KAAK,EAAE,QADT;AAEEF,IAAAA,IAAI,EAAE,MAFR;AAGE+B,IAAAA,QAAQ,EAAE,IAHZ;AAIEV,IAAAA,QAAQ,EAAE;AAJZ,GAbqD,EAmBrD;AACEA,IAAAA,QAAQ,EAAE,IADZ;AAEEnB,IAAAA,KAAK,EAAE,SAFT;AAGEF,IAAAA,IAAI,EAAE;AAHR,GAnBqD,CAAvD;AA0BA,SAAOmC,OAAO,CAACC,GAAR,CAAY,KAAIC,MAAM,IAAI5C,CAAC,CAACiC,SAAF,CAAYW,MAAM,CAAC9B,OAAnB,CAAd,EAA2CK,WAAW,CAACkB,OAAvD,CAAZ,CAAP;AACD,CApDG,CAAJ;AAsDArD,IAAI,CAAC,iDAAD,EAAoDgB,CAAC,IAAI;AAC3D,QAAMC,KAAK,GAAGF,eAAe,CAACT,WAAD,CAA7B;AACAI,EAAAA,aAAa,CAACO,KAAD,CAAb;AACA,QAAM;AACJC,IAAAA,KAAK,EAAE;AAACC,MAAAA,MAAM,EAAEgB;AAAT;AADH,MAEFlB,KAFJ;AAIAD,EAAAA,CAAC,CAACW,SAAF,CAAY,KAAI,MAAK,SAAL,CAAJ,EAAqBQ,WAAW,CAACkB,OAAjC,CAAZ,EAAuD,CACrD;AACE5B,IAAAA,KAAK,EAAE,YADT;AAEEF,IAAAA,IAAI,EAAE,UAFR;AAGE+B,IAAAA,QAAQ,EAAE;AAHZ,GADqD,EAMrD;AACEC,IAAAA,MAAM,EAAE,IADV;AAEEX,IAAAA,QAAQ,EAAE,KAFZ;AAGEnB,IAAAA,KAAK,EAAE,SAHT;AAIEF,IAAAA,IAAI,EAAE,OAJR;AAKE+B,IAAAA,QAAQ,EAAE;AALZ,GANqD,EAarD;AACE7B,IAAAA,KAAK,EAAE,QADT;AAEEF,IAAAA,IAAI,EAAE,MAFR;AAGE+B,IAAAA,QAAQ,EAAE,KAHZ;AAIEV,IAAAA,QAAQ,EAAE;AAJZ,GAbqD,EAmBrD;AACEA,IAAAA,QAAQ,EAAE,IADZ;AAEEnB,IAAAA,KAAK,EAAE,SAFT;AAGEF,IAAAA,IAAI,EAAE;AAHR,GAnBqD,CAAvD;AA0BA,SAAOmC,OAAO,CAACC,GAAR,CAAY,KAAIC,MAAM,IAAI5C,CAAC,CAACiC,SAAF,CAAYW,MAAM,CAAC9B,OAAnB,CAAd,EAA2CK,WAAW,CAACkB,OAAvD,CAAZ,CAAP;AACD,CAlCG,CAAJ","sourcesContent":["import test from 'ava';\nimport {identity, map, omit, isFunction} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport microlearningHeader from '../../map-state-to-props/test/fixtures/progression-state';\nimport learnerHeader from '../../map-state-to-props/test/fixtures/progression-learner';\nimport stateSlide from '../../map-state-to-props/test/fixtures/player/slide';\nimport stateSlideNoLessons from '../../map-state-to-props/test/fixtures/player/slide-no-lessons';\nimport stateNoClue from '../../map-state-to-props/test/fixtures/player/no-clue';\nimport stateClue from '../../map-state-to-props/test/fixtures/player/clue';\nimport stateLoadingClue from '../../map-state-to-props/test/fixtures/player/loading-clue';\nimport stateToVNode from './helpers/state-to-vnode';\nimport testRendering from './helpers/render';\n\nconst options = {translate: mockTranslate};\nconst store = {dispatch: identity};\nconst mapStateToVNode = stateToVNode(options, store);\n\ntest('should display microlearning header', t => {\n const vNode = mapStateToVNode(microlearningHeader);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n t.is(headerProps.type, 'microlearning');\n t.is(headerProps.content.title, 'Les réseaux sociaux au service du crowdfunding');\n t.is(headerProps.subcontent, null);\n t.deepEqual(headerProps.lives, {count: 3});\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display learner header with chapter num', t => {\n const vNode = mapStateToVNode(learnerHeader);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n\n t.is(headerProps.type, 'learner');\n t.is(headerProps.content.title, 'level1');\n t.is(headerProps.content.details, 'base-translation');\n t.is(headerProps.subcontent.title, 'chapter2!');\n t.is(headerProps.subcontent.details, '2/2');\n t.deepEqual(headerProps.lives, {count: 3});\n\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display learner header with no chapter nums', t => {\n const state = omit('data.contents.level.entities.1.chapterIds', learnerHeader);\n\n const vNode = mapStateToVNode(state);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n\n t.is(headerProps.type, 'learner');\n t.is(headerProps.content.title, 'level1');\n t.is(headerProps.content.details, 'base-translation');\n t.is(headerProps.subcontent.title, 'chapter2!');\n t.is(headerProps.subcontent.details, null);\n t.deepEqual(headerProps.lives, {count: 3});\n\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display slide', async t => {\n const vNode = mapStateToVNode(stateSlide);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'answer');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Validate',\n disabled: true,\n name: 'validateAnswerCTA',\n light: false,\n small: false,\n secondary: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n t.is(playerProps.showNewMedia, true);\n t.is(playerProps.showReviewLesson, false);\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should disable lesson button if slide has no lessons', async t => {\n const vNode = mapStateToVNode(stateSlideNoLessons);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'answer');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Validate',\n disabled: true,\n name: 'validateAnswerCTA',\n light: false,\n small: false,\n secondary: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: false,\n disabled: true,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n t.is(playerProps.showNewMedia, false);\n t.is(playerProps.showReviewLesson, false);\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should display loading clue', async t => {\n const vNode = mapStateToVNode(stateLoadingClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'clue');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 1, total: 1});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Back to question',\n name: 'backToQuestionCTA',\n light: false,\n small: false,\n secondary: true,\n disabled: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: false\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: true,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should display clue', async t => {\n const vNode = mapStateToVNode(stateClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'clue');\n t.is(playerProps.text, 'Clue');\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Back to question',\n name: 'backToQuestionCTA',\n light: false,\n small: false,\n secondary: true,\n disabled: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: false\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: true,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should disable clue button if slide has no clue', t => {\n const vNode = mapStateToVNode(stateNoClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: true\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n"],"file":"slide.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/test/slide.js"],"names":["test","mockTranslate","Analytics","AnalyticsService","Answers","AnswersService","Clues","CluesService","Coach","CoachService","Comments","CommentsService","Content","ContentService","ExitNodes","ExitNodesService","LeaderBoard","LeaderBoardService","Location","LocationService","Progressions","ProgressionsService","Recommendations","RecommendationsService","microlearningHeader","learnerHeader","stateSlide","stateSlideNoLessons","stateNoClue","stateClue","stateLoadingClue","fixtures","stateToVNode","testRendering","services","Logger","console","options","translate","store","dispatch","mapStateToVNode","t","vNode","props","player","header","headerProps","is","type","content","title","subcontent","deepEqual","lives","count","onClick","true","actionOnClick","details","state","playerProps","typeClue","text","step","current","total","question","cta","submitValue","disabled","name","light","small","secondary","notThrows","help","truthy","answerType","buttons","selected","notify","showNewMedia","showReviewLesson","Promise","all","button"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {identity, map, omit, isFunction} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {\n Analytics as AnalyticsService,\n Answers as AnswersService,\n Clues as CluesService,\n Coach as CoachService,\n Comments as CommentsService,\n Content as ContentService,\n ExitNodes as ExitNodesService,\n LeaderBoard as LeaderBoardService,\n Location as LocationService,\n Progressions as ProgressionsService,\n Recommendations as RecommendationsService\n} from '@coorpacademy/player-services';\nimport microlearningHeader from '../../map-state-to-props/test/fixtures/progression-state';\nimport learnerHeader from '../../map-state-to-props/test/fixtures/progression-learner';\nimport stateSlide from '../../map-state-to-props/test/fixtures/player/slide';\nimport stateSlideNoLessons from '../../map-state-to-props/test/fixtures/player/slide-no-lessons';\nimport stateNoClue from '../../map-state-to-props/test/fixtures/player/no-clue';\nimport stateClue from '../../map-state-to-props/test/fixtures/player/clue';\nimport stateLoadingClue from '../../map-state-to-props/test/fixtures/player/loading-clue';\nimport * as fixtures from '../../../sandbox/fixtures';\nimport stateToVNode from './helpers/state-to-vnode';\nimport testRendering from './helpers/render';\n\nconst services = {\n Analytics: AnalyticsService,\n Answers: AnswersService(fixtures),\n Clues: CluesService(fixtures),\n Coach: CoachService,\n Comments: CommentsService,\n Content: ContentService(fixtures),\n ExitNodes: ExitNodesService(fixtures),\n LeaderBoard: LeaderBoardService,\n Location: LocationService,\n Logger: console,\n Progressions: ProgressionsService(fixtures),\n Recommendations: RecommendationsService(fixtures)\n};\n\nconst options = {translate: mockTranslate, services};\nconst store = {dispatch: identity};\nconst mapStateToVNode = stateToVNode(options, store);\n\ntest('should display microlearning header', t => {\n const vNode = mapStateToVNode(microlearningHeader);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n t.is(headerProps.type, 'microlearning');\n t.is(headerProps.content.title, 'Les réseaux sociaux au service du crowdfunding');\n t.is(headerProps.subcontent, null);\n t.deepEqual(headerProps.lives, {count: 3});\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display learner header with chapter num', t => {\n const vNode = mapStateToVNode(learnerHeader);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n\n t.is(headerProps.type, 'learner');\n t.is(headerProps.content.title, 'level1');\n t.is(headerProps.content.details, 'base-translation');\n t.is(headerProps.subcontent.title, 'chapter2!');\n t.is(headerProps.subcontent.details, '2/2');\n t.deepEqual(headerProps.lives, {count: 3});\n\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display learner header with no chapter nums', t => {\n const state = omit('data.contents.level.entities.1.chapterIds', learnerHeader);\n\n const vNode = mapStateToVNode(state);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n\n t.is(headerProps.type, 'learner');\n t.is(headerProps.content.title, 'level1');\n t.is(headerProps.content.details, 'base-translation');\n t.is(headerProps.subcontent.title, 'chapter2!');\n t.is(headerProps.subcontent.details, null);\n t.deepEqual(headerProps.lives, {count: 3});\n\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display slide', async t => {\n const vNode = mapStateToVNode(stateSlide);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'answer');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Validate',\n disabled: true,\n name: 'validateAnswerCTA',\n light: false,\n small: false,\n secondary: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n t.is(playerProps.showNewMedia, true);\n t.is(playerProps.showReviewLesson, false);\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should disable lesson button if slide has no lessons', async t => {\n const vNode = mapStateToVNode(stateSlideNoLessons);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'answer');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Validate',\n disabled: true,\n name: 'validateAnswerCTA',\n light: false,\n small: false,\n secondary: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: false,\n disabled: true,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n t.is(playerProps.showNewMedia, false);\n t.is(playerProps.showReviewLesson, false);\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should display loading clue', async t => {\n const vNode = mapStateToVNode(stateLoadingClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'clue');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 1, total: 1});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Back to question',\n name: 'backToQuestionCTA',\n light: false,\n small: false,\n secondary: true,\n disabled: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: false\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: true,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should display clue', async t => {\n const vNode = mapStateToVNode(stateClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'clue');\n t.is(playerProps.text, 'Clue');\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Back to question',\n name: 'backToQuestionCTA',\n light: false,\n small: false,\n secondary: true,\n disabled: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: false\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: true,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should disable clue button if slide has no clue', t => {\n const vNode = mapStateToVNode(stateNoClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: true\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n"],"file":"slide.js"}
|
|
@@ -34,7 +34,8 @@ const playerProps = (options, store) => {
|
|
|
34
34
|
const createHeaderStateToProps_ = (0, _header.default)(options, store);
|
|
35
35
|
return state => {
|
|
36
36
|
const {
|
|
37
|
-
translate
|
|
37
|
+
translate,
|
|
38
|
+
services
|
|
38
39
|
} = options;
|
|
39
40
|
const {
|
|
40
41
|
dispatch
|
|
@@ -90,12 +91,13 @@ const playerProps = (options, store) => {
|
|
|
90
91
|
selected: route === 'clue',
|
|
91
92
|
disabled: !hasClue,
|
|
92
93
|
onClick: clickClueHandler
|
|
93
|
-
}
|
|
94
|
+
}];
|
|
95
|
+
services?.Coach && buttons.push({
|
|
94
96
|
title: translate('Coach'),
|
|
95
97
|
type: 'coach',
|
|
96
98
|
disabled: availableCoaches === 0,
|
|
97
99
|
onClick: () => dispatch((0, _playerStore.startChat)())
|
|
98
|
-
}
|
|
100
|
+
});
|
|
99
101
|
const headerProps = createHeaderStateToProps_(state);
|
|
100
102
|
|
|
101
103
|
if (!(0, _includes2.default)(route, ROUTES)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/map-state-to-props/player.js"],"names":["ROUTES","STARS_DIFF","media","clue","playerProps","options","store","createGetAnswerProps_","getResourcesProps_","createGetHelp_","createHeaderStateToProps_","state","translate","dispatch","engineConfig","slide","slideContext","currentContent","answer","mediaQuestion","route","resources","help","starsDiff","clickClueHandler","selectClue","clickSeeClueHandler","getClue","clickBackToAnswerHandler","clickCTAHandler","hasClue","slideLessons","notifyNewMedia","notifyReviewLesson","contextButton","title","type","selected","onClick","availableCoaches","buttons","disabled","notify","headerProps","ctaButtonValidate","submitValue","light","small","name","secondary","ctaButtonBackToQuestion","typeClue","text","onClickSeeClue","question","step","backgroundUrl","verticalMargin","cta","answerType","model","showNewMedia","showReviewLesson","header"],"mappings":"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","sourcesContent":["import {includes, isEmpty, get, isNil} from 'lodash/fp';\nimport {\n getClue,\n getCoaches,\n getCurrentClue,\n getCurrentContent,\n getCurrentSlide,\n getEngineConfig,\n getQuestionMedia,\n getRoute,\n hasSeenLesson,\n selectClue,\n selectRoute,\n startChat,\n validateAnswer,\n isQuestionCtaDisabled,\n getProgressionSteps\n} from '@coorpacademy/player-store';\nimport {createGetAnswerProps, createGetHelp} from './answer';\nimport createHeaderStateToProps from './header';\nimport getResourcesProps from './resources';\n\nconst ROUTES = ['media', 'clue', 'context', 'answer'];\n\nconst STARS_DIFF = {\n media: 'starsPerResourceViewed',\n clue: 'starsPerAskingClue'\n};\n\nconst playerProps = (options, store) => {\n const createGetAnswerProps_ = createGetAnswerProps(options, store);\n const getResourcesProps_ = getResourcesProps(options, store);\n const createGetHelp_ = createGetHelp(options, store);\n const createHeaderStateToProps_ = createHeaderStateToProps(options, store);\n\n return state => {\n const {translate} = options;\n const {dispatch} = store;\n\n const engineConfig = getEngineConfig(state);\n const slide = getCurrentSlide(state);\n const slideContext = get('context', slide);\n const currentContent = getCurrentContent(state);\n const answer = createGetAnswerProps_(state, slide);\n const mediaQuestion = getQuestionMedia(state);\n const clue = getCurrentClue(state) || null;\n const route = getRoute(state);\n const resources = getResourcesProps_(state, slide);\n const help = createGetHelp_(slide);\n const starsDiff = get(STARS_DIFF[route], engineConfig) || 0;\n const clickClueHandler = () => dispatch(selectClue);\n const clickSeeClueHandler = () => dispatch(getClue);\n const clickBackToAnswerHandler = () => dispatch(selectRoute('answer'));\n const clickCTAHandler = () => dispatch(validateAnswer());\n\n const hasClue = get('hasClue', slide);\n const slideLessons = get('lessons', slide);\n\n const notifyNewMedia = !isEmpty(slideLessons) && !hasSeenLesson(state);\n const notifyReviewLesson = !isEmpty(slideLessons) && hasSeenLesson(state);\n\n const contextButton = get('title', slideContext)\n ? [\n {\n title: translate('Context'),\n type: 'context',\n selected: route === 'context',\n onClick: () => {\n return dispatch(selectRoute('context'));\n }\n }\n ]\n : [];\n\n const availableCoaches = getCoaches(state);\n const buttons = [\n ...contextButton,\n {\n title: translate('Question'),\n type: 'question',\n selected: route === 'answer',\n onClick: clickBackToAnswerHandler\n },\n {\n title: translate('Media'),\n type: 'media',\n selected: route === 'media',\n disabled: isEmpty(slideLessons),\n onClick: () => dispatch(selectRoute('media')),\n notify: notifyNewMedia\n },\n {\n title: translate('Clue'),\n type: 'clue',\n selected: route === 'clue',\n disabled: !hasClue,\n onClick: clickClueHandler\n },\n {\n title: translate('Coach'),\n type: 'coach',\n disabled: availableCoaches === 0,\n onClick: () => dispatch(startChat())\n }\n ];\n const headerProps = createHeaderStateToProps_(state);\n\n if (!includes(route, ROUTES)) {\n return {};\n }\n\n const ctaButtonValidate = {\n submitValue: translate('Validate'),\n onClick: clickCTAHandler,\n light: false,\n small: false,\n name: 'validateAnswerCTA',\n secondary: false,\n disabled: isQuestionCtaDisabled(state)\n };\n\n const ctaButtonBackToQuestion = {\n submitValue: translate(route === 'context' ? 'Go to question' : 'Back to question'),\n onClick: clickBackToAnswerHandler,\n light: false,\n small: false,\n name: 'backToQuestionCTA',\n secondary: true,\n disabled: false\n };\n\n return {\n typeClue: route,\n text: clue,\n onClickSeeClue: clickSeeClueHandler,\n question: get('question.header')(slide),\n step: getProgressionSteps(state),\n slideContext,\n backgroundUrl: get('backgroundUrl')(currentContent),\n verticalMargin: 260,\n starsDiff,\n resources,\n cta: route === 'answer' ? ctaButtonValidate : ctaButtonBackToQuestion,\n help,\n answerType: {\n model: answer,\n media: mediaQuestion\n },\n showNewMedia: (isNil(route) || route === 'answer') && notifyNewMedia,\n showReviewLesson: (isNil(route) || route === 'answer') && notifyReviewLesson,\n buttons,\n header: headerProps\n };\n };\n};\n\nexport default playerProps;\n"],"file":"player.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/player.js"],"names":["ROUTES","STARS_DIFF","media","clue","playerProps","options","store","createGetAnswerProps_","getResourcesProps_","createGetHelp_","createHeaderStateToProps_","state","translate","services","dispatch","engineConfig","slide","slideContext","currentContent","answer","mediaQuestion","route","resources","help","starsDiff","clickClueHandler","selectClue","clickSeeClueHandler","getClue","clickBackToAnswerHandler","clickCTAHandler","hasClue","slideLessons","notifyNewMedia","notifyReviewLesson","contextButton","title","type","selected","onClick","availableCoaches","buttons","disabled","notify","Coach","push","headerProps","ctaButtonValidate","submitValue","light","small","name","secondary","ctaButtonBackToQuestion","typeClue","text","onClickSeeClue","question","step","backgroundUrl","verticalMargin","cta","answerType","model","showNewMedia","showReviewLesson","header"],"mappings":"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","sourcesContent":["import {includes, isEmpty, get, isNil} from 'lodash/fp';\nimport {\n getClue,\n getCoaches,\n getCurrentClue,\n getCurrentContent,\n getCurrentSlide,\n getEngineConfig,\n getQuestionMedia,\n getRoute,\n hasSeenLesson,\n selectClue,\n selectRoute,\n startChat,\n validateAnswer,\n isQuestionCtaDisabled,\n getProgressionSteps\n} from '@coorpacademy/player-store';\nimport {createGetAnswerProps, createGetHelp} from './answer';\nimport createHeaderStateToProps from './header';\nimport getResourcesProps from './resources';\n\nconst ROUTES = ['media', 'clue', 'context', 'answer'];\n\nconst STARS_DIFF = {\n media: 'starsPerResourceViewed',\n clue: 'starsPerAskingClue'\n};\n\nconst playerProps = (options, store) => {\n const createGetAnswerProps_ = createGetAnswerProps(options, store);\n const getResourcesProps_ = getResourcesProps(options, store);\n const createGetHelp_ = createGetHelp(options, store);\n const createHeaderStateToProps_ = createHeaderStateToProps(options, store);\n\n return state => {\n const {translate, services} = options;\n const {dispatch} = store;\n\n const engineConfig = getEngineConfig(state);\n const slide = getCurrentSlide(state);\n const slideContext = get('context', slide);\n const currentContent = getCurrentContent(state);\n const answer = createGetAnswerProps_(state, slide);\n const mediaQuestion = getQuestionMedia(state);\n const clue = getCurrentClue(state) || null;\n const route = getRoute(state);\n const resources = getResourcesProps_(state, slide);\n const help = createGetHelp_(slide);\n const starsDiff = get(STARS_DIFF[route], engineConfig) || 0;\n const clickClueHandler = () => dispatch(selectClue);\n const clickSeeClueHandler = () => dispatch(getClue);\n const clickBackToAnswerHandler = () => dispatch(selectRoute('answer'));\n const clickCTAHandler = () => dispatch(validateAnswer());\n\n const hasClue = get('hasClue', slide);\n const slideLessons = get('lessons', slide);\n\n const notifyNewMedia = !isEmpty(slideLessons) && !hasSeenLesson(state);\n const notifyReviewLesson = !isEmpty(slideLessons) && hasSeenLesson(state);\n\n const contextButton = get('title', slideContext)\n ? [\n {\n title: translate('Context'),\n type: 'context',\n selected: route === 'context',\n onClick: () => {\n return dispatch(selectRoute('context'));\n }\n }\n ]\n : [];\n\n const availableCoaches = getCoaches(state);\n const buttons = [\n ...contextButton,\n {\n title: translate('Question'),\n type: 'question',\n selected: route === 'answer',\n onClick: clickBackToAnswerHandler\n },\n {\n title: translate('Media'),\n type: 'media',\n selected: route === 'media',\n disabled: isEmpty(slideLessons),\n onClick: () => dispatch(selectRoute('media')),\n notify: notifyNewMedia\n },\n {\n title: translate('Clue'),\n type: 'clue',\n selected: route === 'clue',\n disabled: !hasClue,\n onClick: clickClueHandler\n }\n ];\n services?.Coach &&\n buttons.push({\n title: translate('Coach'),\n type: 'coach',\n disabled: availableCoaches === 0,\n onClick: () => dispatch(startChat())\n });\n const headerProps = createHeaderStateToProps_(state);\n\n if (!includes(route, ROUTES)) {\n return {};\n }\n\n const ctaButtonValidate = {\n submitValue: translate('Validate'),\n onClick: clickCTAHandler,\n light: false,\n small: false,\n name: 'validateAnswerCTA',\n secondary: false,\n disabled: isQuestionCtaDisabled(state)\n };\n\n const ctaButtonBackToQuestion = {\n submitValue: translate(route === 'context' ? 'Go to question' : 'Back to question'),\n onClick: clickBackToAnswerHandler,\n light: false,\n small: false,\n name: 'backToQuestionCTA',\n secondary: true,\n disabled: false\n };\n\n return {\n typeClue: route,\n text: clue,\n onClickSeeClue: clickSeeClueHandler,\n question: get('question.header')(slide),\n step: getProgressionSteps(state),\n slideContext,\n backgroundUrl: get('backgroundUrl')(currentContent),\n verticalMargin: 260,\n starsDiff,\n resources,\n cta: route === 'answer' ? ctaButtonValidate : ctaButtonBackToQuestion,\n help,\n answerType: {\n model: answer,\n media: mediaQuestion\n },\n showNewMedia: (isNil(route) || route === 'answer') && notifyNewMedia,\n showReviewLesson: (isNil(route) || route === 'answer') && notifyReviewLesson,\n buttons,\n header: headerProps\n };\n };\n};\n\nexport default playerProps;\n"],"file":"player.js"}
|
|
@@ -25,12 +25,16 @@ var _ava = _interopRequireDefault(require("ava"));
|
|
|
25
25
|
|
|
26
26
|
var _translate = require("@coorpacademy/translate");
|
|
27
27
|
|
|
28
|
+
var _playerServices = require("@coorpacademy/player-services");
|
|
29
|
+
|
|
28
30
|
var _playerStore = require("@coorpacademy/player-store");
|
|
29
31
|
|
|
30
32
|
var _player = _interopRequireDefault(require("../player"));
|
|
31
33
|
|
|
32
34
|
var _header = _interopRequireDefault(require("../header"));
|
|
33
35
|
|
|
36
|
+
var fixtures = _interopRequireWildcard(require("../../../sandbox/fixtures"));
|
|
37
|
+
|
|
34
38
|
var _progressionLearner = _interopRequireDefault(require("./fixtures/progression-learner"));
|
|
35
39
|
|
|
36
40
|
var _plop = _interopRequireDefault(require("./fixtures/slides/plop"));
|
|
@@ -47,12 +51,31 @@ var _qcmDrag = _interopRequireDefault(require("./fixtures/slides/qcm-drag"));
|
|
|
47
51
|
|
|
48
52
|
var _qcmGraphic = _interopRequireDefault(require("./fixtures/slides/qcm-graphic"));
|
|
49
53
|
|
|
54
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
55
|
+
|
|
56
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
57
|
+
|
|
50
58
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
51
59
|
|
|
52
60
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
53
61
|
|
|
62
|
+
const services = {
|
|
63
|
+
Analytics: _playerServices.Analytics,
|
|
64
|
+
Answers: (0, _playerServices.Answers)(fixtures),
|
|
65
|
+
Clues: (0, _playerServices.Clues)(fixtures),
|
|
66
|
+
Coach: _playerServices.Coach,
|
|
67
|
+
Comments: _playerServices.Comments,
|
|
68
|
+
Content: (0, _playerServices.Content)(fixtures),
|
|
69
|
+
ExitNodes: (0, _playerServices.ExitNodes)(fixtures),
|
|
70
|
+
LeaderBoard: _playerServices.LeaderBoard,
|
|
71
|
+
Location: _playerServices.Location,
|
|
72
|
+
Logger: console,
|
|
73
|
+
Progressions: (0, _playerServices.Progressions)(fixtures),
|
|
74
|
+
Recommendations: (0, _playerServices.Recommendations)(fixtures)
|
|
75
|
+
};
|
|
54
76
|
const options = {
|
|
55
|
-
translate: _translate.mockTranslate
|
|
77
|
+
translate: _translate.mockTranslate,
|
|
78
|
+
services
|
|
56
79
|
};
|
|
57
80
|
exports.options = options;
|
|
58
81
|
const store = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/map-state-to-props/test/player.js"],"names":["options","translate","mockTranslate","store","dispatch","createPlayerProps","createHeaderProps","availableSlides","slide","_id","basicSlide","plopSlide","qcmSlide","qcmDragSlide","qcmGraphicSlide","contextSlide","createProgression","contentRef","engine","ref","version","content","type","state","nextContent","lives","livesDisabled","step","current","viewedResources","data","contents","chapter","entities","nonAdaptiveContent","isConditional","adaptiveContent","progressions","basic","plop","qcm","qcmDrag","qcmGraphic","template","templateSlide","context","adaptiveBasic","adaptiveQcm","adaptiveQcmDrag","adaptiveQcmGraphic","adaptiveContext","adaptiveTemplate","isDisabledFor","answer","progressionId","chapterId","chapter_id","ui","route","answers","value","cta","disabled","t","coaches","availableCoaches","props","headerProps","deepEqual","answerType","media","mimeType","url","is","typeClue","question","model","true","onChange","slideContext","undefined","submitValue","buttons","length","title","header","onClick","false","throws","message","plan","action","UI_SELECT_ROUTE","payload","meta","description","selected","foo","onClickSeeClue","progression","resources","showNewMedia","forEach","lessons","showReviewLesson","learnerProgressionStateFixture","total","falsy","createLearnerProgression","check","levelId","level","chapterIds"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {map, get, isEmpty, set, pipe, fromPairs, isFunction, identity, omit} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {UI_SELECT_ROUTE} from '@coorpacademy/player-store';\nimport createPlayer from '../player';\nimport createHeader from '../header';\nimport learnerProgressionStateFixture from './fixtures/progression-learner';\nimport plopSlide from './fixtures/slides/plop';\nimport basicSlide from './fixtures/slides/basic';\nimport contextSlide from './fixtures/slides/with-context';\nimport templateSlide from './fixtures/slides/template';\nimport qcmSlide from './fixtures/slides/qcm';\nimport qcmDragSlide from './fixtures/slides/qcm-drag';\nimport qcmGraphicSlide from './fixtures/slides/qcm-graphic';\n\nexport const options = {translate: mockTranslate};\nexport const store = {dispatch: identity};\nconst createPlayerProps = createPlayer(options, store);\nconst createHeaderProps = createHeader(options, store);\n\nconst availableSlides = pipe(\n map(slide => [slide._id, slide]),\n fromPairs\n)([basicSlide, plopSlide, qcmSlide, qcmDragSlide, qcmGraphicSlide, contextSlide]);\n\nconst createProgression = (slide, contentRef) => ({\n engine: {\n ref: 'microlearning',\n version: '1'\n },\n content: {\n ref: contentRef,\n type: 'chapter'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 1,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nexport const data = {\n contents: {\n chapter: {\n entities: {\n nonAdaptiveContent: {\n _id: 'nonAdaptiveContent',\n isConditional: false\n },\n adaptiveContent: {\n _id: 'adaptiveContent',\n isConditional: true\n }\n }\n },\n slide: {\n entities: availableSlides\n }\n },\n progressions: {\n entities: {\n basic: createProgression(basicSlide, 'nonAdaptiveContent'),\n plop: createProgression(plopSlide, 'nonAdaptiveContent'),\n qcm: createProgression(qcmSlide, 'nonAdaptiveContent'),\n qcmDrag: createProgression(qcmDragSlide, 'nonAdaptiveContent'),\n qcmGraphic: createProgression(qcmGraphicSlide, 'nonAdaptiveContent'),\n template: createProgression(templateSlide, 'nonAdaptiveContent'),\n context: createProgression(contextSlide, 'nonAdaptiveContent'),\n adaptiveBasic: createProgression(basicSlide, 'adaptiveContent'),\n adaptiveQcm: createProgression(qcmSlide, 'adaptiveContent'),\n adaptiveQcmDrag: createProgression(qcmDragSlide, 'adaptiveContent'),\n adaptiveQcmGraphic: createProgression(qcmGraphicSlide, 'adaptiveContent'),\n adaptiveContext: createProgression(contextSlide, 'adaptiveContent'),\n adaptiveTemplate: createProgression(templateSlide, 'adaptiveContent')\n }\n }\n};\n\nconst isDisabledFor = (slide, isConditional, answer) => {\n const progressionId = 'progression';\n const chapterId = 'chapter';\n return createPlayerProps({\n data: {\n contents: {\n slide: {\n entities: {\n [slide._id]: {...slide, chapter_id: chapterId}\n }\n },\n chapter: {\n entities: {\n [chapterId]: {\n _id: chapterId,\n isConditional\n }\n }\n }\n },\n progressions: {\n entities: {\n [progressionId]: createProgression(slide, chapterId)\n }\n }\n },\n ui: {\n route: {[progressionId]: 'answer'},\n current: {progressionId},\n answers: {[progressionId]: {value: answer}}\n }\n }).cta.disabled;\n};\n\ntest('should create player props for basic question and show coaches', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n coaches: {availableCoaches: 1}\n }\n };\n\n const props = createPlayerProps(state);\n const headerProps = createHeaderProps(state);\n\n t.deepEqual(props.answerType.media, {\n _id: '593eb72a187bd18c01283592',\n mimeType: 'image/jpeg',\n type: 'img',\n url: '//static.coorpacademy.com/content/ijoinchanel/en/slides/1B2_Q6/1B2-Q6-canap-v1.jpg'\n });\n t.is(props.typeClue, 'answer');\n t.is(props.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.is(props.answerType.model.type, 'freeText');\n t.true(isFunction(props.answerType.model.onChange));\n t.is(props.slideContext, undefined);\n t.is(props.cta.submitValue, '__Validate');\n t.true(props.cta.disabled);\n\n t.is(props.buttons.length, 4);\n t.is(props.buttons[3].title, '__Coach');\n t.is(props.buttons[3].type, 'coach');\n t.deepEqual(omit('content.onClick', props.header), omit('content.onClick', headerProps));\n t.true(isFunction(props.header.content.onClick));\n});\ntest('should enable the validate button when there is an answer', t => {\n t.true(isDisabledFor(basicSlide, false, []));\n t.false(isDisabledFor(basicSlide, false, ['foo']));\n});\n\ntest('should enable the validate button when there are two answers in an non-adaptive content for all questions', t => {\n const answers = ['foo', 'bar'];\n\n t.false(isDisabledFor(basicSlide, false, answers));\n t.false(isDisabledFor(qcmSlide, false, answers));\n t.false(isDisabledFor(qcmGraphicSlide, false, answers));\n t.false(isDisabledFor(qcmDragSlide, false, answers));\n t.false(isDisabledFor(contextSlide, false, answers));\n t.false(isDisabledFor(templateSlide, false, answers));\n});\n\ntest('should disable the validate button when there are several answers in an adaptive content for qcm questions', t => {\n t.false(isDisabledFor(basicSlide, true, ['foo', 'bar']));\n t.true(isDisabledFor(qcmSlide, true, ['foo', 'bar']));\n t.true(isDisabledFor(qcmGraphicSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(qcmDragSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(contextSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(templateSlide, true, ['foo', 'bar']));\n\n t.false(isDisabledFor(basicSlide, true, ['foo', 'bar', 'baz']));\n t.true(isDisabledFor(qcmSlide, true, ['foo', 'bar', 'baz']));\n t.true(isDisabledFor(qcmGraphicSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(qcmDragSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(contextSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(templateSlide, true, ['foo', 'bar', 'baz']));\n});\n\ntest('should disable the validate button when there the text answer has been deleted', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {basic: {value: ['']}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should return defaut props when slide.question.type is not handles', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'plop'},\n answers: {basic: {value: ['']}}\n }\n };\n\n t.throws(() => createPlayerProps(state), {message: 'plop is not an handled question.type'});\n});\n\ntest('should disable the validate button when no answer is provided', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when a previous selected answer has been unselected', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {basic: {value: []}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when some answer fields are empty', t => {\n const state = {\n data,\n ui: {\n route: {template: 'answer'},\n current: {progressionId: 'template'},\n answers: {template: {value: ['', 'Test']}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when no answer has been selected by user on template question', t => {\n const state = {\n data,\n ui: {\n route: {template: 'answer'},\n current: {progressionId: 'template'}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should display context tab button if slide context is available', t => {\n t.plan(10);\n const state = {\n data,\n ui: {\n route: {context: 'answer'},\n current: {progressionId: 'context'}\n }\n };\n\n const dispatch = action => {\n t.deepEqual(action, {\n type: UI_SELECT_ROUTE,\n payload: 'context',\n meta: {\n progressionId: 'context'\n }\n });\n };\n\n const props = createPlayer(options, {dispatch: action => action(dispatch, () => state)})(state);\n\n t.is(typeof props.slideContext, 'object');\n t.is(props.slideContext.title, 'Some context title');\n t.is(typeof props.slideContext.description, 'string');\n t.is(props.slideContext.description, contextSlide.context.description);\n t.is(props.buttons.length, 5);\n t.is(props.buttons[0].title, '__Context');\n t.is(props.buttons[0].type, 'context');\n t.false(props.buttons[0].selected);\n t.is(typeof props.buttons[0].onClick, 'function');\n\n props.buttons[0].onClick();\n});\n\ntest('should display \"Back to question\" for the cta in the tabs', t => {\n const state = {\n data,\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'media'\n }\n }\n };\n\n const props = createPlayerProps(state);\n\n t.is(props.cta.submitValue, '__Back to question');\n\n state.ui.route.foo = 'clue';\n\n t.is(typeof props.onClickSeeClue, 'function');\n props.onClickSeeClue();\n\n t.is(props.cta.submitValue, '__Back to question');\n});\n\ntest('should display \"Go to question\" for the context tab cta', t => {\n const state = {\n data,\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'context'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.is(props.cta.submitValue, '__Go to question');\n});\n\ntest('should display new media notification when user has not seen any media for the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n resources: ['1234']\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.true(props.showNewMedia);\n});\n\ntest('should display new media notification for the answer/undefined route when user has not seen any media', t => {\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {}\n }\n };\n\n [undefined].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.true(isEmpty(props));\n });\n\n ['media', 'clue', 'context', 'answer'].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.false(isEmpty(props));\n });\n});\n\ntest('should not display new media notification for the other routes when user has not seen any media', t => {\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {}\n }\n };\n\n ['media', 'clue'].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.false(props.showNewMedia);\n });\n});\n\ntest('should not display new media notification when user has seen at least one media of the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: [basicSlide.lessons[0].ref]\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.false(props.showNewMedia);\n});\n\ntest('should display review lesson notification when user has seen at least one media of the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: [basicSlide.lessons[0].ref]\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.true(props.showReviewLesson);\n});\n\ntest('should not display review lesson notification when user has not seen any media for the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: []\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.false(props.showReviewLesson);\n});\n\ntest('should feed step prop in non-adaptive mode', t => {\n const state = set(\n 'data.contents.level.entities.1.info.nbSlides',\n 12,\n learnerProgressionStateFixture\n );\n\n const props = createPlayerProps(state);\n\n t.deepEqual(props.step, {current: 0, total: 12});\n});\n\ntest('should not feed step prop in adaptive mode', t => {\n const state = pipe(\n set('data.contents.level.entities.1.info.nbSlides', 12),\n set('data.contents.chapter.entities.chapter2.isConditional', true)\n )(learnerProgressionStateFixture);\n\n const props = createPlayerProps(state);\n\n t.falsy(props.step);\n});\n\ntest('should not send an id prop in resources', t => {\n const props = createPlayerProps(learnerProgressionStateFixture);\n\n t.is(get('resources.0.id', props), undefined);\n});\n\nconst createLearnerProgression = (slide, contentRef) => ({\n engine: {\n ref: 'learner',\n version: '1'\n },\n content: {\n ref: contentRef,\n type: 'level'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 1,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nconst check = (slide, answer) => {\n const progressionId = 'progression';\n const levelId = 'level';\n const chapterId = 'chapter';\n return createPlayerProps({\n data: {\n contents: {\n slide: {\n entities: {\n [slide._id]: {...slide, chapter_id: chapterId}\n }\n },\n level: {\n entities: {\n [levelId]: {\n ref: levelId,\n chapterIds: [chapterId],\n isConditional: true\n }\n }\n },\n chapter: {\n entities: {\n [chapterId]: {\n _id: chapterId,\n isConditional: false\n }\n }\n }\n },\n progressions: {\n entities: {\n [progressionId]: createLearnerProgression(slide, levelId)\n }\n }\n },\n ui: {\n route: {[progressionId]: 'answer'},\n current: {progressionId},\n answers: {[progressionId]: {value: answer}}\n }\n }).cta.disabled;\n};\n\ntest('should allow multi answers on adaptive level if the current chapter is not adaptive', t => {\n t.true(check(basicSlide, []));\n t.true(check(qcmSlide, []));\n t.true(check(qcmGraphicSlide, []));\n t.true(check(qcmDragSlide, []));\n t.true(check(contextSlide, []));\n t.true(check(templateSlide, []));\n\n t.false(check(basicSlide, ['foo']));\n t.false(check(qcmSlide, ['foo']));\n t.false(check(qcmGraphicSlide, ['foo']));\n t.false(check(qcmDragSlide, ['foo']));\n t.false(check(contextSlide, ['foo']));\n t.false(check(templateSlide, ['foo']));\n\n t.false(check(basicSlide, ['foo', 'bar']));\n t.false(check(qcmSlide, ['foo', 'bar']));\n t.false(check(qcmGraphicSlide, ['foo', 'bar']));\n t.false(check(qcmDragSlide, ['foo', 'bar']));\n t.false(check(contextSlide, ['foo', 'bar']));\n t.false(check(templateSlide, ['foo', 'bar']));\n});\n"],"file":"player.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/map-state-to-props/test/player.js"],"names":["services","Analytics","AnalyticsService","Answers","fixtures","Clues","Coach","CoachService","Comments","CommentsService","Content","ExitNodes","LeaderBoard","LeaderBoardService","Location","LocationService","Logger","console","Progressions","Recommendations","options","translate","mockTranslate","store","dispatch","createPlayerProps","createHeaderProps","availableSlides","slide","_id","basicSlide","plopSlide","qcmSlide","qcmDragSlide","qcmGraphicSlide","contextSlide","createProgression","contentRef","engine","ref","version","content","type","state","nextContent","lives","livesDisabled","step","current","viewedResources","data","contents","chapter","entities","nonAdaptiveContent","isConditional","adaptiveContent","progressions","basic","plop","qcm","qcmDrag","qcmGraphic","template","templateSlide","context","adaptiveBasic","adaptiveQcm","adaptiveQcmDrag","adaptiveQcmGraphic","adaptiveContext","adaptiveTemplate","isDisabledFor","answer","progressionId","chapterId","chapter_id","ui","route","answers","value","cta","disabled","t","coaches","availableCoaches","props","headerProps","deepEqual","answerType","media","mimeType","url","is","typeClue","question","model","true","onChange","slideContext","undefined","submitValue","buttons","length","title","header","onClick","false","throws","message","plan","action","UI_SELECT_ROUTE","payload","meta","description","selected","foo","onClickSeeClue","progression","resources","showNewMedia","forEach","lessons","showReviewLesson","learnerProgressionStateFixture","total","falsy","createLearnerProgression","check","levelId","level","chapterIds"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {map, get, isEmpty, set, pipe, fromPairs, isFunction, identity, omit} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {\n Analytics as AnalyticsService,\n Answers as AnswersService,\n Clues as CluesService,\n Coach as CoachService,\n Comments as CommentsService,\n Content as ContentService,\n ExitNodes as ExitNodesService,\n LeaderBoard as LeaderBoardService,\n Location as LocationService,\n Progressions as ProgressionsService,\n Recommendations as RecommendationsService\n} from '@coorpacademy/player-services';\nimport {UI_SELECT_ROUTE} from '@coorpacademy/player-store';\nimport createPlayer from '../player';\nimport createHeader from '../header';\nimport * as fixtures from '../../../sandbox/fixtures';\nimport learnerProgressionStateFixture from './fixtures/progression-learner';\nimport plopSlide from './fixtures/slides/plop';\nimport basicSlide from './fixtures/slides/basic';\nimport contextSlide from './fixtures/slides/with-context';\nimport templateSlide from './fixtures/slides/template';\nimport qcmSlide from './fixtures/slides/qcm';\nimport qcmDragSlide from './fixtures/slides/qcm-drag';\nimport qcmGraphicSlide from './fixtures/slides/qcm-graphic';\n\nconst services = {\n Analytics: AnalyticsService,\n Answers: AnswersService(fixtures),\n Clues: CluesService(fixtures),\n Coach: CoachService,\n Comments: CommentsService,\n Content: ContentService(fixtures),\n ExitNodes: ExitNodesService(fixtures),\n LeaderBoard: LeaderBoardService,\n Location: LocationService,\n Logger: console,\n Progressions: ProgressionsService(fixtures),\n Recommendations: RecommendationsService(fixtures)\n};\n\nexport const options = {translate: mockTranslate, services};\nexport const store = {dispatch: identity};\nconst createPlayerProps = createPlayer(options, store);\nconst createHeaderProps = createHeader(options, store);\n\nconst availableSlides = pipe(\n map(slide => [slide._id, slide]),\n fromPairs\n)([basicSlide, plopSlide, qcmSlide, qcmDragSlide, qcmGraphicSlide, contextSlide]);\n\nconst createProgression = (slide, contentRef) => ({\n engine: {\n ref: 'microlearning',\n version: '1'\n },\n content: {\n ref: contentRef,\n type: 'chapter'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 1,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nexport const data = {\n contents: {\n chapter: {\n entities: {\n nonAdaptiveContent: {\n _id: 'nonAdaptiveContent',\n isConditional: false\n },\n adaptiveContent: {\n _id: 'adaptiveContent',\n isConditional: true\n }\n }\n },\n slide: {\n entities: availableSlides\n }\n },\n progressions: {\n entities: {\n basic: createProgression(basicSlide, 'nonAdaptiveContent'),\n plop: createProgression(plopSlide, 'nonAdaptiveContent'),\n qcm: createProgression(qcmSlide, 'nonAdaptiveContent'),\n qcmDrag: createProgression(qcmDragSlide, 'nonAdaptiveContent'),\n qcmGraphic: createProgression(qcmGraphicSlide, 'nonAdaptiveContent'),\n template: createProgression(templateSlide, 'nonAdaptiveContent'),\n context: createProgression(contextSlide, 'nonAdaptiveContent'),\n adaptiveBasic: createProgression(basicSlide, 'adaptiveContent'),\n adaptiveQcm: createProgression(qcmSlide, 'adaptiveContent'),\n adaptiveQcmDrag: createProgression(qcmDragSlide, 'adaptiveContent'),\n adaptiveQcmGraphic: createProgression(qcmGraphicSlide, 'adaptiveContent'),\n adaptiveContext: createProgression(contextSlide, 'adaptiveContent'),\n adaptiveTemplate: createProgression(templateSlide, 'adaptiveContent')\n }\n }\n};\n\nconst isDisabledFor = (slide, isConditional, answer) => {\n const progressionId = 'progression';\n const chapterId = 'chapter';\n return createPlayerProps({\n data: {\n contents: {\n slide: {\n entities: {\n [slide._id]: {...slide, chapter_id: chapterId}\n }\n },\n chapter: {\n entities: {\n [chapterId]: {\n _id: chapterId,\n isConditional\n }\n }\n }\n },\n progressions: {\n entities: {\n [progressionId]: createProgression(slide, chapterId)\n }\n }\n },\n ui: {\n route: {[progressionId]: 'answer'},\n current: {progressionId},\n answers: {[progressionId]: {value: answer}}\n }\n }).cta.disabled;\n};\n\ntest('should create player props for basic question and show coaches', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n coaches: {availableCoaches: 1}\n }\n };\n\n const props = createPlayerProps(state);\n const headerProps = createHeaderProps(state);\n\n t.deepEqual(props.answerType.media, {\n _id: '593eb72a187bd18c01283592',\n mimeType: 'image/jpeg',\n type: 'img',\n url: '//static.coorpacademy.com/content/ijoinchanel/en/slides/1B2_Q6/1B2-Q6-canap-v1.jpg'\n });\n t.is(props.typeClue, 'answer');\n t.is(props.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.is(props.answerType.model.type, 'freeText');\n t.true(isFunction(props.answerType.model.onChange));\n t.is(props.slideContext, undefined);\n t.is(props.cta.submitValue, '__Validate');\n t.true(props.cta.disabled);\n\n t.is(props.buttons.length, 4);\n t.is(props.buttons[3].title, '__Coach');\n t.is(props.buttons[3].type, 'coach');\n t.deepEqual(omit('content.onClick', props.header), omit('content.onClick', headerProps));\n t.true(isFunction(props.header.content.onClick));\n});\ntest('should enable the validate button when there is an answer', t => {\n t.true(isDisabledFor(basicSlide, false, []));\n t.false(isDisabledFor(basicSlide, false, ['foo']));\n});\n\ntest('should enable the validate button when there are two answers in an non-adaptive content for all questions', t => {\n const answers = ['foo', 'bar'];\n\n t.false(isDisabledFor(basicSlide, false, answers));\n t.false(isDisabledFor(qcmSlide, false, answers));\n t.false(isDisabledFor(qcmGraphicSlide, false, answers));\n t.false(isDisabledFor(qcmDragSlide, false, answers));\n t.false(isDisabledFor(contextSlide, false, answers));\n t.false(isDisabledFor(templateSlide, false, answers));\n});\n\ntest('should disable the validate button when there are several answers in an adaptive content for qcm questions', t => {\n t.false(isDisabledFor(basicSlide, true, ['foo', 'bar']));\n t.true(isDisabledFor(qcmSlide, true, ['foo', 'bar']));\n t.true(isDisabledFor(qcmGraphicSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(qcmDragSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(contextSlide, true, ['foo', 'bar']));\n t.false(isDisabledFor(templateSlide, true, ['foo', 'bar']));\n\n t.false(isDisabledFor(basicSlide, true, ['foo', 'bar', 'baz']));\n t.true(isDisabledFor(qcmSlide, true, ['foo', 'bar', 'baz']));\n t.true(isDisabledFor(qcmGraphicSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(qcmDragSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(contextSlide, true, ['foo', 'bar', 'baz']));\n t.false(isDisabledFor(templateSlide, true, ['foo', 'bar', 'baz']));\n});\n\ntest('should disable the validate button when there the text answer has been deleted', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {basic: {value: ['']}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should return defaut props when slide.question.type is not handles', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'plop'},\n answers: {basic: {value: ['']}}\n }\n };\n\n t.throws(() => createPlayerProps(state), {message: 'plop is not an handled question.type'});\n});\n\ntest('should disable the validate button when no answer is provided', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when a previous selected answer has been unselected', t => {\n const state = {\n data,\n ui: {\n route: {basic: 'answer'},\n current: {progressionId: 'basic'},\n answers: {basic: {value: []}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when some answer fields are empty', t => {\n const state = {\n data,\n ui: {\n route: {template: 'answer'},\n current: {progressionId: 'template'},\n answers: {template: {value: ['', 'Test']}}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should disable the validate button when no answer has been selected by user on template question', t => {\n const state = {\n data,\n ui: {\n route: {template: 'answer'},\n current: {progressionId: 'template'}\n }\n };\n\n const props = createPlayerProps(state);\n\n t.true(props.cta.disabled);\n});\n\ntest('should display context tab button if slide context is available', t => {\n t.plan(10);\n const state = {\n data,\n ui: {\n route: {context: 'answer'},\n current: {progressionId: 'context'}\n }\n };\n\n const dispatch = action => {\n t.deepEqual(action, {\n type: UI_SELECT_ROUTE,\n payload: 'context',\n meta: {\n progressionId: 'context'\n }\n });\n };\n\n const props = createPlayer(options, {dispatch: action => action(dispatch, () => state)})(state);\n\n t.is(typeof props.slideContext, 'object');\n t.is(props.slideContext.title, 'Some context title');\n t.is(typeof props.slideContext.description, 'string');\n t.is(props.slideContext.description, contextSlide.context.description);\n t.is(props.buttons.length, 5);\n t.is(props.buttons[0].title, '__Context');\n t.is(props.buttons[0].type, 'context');\n t.false(props.buttons[0].selected);\n t.is(typeof props.buttons[0].onClick, 'function');\n\n props.buttons[0].onClick();\n});\n\ntest('should display \"Back to question\" for the cta in the tabs', t => {\n const state = {\n data,\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'media'\n }\n }\n };\n\n const props = createPlayerProps(state);\n\n t.is(props.cta.submitValue, '__Back to question');\n\n state.ui.route.foo = 'clue';\n\n t.is(typeof props.onClickSeeClue, 'function');\n props.onClickSeeClue();\n\n t.is(props.cta.submitValue, '__Back to question');\n});\n\ntest('should display \"Go to question\" for the context tab cta', t => {\n const state = {\n data,\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'context'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.is(props.cta.submitValue, '__Go to question');\n});\n\ntest('should display new media notification when user has not seen any media for the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n resources: ['1234']\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.true(props.showNewMedia);\n});\n\ntest('should display new media notification for the answer/undefined route when user has not seen any media', t => {\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {}\n }\n };\n\n [undefined].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.true(isEmpty(props));\n });\n\n ['media', 'clue', 'context', 'answer'].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.false(isEmpty(props));\n });\n});\n\ntest('should not display new media notification for the other routes when user has not seen any media', t => {\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {}\n }\n };\n\n ['media', 'clue'].forEach(route => {\n const props = createPlayerProps(set('ui.route.basic', route, state));\n t.false(props.showNewMedia);\n });\n});\n\ntest('should not display new media notification when user has seen at least one media of the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: [basicSlide.lessons[0].ref]\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.false(props.showNewMedia);\n});\n\ntest('should display review lesson notification when user has seen at least one media of the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: [basicSlide.lessons[0].ref]\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.true(props.showReviewLesson);\n});\n\ntest('should not display review lesson notification when user has not seen any media for the current slide', t => {\n const progression = createProgression(basicSlide);\n progression.state.viewedResources = [\n {\n type: 'chapter',\n ref: basicSlide.chapter_id,\n resources: []\n }\n ];\n const state = {\n data: {\n contents: data.contents,\n progressions: {\n entities: {\n basic: progression\n }\n }\n },\n ui: {\n current: {progressionId: 'basic'},\n route: {\n basic: 'answer'\n }\n }\n };\n\n const props = createPlayerProps(state);\n t.false(props.showReviewLesson);\n});\n\ntest('should feed step prop in non-adaptive mode', t => {\n const state = set(\n 'data.contents.level.entities.1.info.nbSlides',\n 12,\n learnerProgressionStateFixture\n );\n\n const props = createPlayerProps(state);\n\n t.deepEqual(props.step, {current: 0, total: 12});\n});\n\ntest('should not feed step prop in adaptive mode', t => {\n const state = pipe(\n set('data.contents.level.entities.1.info.nbSlides', 12),\n set('data.contents.chapter.entities.chapter2.isConditional', true)\n )(learnerProgressionStateFixture);\n\n const props = createPlayerProps(state);\n\n t.falsy(props.step);\n});\n\ntest('should not send an id prop in resources', t => {\n const props = createPlayerProps(learnerProgressionStateFixture);\n\n t.is(get('resources.0.id', props), undefined);\n});\n\nconst createLearnerProgression = (slide, contentRef) => ({\n engine: {\n ref: 'learner',\n version: '1'\n },\n content: {\n ref: contentRef,\n type: 'level'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 1,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nconst check = (slide, answer) => {\n const progressionId = 'progression';\n const levelId = 'level';\n const chapterId = 'chapter';\n return createPlayerProps({\n data: {\n contents: {\n slide: {\n entities: {\n [slide._id]: {...slide, chapter_id: chapterId}\n }\n },\n level: {\n entities: {\n [levelId]: {\n ref: levelId,\n chapterIds: [chapterId],\n isConditional: true\n }\n }\n },\n chapter: {\n entities: {\n [chapterId]: {\n _id: chapterId,\n isConditional: false\n }\n }\n }\n },\n progressions: {\n entities: {\n [progressionId]: createLearnerProgression(slide, levelId)\n }\n }\n },\n ui: {\n route: {[progressionId]: 'answer'},\n current: {progressionId},\n answers: {[progressionId]: {value: answer}}\n }\n }).cta.disabled;\n};\n\ntest('should allow multi answers on adaptive level if the current chapter is not adaptive', t => {\n t.true(check(basicSlide, []));\n t.true(check(qcmSlide, []));\n t.true(check(qcmGraphicSlide, []));\n t.true(check(qcmDragSlide, []));\n t.true(check(contextSlide, []));\n t.true(check(templateSlide, []));\n\n t.false(check(basicSlide, ['foo']));\n t.false(check(qcmSlide, ['foo']));\n t.false(check(qcmGraphicSlide, ['foo']));\n t.false(check(qcmDragSlide, ['foo']));\n t.false(check(contextSlide, ['foo']));\n t.false(check(templateSlide, ['foo']));\n\n t.false(check(basicSlide, ['foo', 'bar']));\n t.false(check(qcmSlide, ['foo', 'bar']));\n t.false(check(qcmGraphicSlide, ['foo', 'bar']));\n t.false(check(qcmDragSlide, ['foo', 'bar']));\n t.false(check(contextSlide, ['foo', 'bar']));\n t.false(check(templateSlide, ['foo', 'bar']));\n});\n"],"file":"player.js"}
|
package/lib/views/test/slide.js
CHANGED
|
@@ -12,6 +12,8 @@ var _ava = _interopRequireDefault(require("ava"));
|
|
|
12
12
|
|
|
13
13
|
var _translate = require("@coorpacademy/translate");
|
|
14
14
|
|
|
15
|
+
var _playerServices = require("@coorpacademy/player-services");
|
|
16
|
+
|
|
15
17
|
var _progressionState = _interopRequireDefault(require("../../map-state-to-props/test/fixtures/progression-state"));
|
|
16
18
|
|
|
17
19
|
var _progressionLearner = _interopRequireDefault(require("../../map-state-to-props/test/fixtures/progression-learner"));
|
|
@@ -26,14 +28,35 @@ var _clue = _interopRequireDefault(require("../../map-state-to-props/test/fixtur
|
|
|
26
28
|
|
|
27
29
|
var _loadingClue = _interopRequireDefault(require("../../map-state-to-props/test/fixtures/player/loading-clue"));
|
|
28
30
|
|
|
31
|
+
var fixtures = _interopRequireWildcard(require("../../../sandbox/fixtures"));
|
|
32
|
+
|
|
29
33
|
var _stateToVnode = _interopRequireDefault(require("./helpers/state-to-vnode"));
|
|
30
34
|
|
|
31
35
|
var _render = _interopRequireDefault(require("./helpers/render"));
|
|
32
36
|
|
|
37
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
38
|
+
|
|
39
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
40
|
+
|
|
33
41
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
34
42
|
|
|
43
|
+
const services = {
|
|
44
|
+
Analytics: _playerServices.Analytics,
|
|
45
|
+
Answers: (0, _playerServices.Answers)(fixtures),
|
|
46
|
+
Clues: (0, _playerServices.Clues)(fixtures),
|
|
47
|
+
Coach: _playerServices.Coach,
|
|
48
|
+
Comments: _playerServices.Comments,
|
|
49
|
+
Content: (0, _playerServices.Content)(fixtures),
|
|
50
|
+
ExitNodes: (0, _playerServices.ExitNodes)(fixtures),
|
|
51
|
+
LeaderBoard: _playerServices.LeaderBoard,
|
|
52
|
+
Location: _playerServices.Location,
|
|
53
|
+
Logger: console,
|
|
54
|
+
Progressions: (0, _playerServices.Progressions)(fixtures),
|
|
55
|
+
Recommendations: (0, _playerServices.Recommendations)(fixtures)
|
|
56
|
+
};
|
|
35
57
|
const options = {
|
|
36
|
-
translate: _translate.mockTranslate
|
|
58
|
+
translate: _translate.mockTranslate,
|
|
59
|
+
services
|
|
37
60
|
};
|
|
38
61
|
const store = {
|
|
39
62
|
dispatch: _identity2.default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/test/slide.js"],"names":["options","translate","mockTranslate","store","dispatch","mapStateToVNode","t","vNode","microlearningHeader","props","player","header","headerProps","is","type","content","title","subcontent","deepEqual","lives","count","onClick","true","actionOnClick","learnerHeader","details","state","stateSlide","playerProps","typeClue","text","step","current","total","question","cta","submitValue","disabled","name","light","small","secondary","notThrows","help","truthy","answerType","buttons","selected","notify","showNewMedia","showReviewLesson","Promise","all","button","stateSlideNoLessons","stateLoadingClue","stateClue","stateNoClue"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {identity, map, omit, isFunction} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport microlearningHeader from '../../map-state-to-props/test/fixtures/progression-state';\nimport learnerHeader from '../../map-state-to-props/test/fixtures/progression-learner';\nimport stateSlide from '../../map-state-to-props/test/fixtures/player/slide';\nimport stateSlideNoLessons from '../../map-state-to-props/test/fixtures/player/slide-no-lessons';\nimport stateNoClue from '../../map-state-to-props/test/fixtures/player/no-clue';\nimport stateClue from '../../map-state-to-props/test/fixtures/player/clue';\nimport stateLoadingClue from '../../map-state-to-props/test/fixtures/player/loading-clue';\nimport stateToVNode from './helpers/state-to-vnode';\nimport testRendering from './helpers/render';\n\nconst options = {translate: mockTranslate};\nconst store = {dispatch: identity};\nconst mapStateToVNode = stateToVNode(options, store);\n\ntest('should display microlearning header', t => {\n const vNode = mapStateToVNode(microlearningHeader);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n t.is(headerProps.type, 'microlearning');\n t.is(headerProps.content.title, 'Les réseaux sociaux au service du crowdfunding');\n t.is(headerProps.subcontent, null);\n t.deepEqual(headerProps.lives, {count: 3});\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display learner header with chapter num', t => {\n const vNode = mapStateToVNode(learnerHeader);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n\n t.is(headerProps.type, 'learner');\n t.is(headerProps.content.title, 'level1');\n t.is(headerProps.content.details, 'base-translation');\n t.is(headerProps.subcontent.title, 'chapter2!');\n t.is(headerProps.subcontent.details, '2/2');\n t.deepEqual(headerProps.lives, {count: 3});\n\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display learner header with no chapter nums', t => {\n const state = omit('data.contents.level.entities.1.chapterIds', learnerHeader);\n\n const vNode = mapStateToVNode(state);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n\n t.is(headerProps.type, 'learner');\n t.is(headerProps.content.title, 'level1');\n t.is(headerProps.content.details, 'base-translation');\n t.is(headerProps.subcontent.title, 'chapter2!');\n t.is(headerProps.subcontent.details, null);\n t.deepEqual(headerProps.lives, {count: 3});\n\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display slide', async t => {\n const vNode = mapStateToVNode(stateSlide);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'answer');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Validate',\n disabled: true,\n name: 'validateAnswerCTA',\n light: false,\n small: false,\n secondary: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n t.is(playerProps.showNewMedia, true);\n t.is(playerProps.showReviewLesson, false);\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should disable lesson button if slide has no lessons', async t => {\n const vNode = mapStateToVNode(stateSlideNoLessons);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'answer');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Validate',\n disabled: true,\n name: 'validateAnswerCTA',\n light: false,\n small: false,\n secondary: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: false,\n disabled: true,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n t.is(playerProps.showNewMedia, false);\n t.is(playerProps.showReviewLesson, false);\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should display loading clue', async t => {\n const vNode = mapStateToVNode(stateLoadingClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'clue');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 1, total: 1});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Back to question',\n name: 'backToQuestionCTA',\n light: false,\n small: false,\n secondary: true,\n disabled: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: false\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: true,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should display clue', async t => {\n const vNode = mapStateToVNode(stateClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'clue');\n t.is(playerProps.text, 'Clue');\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Back to question',\n name: 'backToQuestionCTA',\n light: false,\n small: false,\n secondary: true,\n disabled: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: false\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: true,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should disable clue button if slide has no clue', t => {\n const vNode = mapStateToVNode(stateNoClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: true\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n"],"file":"slide.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/test/slide.js"],"names":["services","Analytics","AnalyticsService","Answers","fixtures","Clues","Coach","CoachService","Comments","CommentsService","Content","ExitNodes","LeaderBoard","LeaderBoardService","Location","LocationService","Logger","console","Progressions","Recommendations","options","translate","mockTranslate","store","dispatch","mapStateToVNode","t","vNode","microlearningHeader","props","player","header","headerProps","is","type","content","title","subcontent","deepEqual","lives","count","onClick","true","actionOnClick","learnerHeader","details","state","stateSlide","playerProps","typeClue","text","step","current","total","question","cta","submitValue","disabled","name","light","small","secondary","notThrows","help","truthy","answerType","buttons","selected","notify","showNewMedia","showReviewLesson","Promise","all","button","stateSlideNoLessons","stateLoadingClue","stateClue","stateNoClue"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {identity, map, omit, isFunction} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {\n Analytics as AnalyticsService,\n Answers as AnswersService,\n Clues as CluesService,\n Coach as CoachService,\n Comments as CommentsService,\n Content as ContentService,\n ExitNodes as ExitNodesService,\n LeaderBoard as LeaderBoardService,\n Location as LocationService,\n Progressions as ProgressionsService,\n Recommendations as RecommendationsService\n} from '@coorpacademy/player-services';\nimport microlearningHeader from '../../map-state-to-props/test/fixtures/progression-state';\nimport learnerHeader from '../../map-state-to-props/test/fixtures/progression-learner';\nimport stateSlide from '../../map-state-to-props/test/fixtures/player/slide';\nimport stateSlideNoLessons from '../../map-state-to-props/test/fixtures/player/slide-no-lessons';\nimport stateNoClue from '../../map-state-to-props/test/fixtures/player/no-clue';\nimport stateClue from '../../map-state-to-props/test/fixtures/player/clue';\nimport stateLoadingClue from '../../map-state-to-props/test/fixtures/player/loading-clue';\nimport * as fixtures from '../../../sandbox/fixtures';\nimport stateToVNode from './helpers/state-to-vnode';\nimport testRendering from './helpers/render';\n\nconst services = {\n Analytics: AnalyticsService,\n Answers: AnswersService(fixtures),\n Clues: CluesService(fixtures),\n Coach: CoachService,\n Comments: CommentsService,\n Content: ContentService(fixtures),\n ExitNodes: ExitNodesService(fixtures),\n LeaderBoard: LeaderBoardService,\n Location: LocationService,\n Logger: console,\n Progressions: ProgressionsService(fixtures),\n Recommendations: RecommendationsService(fixtures)\n};\n\nconst options = {translate: mockTranslate, services};\nconst store = {dispatch: identity};\nconst mapStateToVNode = stateToVNode(options, store);\n\ntest('should display microlearning header', t => {\n const vNode = mapStateToVNode(microlearningHeader);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n t.is(headerProps.type, 'microlearning');\n t.is(headerProps.content.title, 'Les réseaux sociaux au service du crowdfunding');\n t.is(headerProps.subcontent, null);\n t.deepEqual(headerProps.lives, {count: 3});\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display learner header with chapter num', t => {\n const vNode = mapStateToVNode(learnerHeader);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n\n t.is(headerProps.type, 'learner');\n t.is(headerProps.content.title, 'level1');\n t.is(headerProps.content.details, 'base-translation');\n t.is(headerProps.subcontent.title, 'chapter2!');\n t.is(headerProps.subcontent.details, '2/2');\n t.deepEqual(headerProps.lives, {count: 3});\n\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display learner header with no chapter nums', t => {\n const state = omit('data.contents.level.entities.1.chapterIds', learnerHeader);\n\n const vNode = mapStateToVNode(state);\n testRendering(vNode);\n const {\n props: {\n player: {header: headerProps}\n }\n } = vNode;\n\n t.is(headerProps.type, 'learner');\n t.is(headerProps.content.title, 'level1');\n t.is(headerProps.content.details, 'base-translation');\n t.is(headerProps.subcontent.title, 'chapter2!');\n t.is(headerProps.subcontent.details, null);\n t.deepEqual(headerProps.lives, {count: 3});\n\n const onClick = headerProps.content.onClick;\n t.true(isFunction(onClick));\n const actionOnClick = onClick();\n t.true(isFunction(actionOnClick));\n});\n\ntest('should display slide', async t => {\n const vNode = mapStateToVNode(stateSlide);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'answer');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Validate',\n disabled: true,\n name: 'validateAnswerCTA',\n light: false,\n small: false,\n secondary: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n t.is(playerProps.showNewMedia, true);\n t.is(playerProps.showReviewLesson, false);\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should disable lesson button if slide has no lessons', async t => {\n const vNode = mapStateToVNode(stateSlideNoLessons);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'answer');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Validate',\n disabled: true,\n name: 'validateAnswerCTA',\n light: false,\n small: false,\n secondary: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: false,\n disabled: true,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n t.is(playerProps.showNewMedia, false);\n t.is(playerProps.showReviewLesson, false);\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should display loading clue', async t => {\n const vNode = mapStateToVNode(stateLoadingClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'clue');\n t.is(playerProps.text, null);\n\n t.deepEqual(playerProps.step, {current: 1, total: 1});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Back to question',\n name: 'backToQuestionCTA',\n light: false,\n small: false,\n secondary: true,\n disabled: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: false\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: true,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should display clue', async t => {\n const vNode = mapStateToVNode(stateClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.is(playerProps.typeClue, 'clue');\n t.is(playerProps.text, 'Clue');\n\n t.deepEqual(playerProps.step, {current: 2, total: 4});\n\n t.is(playerProps.question, \"Écrivez le mot Text dans l'input.\\n\");\n t.deepEqual(omit('onClick', playerProps.cta), {\n submitValue: '__Back to question',\n name: 'backToQuestionCTA',\n light: false,\n small: false,\n secondary: true,\n disabled: false\n });\n await t.notThrows(playerProps.cta.onClick);\n t.is(playerProps.help, 'Saisissez votre réponse.');\n t.truthy(playerProps.answerType);\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: false\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: true,\n disabled: false\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n\ntest('should disable clue button if slide has no clue', t => {\n const vNode = mapStateToVNode(stateNoClue);\n testRendering(vNode);\n const {\n props: {player: playerProps}\n } = vNode;\n\n t.deepEqual(map(omit('onClick'), playerProps.buttons), [\n {\n title: '__Question',\n type: 'question',\n selected: true\n },\n {\n notify: true,\n disabled: false,\n title: '__Media',\n type: 'media',\n selected: false\n },\n {\n title: '__Clue',\n type: 'clue',\n selected: false,\n disabled: true\n },\n {\n disabled: true,\n title: '__Coach',\n type: 'coach'\n }\n ]);\n\n return Promise.all(map(button => t.notThrows(button.onClick), playerProps.buttons));\n});\n"],"file":"slide.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/player-web",
|
|
3
|
-
"version": "3.19.
|
|
3
|
+
"version": "3.19.6",
|
|
4
4
|
"description": "CoorpAcademy web slide-player",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"react-dom": "^17.0.2"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@coorpacademy/components": "10.22.
|
|
63
|
+
"@coorpacademy/components": "10.22.6",
|
|
64
64
|
"@coorpacademy/player-services": "5.2.16",
|
|
65
65
|
"@coorpacademy/player-store": "4.2.18",
|
|
66
66
|
"@coorpacademy/progression-engine": "11.4.1",
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"@coorpacademy/webpack-config": "10.0.4",
|
|
70
70
|
"lodash": "^4.17.21"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "7ed739615f01990def6f580f218801b59ab4e00b"
|
|
73
73
|
}
|