@coorpacademy/player-web 3.13.121-alpha.1 → 3.13.123

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.
@@ -89,15 +89,17 @@ const summaryHeader = ({
89
89
  count
90
90
  } = getLives(state);
91
91
  const lives = hide ? null : count;
92
- const successCta = {
92
+ let successCta = {
93
93
  title: translate('Back to home'),
94
- href: '/'
94
+ onClick: () => dispatch(exit)
95
95
  };
96
96
  const redirection = getRedirectURLAfterEnd(state);
97
97
 
98
98
  if (redirection) {
99
- successCta.href = redirection;
100
- successCta.title = translate('Click to continue');
99
+ successCta = {
100
+ title: translate('Click to continue'),
101
+ href: redirection
102
+ };
101
103
  }
102
104
 
103
105
  if (isCurrentEngineLearner(state) && !redirection) {
@@ -107,12 +109,11 @@ const summaryHeader = ({
107
109
  const _nextLevel = getNextContent(state);
108
110
 
109
111
  if (_nextLevel) {
110
- successCta.title = translate('Next level');
111
- successCta.href = null;
112
-
113
- successCta.onClick = () => dispatch(nextLevel);
114
-
115
- successCta.showNextLevel = true;
112
+ successCta = {
113
+ title: translate('Next level'),
114
+ onClick: () => dispatch(nextLevel),
115
+ showNextLevel: true
116
+ };
116
117
  }
117
118
  }
118
119
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/map-state-to-props/popin-end.js"],"names":["editComment","exit","getBestScore","getCurrentContent","getCurrentExitNode","getCurrentProgression","getCurrentProgressionId","getEndRank","getLives","getNextContent","getRecommendations","getStartRank","isCommentSent","isCurrentEngineLearner","isCurrentEngineMicrolearning","nextLevel","openRecommendation","postComment","retry","seeComment","getRedirectURLAfterEnd","headerProps","extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","edition","title","value","postDisabled","onChange","target","onPost","ctaForFail","redirection","href","summaryHeader","hide","count","lives","successCta","level","_nextLevel","showNextLevel","type","subtitle","failed","rank","cta","extractRecommendation","_recommendations","hasRecommendations","recommendations","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","summary","action","feedback"],"mappings":"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","sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n};\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader = ({translate}, {dispatch}) => state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n const successCta = {\n title: translate('Back to home'),\n href: '/'\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta.href = redirection;\n successCta.title = translate('Click to continue');\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta.title = translate('Next level');\n successCta.href = null;\n successCta.onClick = () => dispatch(nextLevel);\n successCta.showNextLevel = true;\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n};\n\nconst extractRecommendation = ({translate}, {dispatch}) => state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n};\n\nconst extractAction = ({translate}, {dispatch}) => state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n};\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"file":"popin-end.js"}
1
+ {"version":3,"sources":["../../src/map-state-to-props/popin-end.js"],"names":["editComment","exit","getBestScore","getCurrentContent","getCurrentExitNode","getCurrentProgression","getCurrentProgressionId","getEndRank","getLives","getNextContent","getRecommendations","getStartRank","isCommentSent","isCurrentEngineLearner","isCurrentEngineMicrolearning","nextLevel","openRecommendation","postComment","retry","seeComment","getRedirectURLAfterEnd","headerProps","extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","edition","title","value","postDisabled","onChange","target","onPost","ctaForFail","redirection","href","summaryHeader","hide","count","lives","successCta","level","_nextLevel","showNextLevel","type","subtitle","failed","rank","cta","extractRecommendation","_recommendations","hasRecommendations","recommendations","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","summary","action","feedback"],"mappings":"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","sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n};\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader = ({translate}, {dispatch}) => state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n let successCta = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta = {\n title: translate('Click to continue'),\n href: redirection\n };\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta = {\n title: translate('Next level'),\n onClick: () => dispatch(nextLevel),\n showNextLevel: true\n };\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n};\n\nconst extractRecommendation = ({translate}, {dispatch}) => state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n};\n\nconst extractAction = ({translate}, {dispatch}) => state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n};\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"file":"popin-end.js"}
@@ -155,7 +155,7 @@ test("livesDisabled == true ---> should not see lives and 'You are out of lives!
155
155
  t.is(props.summary.header.subtitle, '__Nice try!');
156
156
  t.is(props.summary.header.lives, null);
157
157
  });
158
- test('should create a "Back to Home" CTA after success on learner progression with coach content', t => {
158
+ test('should create a "Back to Home" CTA after success on learner progression with coach content', async t => {
159
159
  const state = _pipe(_set(['data', 'contents', 'level', 'entities', '1.B', 'level'], 'coach'), _set('data.nextContent.entities.idProgression1234', null))(popinLearnerSuccess);
160
160
 
161
161
  const dispatch = createDispatch(state);
@@ -168,11 +168,11 @@ test('should create a "Back to Home" CTA after success on learner progression wi
168
168
  t.is(header.type, 'popinEnd');
169
169
  const cta = header.cta;
170
170
  t.is(cta.title, '__Back to home');
171
- t.falsy(cta.onClick);
172
- t.is(cta.href, '/');
171
+ t.deepEqual(_map('type')(await cta.onClick()), ['@@location/EXIT_REQUEST', '@@location/EXIT_FAILURE']);
172
+ t.falsy(cta.href);
173
173
  t.falsy(props.summary.action);
174
174
  });
175
- test('should create a "Back to Home" CTA after success on learner progression with content with only base level', t => {
175
+ test('should create a "Back to Home" CTA after success on learner progression with content with only base level', async t => {
176
176
  const state = _set(['data', 'nextContent', 'entities', 'idProgression1234'], null, popinLearnerSuccess);
177
177
 
178
178
  const dispatch = createDispatch(state);
@@ -185,8 +185,8 @@ test('should create a "Back to Home" CTA after success on learner progression wi
185
185
  t.is(header.type, 'popinEnd');
186
186
  const cta = header.cta;
187
187
  t.is(cta.title, '__Back to home');
188
- t.falsy(cta.onClick);
189
- t.is(cta.href, '/');
188
+ t.deepEqual(_map('type')(await cta.onClick()), ['@@location/EXIT_REQUEST', '@@location/EXIT_FAILURE']);
189
+ t.falsy(cta.href);
190
190
  });
191
191
  test('should create a "Retry Level" CTA after failure on learner progression', t => {
192
192
  const dispatch = createDispatch(popinLearnerFailure);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/map-state-to-props/test/popin-end.js"],"names":["test","mockTranslate","getCurrentProgressionId","LOCATION_NEXT_CONTENT_REQUEST","LOCATION_NEXT_CONTENT_SUCCESS","LOCATION_OPEN_RECOMMENDATION_REQUEST","LOCATION_OPEN_RECOMMENDATION_SUCCESS","LOCATION_SEE_COMMENT_REQUEST","LOCATION_SEE_COMMENT_SUCCESS","SEND_POST_COMMENT_REQUEST","SEND_POST_COMMENT_SUCCESS","UI_EDIT_COMMENT","popinEnd","popinLearnerSuccess","popinLearnerSuccessWithRedirection","popinLearnerFailure","popinLearnerFailureWithRedirection","popinLearnerAdaptiveFailure","popinMicrolearningFailure","popinMicrolearningSuccess","services","Comments","post","Location","openRecommendation","nextLevel","seeComment","createDispatch","state","getState","action","dispatched","dispatch","maybeAction","push","actionTypes","actions","type","options","translate","t","props","header","summary","is","rank","stars","cta","title","true","onClick","falsy","href","dispatchedHeaderCta","deepEqual","prefix","buttonCta","button","dispatchedActionCta","comment","edition","postDisabled","isSent","value","onChange","dispatchedOnChange","target","onPost","dispatchedOnPost","confirmation","dispatchedOnClick","subtitle","lives","recommendations","recommendation","dispatchedOpenRecommmendation","cards","ref","progressionId","_id","description","mediaDescription","media","mediaUrl","mimeType","subtitles","posters","__v","success","total"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {get, map, set, pipe, identity, isFunction, isUndefined} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {\n getCurrentProgressionId,\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS,\n LOCATION_OPEN_RECOMMENDATION_REQUEST,\n LOCATION_OPEN_RECOMMENDATION_SUCCESS,\n LOCATION_SEE_COMMENT_REQUEST,\n LOCATION_SEE_COMMENT_SUCCESS,\n SEND_POST_COMMENT_REQUEST,\n SEND_POST_COMMENT_SUCCESS,\n UI_EDIT_COMMENT\n} from '@coorpacademy/player-store';\nimport popinEnd from '../popin-end';\n\nimport popinLearnerSuccess from './fixtures/popin-end/learner-success';\nimport popinLearnerSuccessWithRedirection from './fixtures/popin-end/learner-success-with-redirection';\nimport popinLearnerFailure from './fixtures/popin-end/learner-failure';\nimport popinLearnerFailureWithRedirection from './fixtures/popin-end/learner-failure-with-redirection';\nimport popinLearnerAdaptiveFailure from './fixtures/popin-end/learner-adaptive-failure';\nimport popinMicrolearningFailure from './fixtures/popin-end/fail';\nimport popinMicrolearningSuccess from './fixtures/popin-end/success';\n\nconst services = {\n Comments: {\n post: identity\n },\n Location: {\n openRecommendation: identity,\n nextLevel: identity,\n seeComment: identity\n }\n};\n\nconst createDispatch = state => {\n const getState = () => state;\n\n return async action => {\n const dispatched = [];\n const dispatch = maybeAction =>\n isFunction(maybeAction)\n ? maybeAction(dispatch, getState, {services})\n : dispatched.push(maybeAction);\n\n await dispatch(action);\n\n return dispatched;\n };\n};\n\nconst actionTypes = actions => map(({type}) => type, actions);\nconst options = {translate: mockTranslate};\n\ntest('should create a \"Next Level\" CTA after success on learner progression', async t => {\n const dispatch = createDispatch(popinLearnerSuccess);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccess);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Next level');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n const dispatchedHeaderCta = await cta.onClick();\n t.deepEqual(actionTypes(dispatchedHeaderCta), [\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS\n ]);\n\n const action = props.summary.action;\n t.is(action.prefix, '__Next level_');\n t.is(action.title, 'La recherche en ligne - Avancé');\n\n const buttonCta = action.button;\n t.is(buttonCta.title, '__Next level');\n const dispatchedActionCta = await buttonCta.onClick();\n t.deepEqual(actionTypes(dispatchedActionCta), [\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS\n ]);\n\n const comment = props.summary.comment;\n t.is(comment.edition.postDisabled, true);\n});\n\ntest('should write, send, and go see a comment after success on learner progression', async t => {\n const state = pipe(\n set('data.comments.entities.idProgression1234.isSent', true),\n set('ui.comments.text', 'textToSend')\n )(popinLearnerSuccess);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const comment = props.summary.comment;\n t.is(comment.isSent, true);\n t.is(comment.edition.value, 'textToSend');\n t.is(comment.edition.postDisabled, false);\n\n const onChange = comment.edition.onChange;\n t.true(isFunction(onChange));\n const dispatchedOnChange = await onChange({target: {value: 'foo'}});\n\n t.deepEqual(actionTypes(dispatchedOnChange), [UI_EDIT_COMMENT]);\n\n const onPost = comment.edition.onPost;\n t.true(isFunction(onPost));\n const dispatchedOnPost = await onPost();\n\n t.deepEqual(actionTypes(dispatchedOnPost), [\n SEND_POST_COMMENT_REQUEST,\n SEND_POST_COMMENT_SUCCESS\n ]);\n\n const onClick = comment.confirmation.onClick;\n t.true(isFunction(onClick));\n const dispatchedOnClick = await onClick();\n\n t.deepEqual(actionTypes(dispatchedOnClick), [\n LOCATION_SEE_COMMENT_REQUEST,\n LOCATION_SEE_COMMENT_SUCCESS\n ]);\n});\n\ntest('should not see comment section after failure on learner progression', t => {\n const dispatch = createDispatch(popinLearnerFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerFailure);\n t.is(props.summary.comment, null);\n t.is(props.summary.header.subtitle, '__You are out of lives!');\n t.is(props.summary.header.lives, 0);\n});\n\ntest('should verify that cta should redirect if redirectURLAfterEnd is set on state for failure popin', t => {\n const dispatch = createDispatch(popinLearnerFailureWithRedirection);\n const props = popinEnd(options, {dispatch})(popinLearnerFailureWithRedirection);\n\n const header = props.summary.header;\n const cta = header.cta;\n t.is(cta.title, '__Click to continue');\n t.true(isUndefined(cta.onClick));\n t.is(cta.href, 'http://www.google.com');\n});\n\ntest('should verify that cta should redirect if redirectURLAfterEnd is set on state for success popin', t => {\n const dispatch = createDispatch(popinLearnerSuccessWithRedirection);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccessWithRedirection);\n\n const header = props.summary.header;\n const cta = header.cta;\n t.is(cta.title, '__Click to continue');\n t.true(isUndefined(cta.onClick));\n t.is(cta.href, 'http://www.google.com');\n});\n\ntest('should not see comment section after failure on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningFailure);\n const props = popinEnd(options, {\n dispatch\n })(popinMicrolearningFailure);\n t.is(props.summary.comment, null);\n});\n\ntest('should not see comment section after success on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningSuccess);\n const props = popinEnd(options, {\n dispatch\n })(popinMicrolearningSuccess);\n t.is(props.summary.comment, null);\n});\n\ntest(\"livesDisabled == true ---> should not see lives and 'You are out of lives!' message\", t => {\n const dispatch = createDispatch(popinLearnerAdaptiveFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerAdaptiveFailure);\n\n t.is(props.summary.header.subtitle, '__Nice try!');\n t.is(props.summary.header.lives, null);\n});\n\ntest('should create a \"Back to Home\" CTA after success on learner progression with coach content', t => {\n const state = pipe(\n set(['data', 'contents', 'level', 'entities', '1.B', 'level'], 'coach'),\n set('data.nextContent.entities.idProgression1234', null)\n )(popinLearnerSuccess);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Back to home');\n t.falsy(cta.onClick);\n t.is(cta.href, '/');\n\n t.falsy(props.summary.action);\n});\n\ntest('should create a \"Back to Home\" CTA after success on learner progression with content with only base level', t => {\n const state = set(\n ['data', 'nextContent', 'entities', 'idProgression1234'],\n null,\n popinLearnerSuccess\n );\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Back to home');\n t.falsy(cta.onClick);\n t.is(cta.href, '/');\n});\n\ntest('should create a \"Retry Level\" CTA after failure on learner progression', t => {\n const dispatch = createDispatch(popinLearnerFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerFailure);\n\n const header = props.summary.header;\n t.is(header.rank, '-1');\n t.is(header.type, 'popinEnd');\n\n const cta = props.summary.header.cta;\n t.is(cta.title, '__Retry level');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n\n const action = props.summary.action;\n t.is(action.prefix, '__Retry level_');\n t.is(action.title, 'La recherche en ligne - Base');\n\n const buttonCta = action.button;\n t.is(buttonCta.title, '__Retry level');\n});\n\ntest('should open recommendation', async t => {\n const dispatch = createDispatch(popinLearnerSuccess);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccess);\n\n const recommendations = props.summary.recommendation;\n\n const dispatchedOpenRecommmendation = await recommendations.cards[0].onClick();\n t.deepEqual(actionTypes(dispatchedOpenRecommmendation), [\n LOCATION_OPEN_RECOMMENDATION_REQUEST,\n LOCATION_OPEN_RECOMMENDATION_SUCCESS\n ]);\n});\n\ntest('should create a \"Retry Chapter\" CTA after failure on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningFailure);\n const props = popinEnd(options, {dispatch})(popinMicrolearningFailure);\n\n const header = props.summary.header;\n t.falsy(header.rank);\n t.falsy(header.stars);\n t.is(header.type, 'popinEnd');\n\n const cta = props.summary.header.cta;\n t.is(cta.title, '__Retry chapter');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n});\n\ntest('should extract feedback content from exit node', t => {\n const ref = 'biba-exit-node-A';\n const progressionId = getCurrentProgressionId(popinMicrolearningFailure);\n const state = pipe(\n set(`data.exitNodes.entities.${ref}`, {\n ref,\n _id: '5a4e2adbd56b8b7ddab06532',\n type: 'success',\n title: 'biba_exit_node_A.title',\n description: 'biba_exit_node_A.description',\n mediaDescription: 'biba_exit_node_A.media.description',\n media: {\n ref: 'biba_exit_node_A-media',\n type: 'pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',\n mimeType: 'application/pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n subtitles: 'biba_exit_node_A.media.pdf.subtitles',\n posters: []\n },\n __v: 0\n }),\n set(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref)\n )(popinMicrolearningFailure);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n t.deepEqual(get('summary.feedback', props), {\n title: 'biba_exit_node_A.title',\n description: 'biba_exit_node_A.description',\n mediaDescription: 'biba_exit_node_A.media.description',\n media: {\n type: 'pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n mimeType: 'application/pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'\n }\n });\n});\n\ntest('should extract feedback content from exit node and counters', t => {\n const ref = 'biba-exit-node-A';\n const progressionId = getCurrentProgressionId(popinMicrolearningFailure);\n const state = pipe(\n set(`data.exitNodes.entities.${ref}`, {\n ref,\n _id: '5a4e2adbd56b8b7ddab06532',\n type: 'success',\n title: 'title total: {{ success }}',\n description: 'description {{ success }}/{{ total }}',\n mediaDescription: 'mediaDescription {{ total }}',\n media: {\n ref: 'biba_exit_node_A-media',\n type: 'pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',\n mimeType: 'application/pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n subtitles: 'biba_exit_node_A.media.pdf.subtitles',\n posters: []\n },\n __v: 0\n }),\n set(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref),\n set(`data.progressions.entities.${progressionId}.state.variables`, {success: 4, total: 10})\n )(popinMicrolearningFailure);\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n t.deepEqual(get('summary.feedback', props), {\n title: 'title total: 4',\n description: 'description 4/10',\n mediaDescription: 'mediaDescription 10',\n media: {\n type: 'pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n mimeType: 'application/pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'\n }\n });\n});\n"],"file":"popin-end.js"}
1
+ {"version":3,"sources":["../../../src/map-state-to-props/test/popin-end.js"],"names":["test","mockTranslate","getCurrentProgressionId","LOCATION_NEXT_CONTENT_REQUEST","LOCATION_NEXT_CONTENT_SUCCESS","LOCATION_OPEN_RECOMMENDATION_REQUEST","LOCATION_OPEN_RECOMMENDATION_SUCCESS","LOCATION_SEE_COMMENT_REQUEST","LOCATION_SEE_COMMENT_SUCCESS","SEND_POST_COMMENT_REQUEST","SEND_POST_COMMENT_SUCCESS","UI_EDIT_COMMENT","popinEnd","popinLearnerSuccess","popinLearnerSuccessWithRedirection","popinLearnerFailure","popinLearnerFailureWithRedirection","popinLearnerAdaptiveFailure","popinMicrolearningFailure","popinMicrolearningSuccess","services","Comments","post","Location","openRecommendation","nextLevel","seeComment","createDispatch","state","getState","action","dispatched","dispatch","maybeAction","push","actionTypes","actions","type","options","translate","t","props","header","summary","is","rank","stars","cta","title","true","onClick","falsy","href","dispatchedHeaderCta","deepEqual","prefix","buttonCta","button","dispatchedActionCta","comment","edition","postDisabled","isSent","value","onChange","dispatchedOnChange","target","onPost","dispatchedOnPost","confirmation","dispatchedOnClick","subtitle","lives","recommendations","recommendation","dispatchedOpenRecommmendation","cards","ref","progressionId","_id","description","mediaDescription","media","mediaUrl","mimeType","subtitles","posters","__v","success","total"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {get, map, set, pipe, identity, isFunction, isUndefined} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {\n getCurrentProgressionId,\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS,\n LOCATION_OPEN_RECOMMENDATION_REQUEST,\n LOCATION_OPEN_RECOMMENDATION_SUCCESS,\n LOCATION_SEE_COMMENT_REQUEST,\n LOCATION_SEE_COMMENT_SUCCESS,\n SEND_POST_COMMENT_REQUEST,\n SEND_POST_COMMENT_SUCCESS,\n UI_EDIT_COMMENT\n} from '@coorpacademy/player-store';\nimport popinEnd from '../popin-end';\n\nimport popinLearnerSuccess from './fixtures/popin-end/learner-success';\nimport popinLearnerSuccessWithRedirection from './fixtures/popin-end/learner-success-with-redirection';\nimport popinLearnerFailure from './fixtures/popin-end/learner-failure';\nimport popinLearnerFailureWithRedirection from './fixtures/popin-end/learner-failure-with-redirection';\nimport popinLearnerAdaptiveFailure from './fixtures/popin-end/learner-adaptive-failure';\nimport popinMicrolearningFailure from './fixtures/popin-end/fail';\nimport popinMicrolearningSuccess from './fixtures/popin-end/success';\n\nconst services = {\n Comments: {\n post: identity\n },\n Location: {\n openRecommendation: identity,\n nextLevel: identity,\n seeComment: identity\n }\n};\n\nconst createDispatch = state => {\n const getState = () => state;\n\n return async action => {\n const dispatched = [];\n const dispatch = maybeAction =>\n isFunction(maybeAction)\n ? maybeAction(dispatch, getState, {services})\n : dispatched.push(maybeAction);\n\n await dispatch(action);\n\n return dispatched;\n };\n};\n\nconst actionTypes = actions => map(({type}) => type, actions);\nconst options = {translate: mockTranslate};\n\ntest('should create a \"Next Level\" CTA after success on learner progression', async t => {\n const dispatch = createDispatch(popinLearnerSuccess);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccess);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Next level');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n const dispatchedHeaderCta = await cta.onClick();\n t.deepEqual(actionTypes(dispatchedHeaderCta), [\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS\n ]);\n\n const action = props.summary.action;\n t.is(action.prefix, '__Next level_');\n t.is(action.title, 'La recherche en ligne - Avancé');\n\n const buttonCta = action.button;\n t.is(buttonCta.title, '__Next level');\n const dispatchedActionCta = await buttonCta.onClick();\n t.deepEqual(actionTypes(dispatchedActionCta), [\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS\n ]);\n\n const comment = props.summary.comment;\n t.is(comment.edition.postDisabled, true);\n});\n\ntest('should write, send, and go see a comment after success on learner progression', async t => {\n const state = pipe(\n set('data.comments.entities.idProgression1234.isSent', true),\n set('ui.comments.text', 'textToSend')\n )(popinLearnerSuccess);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const comment = props.summary.comment;\n t.is(comment.isSent, true);\n t.is(comment.edition.value, 'textToSend');\n t.is(comment.edition.postDisabled, false);\n\n const onChange = comment.edition.onChange;\n t.true(isFunction(onChange));\n const dispatchedOnChange = await onChange({target: {value: 'foo'}});\n\n t.deepEqual(actionTypes(dispatchedOnChange), [UI_EDIT_COMMENT]);\n\n const onPost = comment.edition.onPost;\n t.true(isFunction(onPost));\n const dispatchedOnPost = await onPost();\n\n t.deepEqual(actionTypes(dispatchedOnPost), [\n SEND_POST_COMMENT_REQUEST,\n SEND_POST_COMMENT_SUCCESS\n ]);\n\n const onClick = comment.confirmation.onClick;\n t.true(isFunction(onClick));\n const dispatchedOnClick = await onClick();\n\n t.deepEqual(actionTypes(dispatchedOnClick), [\n LOCATION_SEE_COMMENT_REQUEST,\n LOCATION_SEE_COMMENT_SUCCESS\n ]);\n});\n\ntest('should not see comment section after failure on learner progression', t => {\n const dispatch = createDispatch(popinLearnerFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerFailure);\n t.is(props.summary.comment, null);\n t.is(props.summary.header.subtitle, '__You are out of lives!');\n t.is(props.summary.header.lives, 0);\n});\n\ntest('should verify that cta should redirect if redirectURLAfterEnd is set on state for failure popin', t => {\n const dispatch = createDispatch(popinLearnerFailureWithRedirection);\n const props = popinEnd(options, {dispatch})(popinLearnerFailureWithRedirection);\n\n const header = props.summary.header;\n const cta = header.cta;\n t.is(cta.title, '__Click to continue');\n t.true(isUndefined(cta.onClick));\n t.is(cta.href, 'http://www.google.com');\n});\n\ntest('should verify that cta should redirect if redirectURLAfterEnd is set on state for success popin', t => {\n const dispatch = createDispatch(popinLearnerSuccessWithRedirection);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccessWithRedirection);\n\n const header = props.summary.header;\n const cta = header.cta;\n t.is(cta.title, '__Click to continue');\n t.true(isUndefined(cta.onClick));\n t.is(cta.href, 'http://www.google.com');\n});\n\ntest('should not see comment section after failure on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningFailure);\n const props = popinEnd(options, {\n dispatch\n })(popinMicrolearningFailure);\n t.is(props.summary.comment, null);\n});\n\ntest('should not see comment section after success on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningSuccess);\n const props = popinEnd(options, {\n dispatch\n })(popinMicrolearningSuccess);\n t.is(props.summary.comment, null);\n});\n\ntest(\"livesDisabled == true ---> should not see lives and 'You are out of lives!' message\", t => {\n const dispatch = createDispatch(popinLearnerAdaptiveFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerAdaptiveFailure);\n\n t.is(props.summary.header.subtitle, '__Nice try!');\n t.is(props.summary.header.lives, null);\n});\n\ntest('should create a \"Back to Home\" CTA after success on learner progression with coach content', async t => {\n const state = pipe(\n set(['data', 'contents', 'level', 'entities', '1.B', 'level'], 'coach'),\n set('data.nextContent.entities.idProgression1234', null)\n )(popinLearnerSuccess);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Back to home');\n t.deepEqual(map('type')(await cta.onClick()), [\n '@@location/EXIT_REQUEST',\n '@@location/EXIT_FAILURE'\n ]);\n t.falsy(cta.href);\n\n t.falsy(props.summary.action);\n});\n\ntest('should create a \"Back to Home\" CTA after success on learner progression with content with only base level', async t => {\n const state = set(\n ['data', 'nextContent', 'entities', 'idProgression1234'],\n null,\n popinLearnerSuccess\n );\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Back to home');\n t.deepEqual(map('type')(await cta.onClick()), [\n '@@location/EXIT_REQUEST',\n '@@location/EXIT_FAILURE'\n ]);\n t.falsy(cta.href);\n});\n\ntest('should create a \"Retry Level\" CTA after failure on learner progression', t => {\n const dispatch = createDispatch(popinLearnerFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerFailure);\n\n const header = props.summary.header;\n t.is(header.rank, '-1');\n t.is(header.type, 'popinEnd');\n\n const cta = props.summary.header.cta;\n t.is(cta.title, '__Retry level');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n\n const action = props.summary.action;\n t.is(action.prefix, '__Retry level_');\n t.is(action.title, 'La recherche en ligne - Base');\n\n const buttonCta = action.button;\n t.is(buttonCta.title, '__Retry level');\n});\n\ntest('should open recommendation', async t => {\n const dispatch = createDispatch(popinLearnerSuccess);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccess);\n\n const recommendations = props.summary.recommendation;\n\n const dispatchedOpenRecommmendation = await recommendations.cards[0].onClick();\n t.deepEqual(actionTypes(dispatchedOpenRecommmendation), [\n LOCATION_OPEN_RECOMMENDATION_REQUEST,\n LOCATION_OPEN_RECOMMENDATION_SUCCESS\n ]);\n});\n\ntest('should create a \"Retry Chapter\" CTA after failure on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningFailure);\n const props = popinEnd(options, {dispatch})(popinMicrolearningFailure);\n\n const header = props.summary.header;\n t.falsy(header.rank);\n t.falsy(header.stars);\n t.is(header.type, 'popinEnd');\n\n const cta = props.summary.header.cta;\n t.is(cta.title, '__Retry chapter');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n});\n\ntest('should extract feedback content from exit node', t => {\n const ref = 'biba-exit-node-A';\n const progressionId = getCurrentProgressionId(popinMicrolearningFailure);\n const state = pipe(\n set(`data.exitNodes.entities.${ref}`, {\n ref,\n _id: '5a4e2adbd56b8b7ddab06532',\n type: 'success',\n title: 'biba_exit_node_A.title',\n description: 'biba_exit_node_A.description',\n mediaDescription: 'biba_exit_node_A.media.description',\n media: {\n ref: 'biba_exit_node_A-media',\n type: 'pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',\n mimeType: 'application/pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n subtitles: 'biba_exit_node_A.media.pdf.subtitles',\n posters: []\n },\n __v: 0\n }),\n set(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref)\n )(popinMicrolearningFailure);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n t.deepEqual(get('summary.feedback', props), {\n title: 'biba_exit_node_A.title',\n description: 'biba_exit_node_A.description',\n mediaDescription: 'biba_exit_node_A.media.description',\n media: {\n type: 'pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n mimeType: 'application/pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'\n }\n });\n});\n\ntest('should extract feedback content from exit node and counters', t => {\n const ref = 'biba-exit-node-A';\n const progressionId = getCurrentProgressionId(popinMicrolearningFailure);\n const state = pipe(\n set(`data.exitNodes.entities.${ref}`, {\n ref,\n _id: '5a4e2adbd56b8b7ddab06532',\n type: 'success',\n title: 'title total: {{ success }}',\n description: 'description {{ success }}/{{ total }}',\n mediaDescription: 'mediaDescription {{ total }}',\n media: {\n ref: 'biba_exit_node_A-media',\n type: 'pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',\n mimeType: 'application/pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n subtitles: 'biba_exit_node_A.media.pdf.subtitles',\n posters: []\n },\n __v: 0\n }),\n set(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref),\n set(`data.progressions.entities.${progressionId}.state.variables`, {success: 4, total: 10})\n )(popinMicrolearningFailure);\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n t.deepEqual(get('summary.feedback', props), {\n title: 'title total: 4',\n description: 'description 4/10',\n mediaDescription: 'mediaDescription 10',\n media: {\n type: 'pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n mimeType: 'application/pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'\n }\n });\n});\n"],"file":"popin-end.js"}
@@ -104,15 +104,17 @@ const summaryHeader = ({
104
104
  count
105
105
  } = (0, _playerStore.getLives)(state);
106
106
  const lives = hide ? null : count;
107
- const successCta = {
107
+ let successCta = {
108
108
  title: translate('Back to home'),
109
- href: '/'
109
+ onClick: () => dispatch(_playerStore.exit)
110
110
  };
111
111
  const redirection = (0, _playerStore.getRedirectURLAfterEnd)(state);
112
112
 
113
113
  if (redirection) {
114
- successCta.href = redirection;
115
- successCta.title = translate('Click to continue');
114
+ successCta = {
115
+ title: translate('Click to continue'),
116
+ href: redirection
117
+ };
116
118
  }
117
119
 
118
120
  if ((0, _playerStore.isCurrentEngineLearner)(state) && !redirection) {
@@ -122,12 +124,11 @@ const summaryHeader = ({
122
124
  const _nextLevel = (0, _playerStore.getNextContent)(state);
123
125
 
124
126
  if (_nextLevel) {
125
- successCta.title = translate('Next level');
126
- successCta.href = null;
127
-
128
- successCta.onClick = () => dispatch(_playerStore.nextLevel);
129
-
130
- successCta.showNextLevel = true;
127
+ successCta = {
128
+ title: translate('Next level'),
129
+ onClick: () => dispatch(_playerStore.nextLevel),
130
+ showNextLevel: true
131
+ };
131
132
  }
132
133
  }
133
134
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/map-state-to-props/popin-end.js"],"names":["extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","seeComment","edition","title","value","postDisabled","onChange","target","onPost","ctaForFail","redirection","href","retry","summaryHeader","hide","count","lives","successCta","level","_nextLevel","nextLevel","showNextLevel","type","subtitle","failed","rank","cta","extractRecommendation","_recommendations","hasRecommendations","recommendations","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","exit","props","header","summary","action","feedback"],"mappings":"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","sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n};\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader = ({translate}, {dispatch}) => state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n const successCta = {\n title: translate('Back to home'),\n href: '/'\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta.href = redirection;\n successCta.title = translate('Click to continue');\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta.title = translate('Next level');\n successCta.href = null;\n successCta.onClick = () => dispatch(nextLevel);\n successCta.showNextLevel = true;\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n};\n\nconst extractRecommendation = ({translate}, {dispatch}) => state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n};\n\nconst extractAction = ({translate}, {dispatch}) => state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n};\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"file":"popin-end.js"}
1
+ {"version":3,"sources":["../../src/map-state-to-props/popin-end.js"],"names":["extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","seeComment","edition","title","value","postDisabled","onChange","target","onPost","ctaForFail","redirection","href","retry","summaryHeader","hide","count","lives","successCta","exit","level","_nextLevel","nextLevel","showNextLevel","type","subtitle","failed","rank","cta","extractRecommendation","_recommendations","hasRecommendations","recommendations","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","summary","action","feedback"],"mappings":"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","sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n};\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader = ({translate}, {dispatch}) => state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n let successCta = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta = {\n title: translate('Click to continue'),\n href: redirection\n };\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta = {\n title: translate('Next level'),\n onClick: () => dispatch(nextLevel),\n showNextLevel: true\n };\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n};\n\nconst extractRecommendation = ({translate}, {dispatch}) => state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n};\n\nconst extractAction = ({translate}, {dispatch}) => state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n};\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"file":"popin-end.js"}
@@ -176,7 +176,7 @@ const options = {
176
176
  t.is(props.summary.header.subtitle, '__Nice try!');
177
177
  t.is(props.summary.header.lives, null);
178
178
  });
179
- (0, _ava.default)('should create a "Back to Home" CTA after success on learner progression with coach content', t => {
179
+ (0, _ava.default)('should create a "Back to Home" CTA after success on learner progression with coach content', async t => {
180
180
  const state = (0, _pipe2.default)((0, _set2.default)(['data', 'contents', 'level', 'entities', '1.B', 'level'], 'coach'), (0, _set2.default)('data.nextContent.entities.idProgression1234', null))(_learnerSuccess.default);
181
181
  const dispatch = createDispatch(state);
182
182
  const props = (0, _popinEnd.default)(options, {
@@ -188,11 +188,11 @@ const options = {
188
188
  t.is(header.type, 'popinEnd');
189
189
  const cta = header.cta;
190
190
  t.is(cta.title, '__Back to home');
191
- t.falsy(cta.onClick);
192
- t.is(cta.href, '/');
191
+ t.deepEqual((0, _map2.default)('type')(await cta.onClick()), ['@@location/EXIT_REQUEST', '@@location/EXIT_FAILURE']);
192
+ t.falsy(cta.href);
193
193
  t.falsy(props.summary.action);
194
194
  });
195
- (0, _ava.default)('should create a "Back to Home" CTA after success on learner progression with content with only base level', t => {
195
+ (0, _ava.default)('should create a "Back to Home" CTA after success on learner progression with content with only base level', async t => {
196
196
  const state = (0, _set2.default)(['data', 'nextContent', 'entities', 'idProgression1234'], null, _learnerSuccess.default);
197
197
  const dispatch = createDispatch(state);
198
198
  const props = (0, _popinEnd.default)(options, {
@@ -204,8 +204,8 @@ const options = {
204
204
  t.is(header.type, 'popinEnd');
205
205
  const cta = header.cta;
206
206
  t.is(cta.title, '__Back to home');
207
- t.falsy(cta.onClick);
208
- t.is(cta.href, '/');
207
+ t.deepEqual((0, _map2.default)('type')(await cta.onClick()), ['@@location/EXIT_REQUEST', '@@location/EXIT_FAILURE']);
208
+ t.falsy(cta.href);
209
209
  });
210
210
  (0, _ava.default)('should create a "Retry Level" CTA after failure on learner progression', t => {
211
211
  const dispatch = createDispatch(_learnerFailure.default);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/map-state-to-props/test/popin-end.js"],"names":["services","Comments","post","Location","openRecommendation","nextLevel","seeComment","createDispatch","state","getState","action","dispatched","dispatch","maybeAction","push","actionTypes","actions","type","options","translate","mockTranslate","t","popinLearnerSuccess","props","header","summary","is","rank","stars","cta","title","true","onClick","falsy","href","dispatchedHeaderCta","deepEqual","LOCATION_NEXT_CONTENT_REQUEST","LOCATION_NEXT_CONTENT_SUCCESS","prefix","buttonCta","button","dispatchedActionCta","comment","edition","postDisabled","isSent","value","onChange","dispatchedOnChange","target","UI_EDIT_COMMENT","onPost","dispatchedOnPost","SEND_POST_COMMENT_REQUEST","SEND_POST_COMMENT_SUCCESS","confirmation","dispatchedOnClick","LOCATION_SEE_COMMENT_REQUEST","LOCATION_SEE_COMMENT_SUCCESS","popinLearnerFailure","subtitle","lives","popinLearnerFailureWithRedirection","popinLearnerSuccessWithRedirection","popinMicrolearningFailure","popinMicrolearningSuccess","popinLearnerAdaptiveFailure","recommendations","recommendation","dispatchedOpenRecommmendation","cards","LOCATION_OPEN_RECOMMENDATION_REQUEST","LOCATION_OPEN_RECOMMENDATION_SUCCESS","ref","progressionId","_id","description","mediaDescription","media","mediaUrl","mimeType","subtitles","posters","__v","success","total"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {get, map, set, pipe, identity, isFunction, isUndefined} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {\n getCurrentProgressionId,\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS,\n LOCATION_OPEN_RECOMMENDATION_REQUEST,\n LOCATION_OPEN_RECOMMENDATION_SUCCESS,\n LOCATION_SEE_COMMENT_REQUEST,\n LOCATION_SEE_COMMENT_SUCCESS,\n SEND_POST_COMMENT_REQUEST,\n SEND_POST_COMMENT_SUCCESS,\n UI_EDIT_COMMENT\n} from '@coorpacademy/player-store';\nimport popinEnd from '../popin-end';\n\nimport popinLearnerSuccess from './fixtures/popin-end/learner-success';\nimport popinLearnerSuccessWithRedirection from './fixtures/popin-end/learner-success-with-redirection';\nimport popinLearnerFailure from './fixtures/popin-end/learner-failure';\nimport popinLearnerFailureWithRedirection from './fixtures/popin-end/learner-failure-with-redirection';\nimport popinLearnerAdaptiveFailure from './fixtures/popin-end/learner-adaptive-failure';\nimport popinMicrolearningFailure from './fixtures/popin-end/fail';\nimport popinMicrolearningSuccess from './fixtures/popin-end/success';\n\nconst services = {\n Comments: {\n post: identity\n },\n Location: {\n openRecommendation: identity,\n nextLevel: identity,\n seeComment: identity\n }\n};\n\nconst createDispatch = state => {\n const getState = () => state;\n\n return async action => {\n const dispatched = [];\n const dispatch = maybeAction =>\n isFunction(maybeAction)\n ? maybeAction(dispatch, getState, {services})\n : dispatched.push(maybeAction);\n\n await dispatch(action);\n\n return dispatched;\n };\n};\n\nconst actionTypes = actions => map(({type}) => type, actions);\nconst options = {translate: mockTranslate};\n\ntest('should create a \"Next Level\" CTA after success on learner progression', async t => {\n const dispatch = createDispatch(popinLearnerSuccess);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccess);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Next level');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n const dispatchedHeaderCta = await cta.onClick();\n t.deepEqual(actionTypes(dispatchedHeaderCta), [\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS\n ]);\n\n const action = props.summary.action;\n t.is(action.prefix, '__Next level_');\n t.is(action.title, 'La recherche en ligne - Avancé');\n\n const buttonCta = action.button;\n t.is(buttonCta.title, '__Next level');\n const dispatchedActionCta = await buttonCta.onClick();\n t.deepEqual(actionTypes(dispatchedActionCta), [\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS\n ]);\n\n const comment = props.summary.comment;\n t.is(comment.edition.postDisabled, true);\n});\n\ntest('should write, send, and go see a comment after success on learner progression', async t => {\n const state = pipe(\n set('data.comments.entities.idProgression1234.isSent', true),\n set('ui.comments.text', 'textToSend')\n )(popinLearnerSuccess);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const comment = props.summary.comment;\n t.is(comment.isSent, true);\n t.is(comment.edition.value, 'textToSend');\n t.is(comment.edition.postDisabled, false);\n\n const onChange = comment.edition.onChange;\n t.true(isFunction(onChange));\n const dispatchedOnChange = await onChange({target: {value: 'foo'}});\n\n t.deepEqual(actionTypes(dispatchedOnChange), [UI_EDIT_COMMENT]);\n\n const onPost = comment.edition.onPost;\n t.true(isFunction(onPost));\n const dispatchedOnPost = await onPost();\n\n t.deepEqual(actionTypes(dispatchedOnPost), [\n SEND_POST_COMMENT_REQUEST,\n SEND_POST_COMMENT_SUCCESS\n ]);\n\n const onClick = comment.confirmation.onClick;\n t.true(isFunction(onClick));\n const dispatchedOnClick = await onClick();\n\n t.deepEqual(actionTypes(dispatchedOnClick), [\n LOCATION_SEE_COMMENT_REQUEST,\n LOCATION_SEE_COMMENT_SUCCESS\n ]);\n});\n\ntest('should not see comment section after failure on learner progression', t => {\n const dispatch = createDispatch(popinLearnerFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerFailure);\n t.is(props.summary.comment, null);\n t.is(props.summary.header.subtitle, '__You are out of lives!');\n t.is(props.summary.header.lives, 0);\n});\n\ntest('should verify that cta should redirect if redirectURLAfterEnd is set on state for failure popin', t => {\n const dispatch = createDispatch(popinLearnerFailureWithRedirection);\n const props = popinEnd(options, {dispatch})(popinLearnerFailureWithRedirection);\n\n const header = props.summary.header;\n const cta = header.cta;\n t.is(cta.title, '__Click to continue');\n t.true(isUndefined(cta.onClick));\n t.is(cta.href, 'http://www.google.com');\n});\n\ntest('should verify that cta should redirect if redirectURLAfterEnd is set on state for success popin', t => {\n const dispatch = createDispatch(popinLearnerSuccessWithRedirection);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccessWithRedirection);\n\n const header = props.summary.header;\n const cta = header.cta;\n t.is(cta.title, '__Click to continue');\n t.true(isUndefined(cta.onClick));\n t.is(cta.href, 'http://www.google.com');\n});\n\ntest('should not see comment section after failure on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningFailure);\n const props = popinEnd(options, {\n dispatch\n })(popinMicrolearningFailure);\n t.is(props.summary.comment, null);\n});\n\ntest('should not see comment section after success on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningSuccess);\n const props = popinEnd(options, {\n dispatch\n })(popinMicrolearningSuccess);\n t.is(props.summary.comment, null);\n});\n\ntest(\"livesDisabled == true ---> should not see lives and 'You are out of lives!' message\", t => {\n const dispatch = createDispatch(popinLearnerAdaptiveFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerAdaptiveFailure);\n\n t.is(props.summary.header.subtitle, '__Nice try!');\n t.is(props.summary.header.lives, null);\n});\n\ntest('should create a \"Back to Home\" CTA after success on learner progression with coach content', t => {\n const state = pipe(\n set(['data', 'contents', 'level', 'entities', '1.B', 'level'], 'coach'),\n set('data.nextContent.entities.idProgression1234', null)\n )(popinLearnerSuccess);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Back to home');\n t.falsy(cta.onClick);\n t.is(cta.href, '/');\n\n t.falsy(props.summary.action);\n});\n\ntest('should create a \"Back to Home\" CTA after success on learner progression with content with only base level', t => {\n const state = set(\n ['data', 'nextContent', 'entities', 'idProgression1234'],\n null,\n popinLearnerSuccess\n );\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Back to home');\n t.falsy(cta.onClick);\n t.is(cta.href, '/');\n});\n\ntest('should create a \"Retry Level\" CTA after failure on learner progression', t => {\n const dispatch = createDispatch(popinLearnerFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerFailure);\n\n const header = props.summary.header;\n t.is(header.rank, '-1');\n t.is(header.type, 'popinEnd');\n\n const cta = props.summary.header.cta;\n t.is(cta.title, '__Retry level');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n\n const action = props.summary.action;\n t.is(action.prefix, '__Retry level_');\n t.is(action.title, 'La recherche en ligne - Base');\n\n const buttonCta = action.button;\n t.is(buttonCta.title, '__Retry level');\n});\n\ntest('should open recommendation', async t => {\n const dispatch = createDispatch(popinLearnerSuccess);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccess);\n\n const recommendations = props.summary.recommendation;\n\n const dispatchedOpenRecommmendation = await recommendations.cards[0].onClick();\n t.deepEqual(actionTypes(dispatchedOpenRecommmendation), [\n LOCATION_OPEN_RECOMMENDATION_REQUEST,\n LOCATION_OPEN_RECOMMENDATION_SUCCESS\n ]);\n});\n\ntest('should create a \"Retry Chapter\" CTA after failure on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningFailure);\n const props = popinEnd(options, {dispatch})(popinMicrolearningFailure);\n\n const header = props.summary.header;\n t.falsy(header.rank);\n t.falsy(header.stars);\n t.is(header.type, 'popinEnd');\n\n const cta = props.summary.header.cta;\n t.is(cta.title, '__Retry chapter');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n});\n\ntest('should extract feedback content from exit node', t => {\n const ref = 'biba-exit-node-A';\n const progressionId = getCurrentProgressionId(popinMicrolearningFailure);\n const state = pipe(\n set(`data.exitNodes.entities.${ref}`, {\n ref,\n _id: '5a4e2adbd56b8b7ddab06532',\n type: 'success',\n title: 'biba_exit_node_A.title',\n description: 'biba_exit_node_A.description',\n mediaDescription: 'biba_exit_node_A.media.description',\n media: {\n ref: 'biba_exit_node_A-media',\n type: 'pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',\n mimeType: 'application/pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n subtitles: 'biba_exit_node_A.media.pdf.subtitles',\n posters: []\n },\n __v: 0\n }),\n set(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref)\n )(popinMicrolearningFailure);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n t.deepEqual(get('summary.feedback', props), {\n title: 'biba_exit_node_A.title',\n description: 'biba_exit_node_A.description',\n mediaDescription: 'biba_exit_node_A.media.description',\n media: {\n type: 'pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n mimeType: 'application/pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'\n }\n });\n});\n\ntest('should extract feedback content from exit node and counters', t => {\n const ref = 'biba-exit-node-A';\n const progressionId = getCurrentProgressionId(popinMicrolearningFailure);\n const state = pipe(\n set(`data.exitNodes.entities.${ref}`, {\n ref,\n _id: '5a4e2adbd56b8b7ddab06532',\n type: 'success',\n title: 'title total: {{ success }}',\n description: 'description {{ success }}/{{ total }}',\n mediaDescription: 'mediaDescription {{ total }}',\n media: {\n ref: 'biba_exit_node_A-media',\n type: 'pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',\n mimeType: 'application/pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n subtitles: 'biba_exit_node_A.media.pdf.subtitles',\n posters: []\n },\n __v: 0\n }),\n set(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref),\n set(`data.progressions.entities.${progressionId}.state.variables`, {success: 4, total: 10})\n )(popinMicrolearningFailure);\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n t.deepEqual(get('summary.feedback', props), {\n title: 'title total: 4',\n description: 'description 4/10',\n mediaDescription: 'mediaDescription 10',\n media: {\n type: 'pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n mimeType: 'application/pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'\n }\n });\n});\n"],"file":"popin-end.js"}
1
+ {"version":3,"sources":["../../../src/map-state-to-props/test/popin-end.js"],"names":["services","Comments","post","Location","openRecommendation","nextLevel","seeComment","createDispatch","state","getState","action","dispatched","dispatch","maybeAction","push","actionTypes","actions","type","options","translate","mockTranslate","t","popinLearnerSuccess","props","header","summary","is","rank","stars","cta","title","true","onClick","falsy","href","dispatchedHeaderCta","deepEqual","LOCATION_NEXT_CONTENT_REQUEST","LOCATION_NEXT_CONTENT_SUCCESS","prefix","buttonCta","button","dispatchedActionCta","comment","edition","postDisabled","isSent","value","onChange","dispatchedOnChange","target","UI_EDIT_COMMENT","onPost","dispatchedOnPost","SEND_POST_COMMENT_REQUEST","SEND_POST_COMMENT_SUCCESS","confirmation","dispatchedOnClick","LOCATION_SEE_COMMENT_REQUEST","LOCATION_SEE_COMMENT_SUCCESS","popinLearnerFailure","subtitle","lives","popinLearnerFailureWithRedirection","popinLearnerSuccessWithRedirection","popinMicrolearningFailure","popinMicrolearningSuccess","popinLearnerAdaptiveFailure","recommendations","recommendation","dispatchedOpenRecommmendation","cards","LOCATION_OPEN_RECOMMENDATION_REQUEST","LOCATION_OPEN_RECOMMENDATION_SUCCESS","ref","progressionId","_id","description","mediaDescription","media","mediaUrl","mimeType","subtitles","posters","__v","success","total"],"mappings":"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","sourcesContent":["import test from 'ava';\nimport {get, map, set, pipe, identity, isFunction, isUndefined} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {\n getCurrentProgressionId,\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS,\n LOCATION_OPEN_RECOMMENDATION_REQUEST,\n LOCATION_OPEN_RECOMMENDATION_SUCCESS,\n LOCATION_SEE_COMMENT_REQUEST,\n LOCATION_SEE_COMMENT_SUCCESS,\n SEND_POST_COMMENT_REQUEST,\n SEND_POST_COMMENT_SUCCESS,\n UI_EDIT_COMMENT\n} from '@coorpacademy/player-store';\nimport popinEnd from '../popin-end';\n\nimport popinLearnerSuccess from './fixtures/popin-end/learner-success';\nimport popinLearnerSuccessWithRedirection from './fixtures/popin-end/learner-success-with-redirection';\nimport popinLearnerFailure from './fixtures/popin-end/learner-failure';\nimport popinLearnerFailureWithRedirection from './fixtures/popin-end/learner-failure-with-redirection';\nimport popinLearnerAdaptiveFailure from './fixtures/popin-end/learner-adaptive-failure';\nimport popinMicrolearningFailure from './fixtures/popin-end/fail';\nimport popinMicrolearningSuccess from './fixtures/popin-end/success';\n\nconst services = {\n Comments: {\n post: identity\n },\n Location: {\n openRecommendation: identity,\n nextLevel: identity,\n seeComment: identity\n }\n};\n\nconst createDispatch = state => {\n const getState = () => state;\n\n return async action => {\n const dispatched = [];\n const dispatch = maybeAction =>\n isFunction(maybeAction)\n ? maybeAction(dispatch, getState, {services})\n : dispatched.push(maybeAction);\n\n await dispatch(action);\n\n return dispatched;\n };\n};\n\nconst actionTypes = actions => map(({type}) => type, actions);\nconst options = {translate: mockTranslate};\n\ntest('should create a \"Next Level\" CTA after success on learner progression', async t => {\n const dispatch = createDispatch(popinLearnerSuccess);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccess);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Next level');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n const dispatchedHeaderCta = await cta.onClick();\n t.deepEqual(actionTypes(dispatchedHeaderCta), [\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS\n ]);\n\n const action = props.summary.action;\n t.is(action.prefix, '__Next level_');\n t.is(action.title, 'La recherche en ligne - Avancé');\n\n const buttonCta = action.button;\n t.is(buttonCta.title, '__Next level');\n const dispatchedActionCta = await buttonCta.onClick();\n t.deepEqual(actionTypes(dispatchedActionCta), [\n LOCATION_NEXT_CONTENT_REQUEST,\n LOCATION_NEXT_CONTENT_SUCCESS\n ]);\n\n const comment = props.summary.comment;\n t.is(comment.edition.postDisabled, true);\n});\n\ntest('should write, send, and go see a comment after success on learner progression', async t => {\n const state = pipe(\n set('data.comments.entities.idProgression1234.isSent', true),\n set('ui.comments.text', 'textToSend')\n )(popinLearnerSuccess);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const comment = props.summary.comment;\n t.is(comment.isSent, true);\n t.is(comment.edition.value, 'textToSend');\n t.is(comment.edition.postDisabled, false);\n\n const onChange = comment.edition.onChange;\n t.true(isFunction(onChange));\n const dispatchedOnChange = await onChange({target: {value: 'foo'}});\n\n t.deepEqual(actionTypes(dispatchedOnChange), [UI_EDIT_COMMENT]);\n\n const onPost = comment.edition.onPost;\n t.true(isFunction(onPost));\n const dispatchedOnPost = await onPost();\n\n t.deepEqual(actionTypes(dispatchedOnPost), [\n SEND_POST_COMMENT_REQUEST,\n SEND_POST_COMMENT_SUCCESS\n ]);\n\n const onClick = comment.confirmation.onClick;\n t.true(isFunction(onClick));\n const dispatchedOnClick = await onClick();\n\n t.deepEqual(actionTypes(dispatchedOnClick), [\n LOCATION_SEE_COMMENT_REQUEST,\n LOCATION_SEE_COMMENT_SUCCESS\n ]);\n});\n\ntest('should not see comment section after failure on learner progression', t => {\n const dispatch = createDispatch(popinLearnerFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerFailure);\n t.is(props.summary.comment, null);\n t.is(props.summary.header.subtitle, '__You are out of lives!');\n t.is(props.summary.header.lives, 0);\n});\n\ntest('should verify that cta should redirect if redirectURLAfterEnd is set on state for failure popin', t => {\n const dispatch = createDispatch(popinLearnerFailureWithRedirection);\n const props = popinEnd(options, {dispatch})(popinLearnerFailureWithRedirection);\n\n const header = props.summary.header;\n const cta = header.cta;\n t.is(cta.title, '__Click to continue');\n t.true(isUndefined(cta.onClick));\n t.is(cta.href, 'http://www.google.com');\n});\n\ntest('should verify that cta should redirect if redirectURLAfterEnd is set on state for success popin', t => {\n const dispatch = createDispatch(popinLearnerSuccessWithRedirection);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccessWithRedirection);\n\n const header = props.summary.header;\n const cta = header.cta;\n t.is(cta.title, '__Click to continue');\n t.true(isUndefined(cta.onClick));\n t.is(cta.href, 'http://www.google.com');\n});\n\ntest('should not see comment section after failure on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningFailure);\n const props = popinEnd(options, {\n dispatch\n })(popinMicrolearningFailure);\n t.is(props.summary.comment, null);\n});\n\ntest('should not see comment section after success on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningSuccess);\n const props = popinEnd(options, {\n dispatch\n })(popinMicrolearningSuccess);\n t.is(props.summary.comment, null);\n});\n\ntest(\"livesDisabled == true ---> should not see lives and 'You are out of lives!' message\", t => {\n const dispatch = createDispatch(popinLearnerAdaptiveFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerAdaptiveFailure);\n\n t.is(props.summary.header.subtitle, '__Nice try!');\n t.is(props.summary.header.lives, null);\n});\n\ntest('should create a \"Back to Home\" CTA after success on learner progression with coach content', async t => {\n const state = pipe(\n set(['data', 'contents', 'level', 'entities', '1.B', 'level'], 'coach'),\n set('data.nextContent.entities.idProgression1234', null)\n )(popinLearnerSuccess);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Back to home');\n t.deepEqual(map('type')(await cta.onClick()), [\n '@@location/EXIT_REQUEST',\n '@@location/EXIT_FAILURE'\n ]);\n t.falsy(cta.href);\n\n t.falsy(props.summary.action);\n});\n\ntest('should create a \"Back to Home\" CTA after success on learner progression with content with only base level', async t => {\n const state = set(\n ['data', 'nextContent', 'entities', 'idProgression1234'],\n null,\n popinLearnerSuccess\n );\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n const header = props.summary.header;\n t.is(header.rank, '+1');\n t.is(header.stars, '+2');\n t.is(header.type, 'popinEnd');\n\n const cta = header.cta;\n t.is(cta.title, '__Back to home');\n t.deepEqual(map('type')(await cta.onClick()), [\n '@@location/EXIT_REQUEST',\n '@@location/EXIT_FAILURE'\n ]);\n t.falsy(cta.href);\n});\n\ntest('should create a \"Retry Level\" CTA after failure on learner progression', t => {\n const dispatch = createDispatch(popinLearnerFailure);\n const props = popinEnd(options, {dispatch})(popinLearnerFailure);\n\n const header = props.summary.header;\n t.is(header.rank, '-1');\n t.is(header.type, 'popinEnd');\n\n const cta = props.summary.header.cta;\n t.is(cta.title, '__Retry level');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n\n const action = props.summary.action;\n t.is(action.prefix, '__Retry level_');\n t.is(action.title, 'La recherche en ligne - Base');\n\n const buttonCta = action.button;\n t.is(buttonCta.title, '__Retry level');\n});\n\ntest('should open recommendation', async t => {\n const dispatch = createDispatch(popinLearnerSuccess);\n const props = popinEnd(options, {dispatch})(popinLearnerSuccess);\n\n const recommendations = props.summary.recommendation;\n\n const dispatchedOpenRecommmendation = await recommendations.cards[0].onClick();\n t.deepEqual(actionTypes(dispatchedOpenRecommmendation), [\n LOCATION_OPEN_RECOMMENDATION_REQUEST,\n LOCATION_OPEN_RECOMMENDATION_SUCCESS\n ]);\n});\n\ntest('should create a \"Retry Chapter\" CTA after failure on microlearning progression', t => {\n const dispatch = createDispatch(popinMicrolearningFailure);\n const props = popinEnd(options, {dispatch})(popinMicrolearningFailure);\n\n const header = props.summary.header;\n t.falsy(header.rank);\n t.falsy(header.stars);\n t.is(header.type, 'popinEnd');\n\n const cta = props.summary.header.cta;\n t.is(cta.title, '__Retry chapter');\n t.true(isFunction(cta.onClick));\n t.falsy(cta.href);\n});\n\ntest('should extract feedback content from exit node', t => {\n const ref = 'biba-exit-node-A';\n const progressionId = getCurrentProgressionId(popinMicrolearningFailure);\n const state = pipe(\n set(`data.exitNodes.entities.${ref}`, {\n ref,\n _id: '5a4e2adbd56b8b7ddab06532',\n type: 'success',\n title: 'biba_exit_node_A.title',\n description: 'biba_exit_node_A.description',\n mediaDescription: 'biba_exit_node_A.media.description',\n media: {\n ref: 'biba_exit_node_A-media',\n type: 'pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',\n mimeType: 'application/pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n subtitles: 'biba_exit_node_A.media.pdf.subtitles',\n posters: []\n },\n __v: 0\n }),\n set(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref)\n )(popinMicrolearningFailure);\n\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n t.deepEqual(get('summary.feedback', props), {\n title: 'biba_exit_node_A.title',\n description: 'biba_exit_node_A.description',\n mediaDescription: 'biba_exit_node_A.media.description',\n media: {\n type: 'pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n mimeType: 'application/pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'\n }\n });\n});\n\ntest('should extract feedback content from exit node and counters', t => {\n const ref = 'biba-exit-node-A';\n const progressionId = getCurrentProgressionId(popinMicrolearningFailure);\n const state = pipe(\n set(`data.exitNodes.entities.${ref}`, {\n ref,\n _id: '5a4e2adbd56b8b7ddab06532',\n type: 'success',\n title: 'title total: {{ success }}',\n description: 'description {{ success }}/{{ total }}',\n mediaDescription: 'mediaDescription {{ total }}',\n media: {\n ref: 'biba_exit_node_A-media',\n type: 'pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',\n mimeType: 'application/pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n subtitles: 'biba_exit_node_A.media.pdf.subtitles',\n posters: []\n },\n __v: 0\n }),\n set(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref),\n set(`data.progressions.entities.${progressionId}.state.variables`, {success: 4, total: 10})\n )(popinMicrolearningFailure);\n const dispatch = createDispatch(state);\n const props = popinEnd(options, {dispatch})(state);\n\n t.deepEqual(get('summary.feedback', props), {\n title: 'title total: 4',\n description: 'description 4/10',\n mediaDescription: 'mediaDescription 10',\n media: {\n type: 'pdf',\n description: 'biba_exit_node_A.media.pdf.description',\n mimeType: 'application/pdf',\n mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'\n }\n });\n});\n"],"file":"popin-end.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/player-web",
3
- "version": "3.13.121-alpha.1+fff4dc5c2",
3
+ "version": "3.13.123",
4
4
  "description": "CoorpAcademy web slide-player",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -54,10 +54,10 @@
54
54
  "webpack-dev-server": "^3.11.0"
55
55
  },
56
56
  "dependencies": {
57
- "@coorpacademy/components": "10.4.6-alpha.1+fff4dc5c2",
58
- "@coorpacademy/player-services": "5.2.7",
59
- "@coorpacademy/player-store": "4.2.9",
60
- "@coorpacademy/progression-engine": "11.1.17",
57
+ "@coorpacademy/components": "10.4.7",
58
+ "@coorpacademy/player-services": "5.2.8",
59
+ "@coorpacademy/player-store": "4.2.10",
60
+ "@coorpacademy/progression-engine": "11.1.18",
61
61
  "@coorpacademy/redux-task": "1.1.3",
62
62
  "@coorpacademy/translate": "6.1.3",
63
63
  "@coorpacademy/webpack-config": "10.0.2",
@@ -65,5 +65,5 @@
65
65
  "react": "~16.13.1",
66
66
  "react-dom": "~16.13.1"
67
67
  },
68
- "gitHead": "fff4dc5c21579939a230b5fa17a9afb1ce6a6619"
68
+ "gitHead": "7ad72d7b0ccf38ea7df33aef35f3bea737a5d9ba"
69
69
  }