@coorpacademy/player-web 4.2.11 → 4.2.12

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.
Files changed (157) hide show
  1. package/es/map-state-to-props/test/answer.js +390 -0
  2. package/es/map-state-to-props/test/answer.js.map +1 -0
  3. package/es/map-state-to-props/test/fixtures/player/clue.json +131 -0
  4. package/es/map-state-to-props/test/fixtures/player/loading-clue.json +131 -0
  5. package/es/map-state-to-props/test/fixtures/player/no-clue.json +118 -0
  6. package/es/map-state-to-props/test/fixtures/player/slide-no-lessons.json +115 -0
  7. package/es/map-state-to-props/test/fixtures/player/slide.json +127 -0
  8. package/es/map-state-to-props/test/fixtures/popin-correction/popin-extra-life.json +139 -0
  9. package/es/map-state-to-props/test/fixtures/popin-correction/popin-failure.json +145 -0
  10. package/es/map-state-to-props/test/fixtures/popin-correction/popin-next-level.json +282 -0
  11. package/es/map-state-to-props/test/fixtures/popin-correction/popin-revival.json +140 -0
  12. package/es/map-state-to-props/test/fixtures/popin-correction/popin-success-node.json +154 -0
  13. package/es/map-state-to-props/test/fixtures/popin-correction/popin-success.json +268 -0
  14. package/es/map-state-to-props/test/fixtures/popin-correction/state-fail-multiple-answers.json +473 -0
  15. package/es/map-state-to-props/test/fixtures/popin-end/fail.json +205 -0
  16. package/es/map-state-to-props/test/fixtures/popin-end/learner-adaptive-failure.json +209 -0
  17. package/es/map-state-to-props/test/fixtures/popin-end/learner-failure-with-redirection.json +211 -0
  18. package/es/map-state-to-props/test/fixtures/popin-end/learner-failure.json +211 -0
  19. package/es/map-state-to-props/test/fixtures/popin-end/learner-success-with-redirection.json +278 -0
  20. package/es/map-state-to-props/test/fixtures/popin-end/learner-success.json +275 -0
  21. package/es/map-state-to-props/test/fixtures/popin-end/success.json +223 -0
  22. package/es/map-state-to-props/test/fixtures/progression-learner.json +102 -0
  23. package/es/map-state-to-props/test/fixtures/progression-state.json +45 -0
  24. package/es/map-state-to-props/test/fixtures/slides/basic.json +60 -0
  25. package/es/map-state-to-props/test/fixtures/slides/plop.json +56 -0
  26. package/es/map-state-to-props/test/fixtures/slides/qcm-drag.json +56 -0
  27. package/es/map-state-to-props/test/fixtures/slides/qcm-graphic.json +49 -0
  28. package/es/map-state-to-props/test/fixtures/slides/qcm.json +43 -0
  29. package/es/map-state-to-props/test/fixtures/slides/slider.json +57 -0
  30. package/es/map-state-to-props/test/fixtures/slides/template.json +49 -0
  31. package/es/map-state-to-props/test/fixtures/slides/videos.json +163 -0
  32. package/es/map-state-to-props/test/fixtures/slides/with-context.json +69 -0
  33. package/es/map-state-to-props/test/header.js +131 -0
  34. package/es/map-state-to-props/test/header.js.map +1 -0
  35. package/es/map-state-to-props/test/index.js +107 -0
  36. package/es/map-state-to-props/test/index.js.map +1 -0
  37. package/es/map-state-to-props/test/player.js +680 -0
  38. package/es/map-state-to-props/test/player.js.map +1 -0
  39. package/es/map-state-to-props/test/popin-correction.create-header-cta.js +301 -0
  40. package/es/map-state-to-props/test/popin-correction.create-header-cta.js.map +1 -0
  41. package/es/map-state-to-props/test/popin-correction.js +80 -0
  42. package/es/map-state-to-props/test/popin-correction.js.map +1 -0
  43. package/es/map-state-to-props/test/popin-end.js +313 -0
  44. package/es/map-state-to-props/test/popin-end.js.map +1 -0
  45. package/es/map-state-to-props/test/popin-error.js +77 -0
  46. package/es/map-state-to-props/test/popin-error.js.map +1 -0
  47. package/es/map-state-to-props/test/resources.js +31 -0
  48. package/es/map-state-to-props/test/resources.js.map +1 -0
  49. package/es/test/add-timeout.js +8 -0
  50. package/es/test/add-timeout.js.map +1 -0
  51. package/es/test/helpers/css-register.js +3 -0
  52. package/es/test/helpers/css-register.js.map +1 -0
  53. package/es/test/helpers/macro.js +6 -0
  54. package/es/test/helpers/macro.js.map +1 -0
  55. package/es/test/index.js +39 -0
  56. package/es/test/index.js.map +1 -0
  57. package/es/test/init-reducers.js +50 -0
  58. package/es/test/init-reducers.js.map +1 -0
  59. package/es/test/locales.js +8 -0
  60. package/es/test/locales.js.map +1 -0
  61. package/es/test/run-app.js +20 -0
  62. package/es/test/run-app.js.map +1 -0
  63. package/es/test/store.js +38 -0
  64. package/es/test/store.js.map +1 -0
  65. package/es/views/test/helpers/render.js +13 -0
  66. package/es/views/test/helpers/render.js.map +1 -0
  67. package/es/views/test/helpers/state-to-vnode.js +7 -0
  68. package/es/views/test/helpers/state-to-vnode.js.map +1 -0
  69. package/es/views/test/loading.js +15 -0
  70. package/es/views/test/loading.js.map +1 -0
  71. package/es/views/test/popin-correction.js +223 -0
  72. package/es/views/test/popin-correction.js.map +1 -0
  73. package/es/views/test/popin-end.js +93 -0
  74. package/es/views/test/popin-end.js.map +1 -0
  75. package/es/views/test/router.js +22 -0
  76. package/es/views/test/router.js.map +1 -0
  77. package/es/views/test/slide.js +335 -0
  78. package/es/views/test/slide.js.map +1 -0
  79. package/lib/map-state-to-props/test/answer.js +408 -0
  80. package/lib/map-state-to-props/test/answer.js.map +1 -0
  81. package/lib/map-state-to-props/test/fixtures/player/clue.json +131 -0
  82. package/lib/map-state-to-props/test/fixtures/player/loading-clue.json +131 -0
  83. package/lib/map-state-to-props/test/fixtures/player/no-clue.json +118 -0
  84. package/lib/map-state-to-props/test/fixtures/player/slide-no-lessons.json +115 -0
  85. package/lib/map-state-to-props/test/fixtures/player/slide.json +127 -0
  86. package/lib/map-state-to-props/test/fixtures/popin-correction/popin-extra-life.json +139 -0
  87. package/lib/map-state-to-props/test/fixtures/popin-correction/popin-failure.json +145 -0
  88. package/lib/map-state-to-props/test/fixtures/popin-correction/popin-next-level.json +282 -0
  89. package/lib/map-state-to-props/test/fixtures/popin-correction/popin-revival.json +140 -0
  90. package/lib/map-state-to-props/test/fixtures/popin-correction/popin-success-node.json +154 -0
  91. package/lib/map-state-to-props/test/fixtures/popin-correction/popin-success.json +268 -0
  92. package/lib/map-state-to-props/test/fixtures/popin-correction/state-fail-multiple-answers.json +473 -0
  93. package/lib/map-state-to-props/test/fixtures/popin-end/fail.json +205 -0
  94. package/lib/map-state-to-props/test/fixtures/popin-end/learner-adaptive-failure.json +209 -0
  95. package/lib/map-state-to-props/test/fixtures/popin-end/learner-failure-with-redirection.json +211 -0
  96. package/lib/map-state-to-props/test/fixtures/popin-end/learner-failure.json +211 -0
  97. package/lib/map-state-to-props/test/fixtures/popin-end/learner-success-with-redirection.json +278 -0
  98. package/lib/map-state-to-props/test/fixtures/popin-end/learner-success.json +275 -0
  99. package/lib/map-state-to-props/test/fixtures/popin-end/success.json +223 -0
  100. package/lib/map-state-to-props/test/fixtures/progression-learner.json +102 -0
  101. package/lib/map-state-to-props/test/fixtures/progression-state.json +45 -0
  102. package/lib/map-state-to-props/test/fixtures/slides/basic.json +60 -0
  103. package/lib/map-state-to-props/test/fixtures/slides/plop.json +56 -0
  104. package/lib/map-state-to-props/test/fixtures/slides/qcm-drag.json +56 -0
  105. package/lib/map-state-to-props/test/fixtures/slides/qcm-graphic.json +49 -0
  106. package/lib/map-state-to-props/test/fixtures/slides/qcm.json +43 -0
  107. package/lib/map-state-to-props/test/fixtures/slides/slider.json +57 -0
  108. package/lib/map-state-to-props/test/fixtures/slides/template.json +49 -0
  109. package/lib/map-state-to-props/test/fixtures/slides/videos.json +163 -0
  110. package/lib/map-state-to-props/test/fixtures/slides/with-context.json +69 -0
  111. package/lib/map-state-to-props/test/header.js +143 -0
  112. package/lib/map-state-to-props/test/header.js.map +1 -0
  113. package/lib/map-state-to-props/test/index.js +100 -0
  114. package/lib/map-state-to-props/test/index.js.map +1 -0
  115. package/lib/map-state-to-props/test/player.js +714 -0
  116. package/lib/map-state-to-props/test/player.js.map +1 -0
  117. package/lib/map-state-to-props/test/popin-correction.create-header-cta.js +315 -0
  118. package/lib/map-state-to-props/test/popin-correction.create-header-cta.js.map +1 -0
  119. package/lib/map-state-to-props/test/popin-correction.js +85 -0
  120. package/lib/map-state-to-props/test/popin-correction.js.map +1 -0
  121. package/lib/map-state-to-props/test/popin-end.js +328 -0
  122. package/lib/map-state-to-props/test/popin-end.js.map +1 -0
  123. package/lib/map-state-to-props/test/popin-error.js +85 -0
  124. package/lib/map-state-to-props/test/popin-error.js.map +1 -0
  125. package/lib/map-state-to-props/test/resources.js +42 -0
  126. package/lib/map-state-to-props/test/resources.js.map +1 -0
  127. package/lib/test/add-timeout.js +14 -0
  128. package/lib/test/add-timeout.js.map +1 -0
  129. package/lib/test/helpers/css-register.js +8 -0
  130. package/lib/test/helpers/css-register.js.map +1 -0
  131. package/lib/test/helpers/macro.js +12 -0
  132. package/lib/test/helpers/macro.js.map +1 -0
  133. package/lib/test/index.js +53 -0
  134. package/lib/test/index.js.map +1 -0
  135. package/lib/test/init-reducers.js +57 -0
  136. package/lib/test/init-reducers.js.map +1 -0
  137. package/lib/test/locales.js +18 -0
  138. package/lib/test/locales.js.map +1 -0
  139. package/lib/test/run-app.js +27 -0
  140. package/lib/test/run-app.js.map +1 -0
  141. package/lib/test/store.js +45 -0
  142. package/lib/test/store.js.map +1 -0
  143. package/lib/views/test/helpers/render.js +24 -0
  144. package/lib/views/test/helpers/render.js.map +1 -0
  145. package/lib/views/test/helpers/state-to-vnode.js +14 -0
  146. package/lib/views/test/helpers/state-to-vnode.js.map +1 -0
  147. package/lib/views/test/loading.js +22 -0
  148. package/lib/views/test/loading.js.map +1 -0
  149. package/lib/views/test/popin-correction.js +237 -0
  150. package/lib/views/test/popin-correction.js.map +1 -0
  151. package/lib/views/test/popin-end.js +105 -0
  152. package/lib/views/test/popin-end.js.map +1 -0
  153. package/lib/views/test/router.js +32 -0
  154. package/lib/views/test/router.js.map +1 -0
  155. package/lib/views/test/slide.js +359 -0
  156. package/lib/views/test/slide.js.map +1 -0
  157. package/package.json +4 -3
@@ -0,0 +1,328 @@
1
+ "use strict";
2
+
3
+ var _isUndefined2 = _interopRequireDefault(require("lodash/fp/isUndefined"));
4
+
5
+ var _isFunction2 = _interopRequireDefault(require("lodash/fp/isFunction"));
6
+
7
+ var _identity2 = _interopRequireDefault(require("lodash/fp/identity"));
8
+
9
+ var _pipe2 = _interopRequireDefault(require("lodash/fp/pipe"));
10
+
11
+ var _set2 = _interopRequireDefault(require("lodash/fp/set"));
12
+
13
+ var _map2 = _interopRequireDefault(require("lodash/fp/map"));
14
+
15
+ var _get2 = _interopRequireDefault(require("lodash/fp/get"));
16
+
17
+ var _ava = _interopRequireDefault(require("ava"));
18
+
19
+ var _translate = require("@coorpacademy/translate");
20
+
21
+ var _playerStore = require("@coorpacademy/player-store");
22
+
23
+ var _popinEnd = _interopRequireDefault(require("../popin-end"));
24
+
25
+ var _learnerSuccess = _interopRequireDefault(require("./fixtures/popin-end/learner-success"));
26
+
27
+ var _learnerSuccessWithRedirection = _interopRequireDefault(require("./fixtures/popin-end/learner-success-with-redirection"));
28
+
29
+ var _learnerFailure = _interopRequireDefault(require("./fixtures/popin-end/learner-failure"));
30
+
31
+ var _learnerFailureWithRedirection = _interopRequireDefault(require("./fixtures/popin-end/learner-failure-with-redirection"));
32
+
33
+ var _learnerAdaptiveFailure = _interopRequireDefault(require("./fixtures/popin-end/learner-adaptive-failure"));
34
+
35
+ var _fail = _interopRequireDefault(require("./fixtures/popin-end/fail"));
36
+
37
+ var _success = _interopRequireDefault(require("./fixtures/popin-end/success"));
38
+
39
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
+
41
+ const services = {
42
+ Comments: {
43
+ post: _identity2.default
44
+ },
45
+ Location: {
46
+ openRecommendation: _identity2.default,
47
+ nextLevel: _identity2.default,
48
+ seeComment: _identity2.default
49
+ }
50
+ };
51
+
52
+ const createDispatch = state => {
53
+ const getState = () => state;
54
+
55
+ return async action => {
56
+ const dispatched = [];
57
+
58
+ const dispatch = maybeAction => (0, _isFunction2.default)(maybeAction) ? maybeAction(dispatch, getState, {
59
+ services
60
+ }) : dispatched.push(maybeAction);
61
+
62
+ await dispatch(action);
63
+ return dispatched;
64
+ };
65
+ };
66
+
67
+ const actionTypes = actions => (0, _map2.default)(({
68
+ type
69
+ }) => type, actions);
70
+
71
+ const options = {
72
+ translate: _translate.mockTranslate
73
+ };
74
+ (0, _ava.default)('should create a "Next Level" CTA after success on learner progression', async t => {
75
+ const dispatch = createDispatch(_learnerSuccess.default);
76
+ const props = (0, _popinEnd.default)(options, {
77
+ dispatch
78
+ })(_learnerSuccess.default);
79
+ const header = props.summary.header;
80
+ t.is(header.rank, '+1');
81
+ t.is(header.stars, '+2');
82
+ t.is(header.type, 'popinEnd');
83
+ const cta = header.cta;
84
+ t.is(cta.title, '__Next level');
85
+ t.true((0, _isFunction2.default)(cta.onClick));
86
+ t.falsy(cta.href);
87
+ const dispatchedHeaderCta = await cta.onClick();
88
+ t.deepEqual(actionTypes(dispatchedHeaderCta), [_playerStore.LOCATION_NEXT_CONTENT_REQUEST, _playerStore.LOCATION_NEXT_CONTENT_SUCCESS]);
89
+ const action = props.summary.action;
90
+ t.is(action.prefix, '__Next level_');
91
+ t.is(action.title, 'La recherche en ligne - Avancé');
92
+ const buttonCta = action.button;
93
+ t.is(buttonCta.title, '__Next level');
94
+ const dispatchedActionCta = await buttonCta.onClick();
95
+ t.deepEqual(actionTypes(dispatchedActionCta), [_playerStore.LOCATION_NEXT_CONTENT_REQUEST, _playerStore.LOCATION_NEXT_CONTENT_SUCCESS]);
96
+ const comment = props.summary.comment;
97
+ t.is(comment.edition.postDisabled, true);
98
+ });
99
+ (0, _ava.default)('should write, send, and go see a comment after success on learner progression', async t => {
100
+ const state = (0, _pipe2.default)((0, _set2.default)('data.comments.entities.idProgression1234.isSent', true), (0, _set2.default)('ui.comments.text', 'textToSend'))(_learnerSuccess.default);
101
+ const dispatch = createDispatch(state);
102
+ const props = (0, _popinEnd.default)(options, {
103
+ dispatch
104
+ })(state);
105
+ const comment = props.summary.comment;
106
+ t.is(comment.isSent, true);
107
+ t.is(comment.edition.value, 'textToSend');
108
+ t.is(comment.edition.postDisabled, false);
109
+ const onChange = comment.edition.onChange;
110
+ t.true((0, _isFunction2.default)(onChange));
111
+ const dispatchedOnChange = await onChange({
112
+ target: {
113
+ value: 'foo'
114
+ }
115
+ });
116
+ t.deepEqual(actionTypes(dispatchedOnChange), [_playerStore.UI_EDIT_COMMENT]);
117
+ const onPost = comment.edition.onPost;
118
+ t.true((0, _isFunction2.default)(onPost));
119
+ const dispatchedOnPost = await onPost();
120
+ t.deepEqual(actionTypes(dispatchedOnPost), [_playerStore.SEND_POST_COMMENT_REQUEST, _playerStore.SEND_POST_COMMENT_SUCCESS]);
121
+ const onClick = comment.confirmation.onClick;
122
+ t.true((0, _isFunction2.default)(onClick));
123
+ const dispatchedOnClick = await onClick();
124
+ t.deepEqual(actionTypes(dispatchedOnClick), [_playerStore.LOCATION_SEE_COMMENT_REQUEST, _playerStore.LOCATION_SEE_COMMENT_SUCCESS]);
125
+ });
126
+ (0, _ava.default)('should not see comment section after failure on learner progression', t => {
127
+ const dispatch = createDispatch(_learnerFailure.default);
128
+ const props = (0, _popinEnd.default)(options, {
129
+ dispatch
130
+ })(_learnerFailure.default);
131
+ t.is(props.summary.comment, null);
132
+ t.is(props.summary.header.subtitle, '__You are out of lives!');
133
+ t.is(props.summary.header.lives, 0);
134
+ });
135
+ (0, _ava.default)('should verify that cta should redirect if redirectURLAfterEnd is set on state for failure popin', t => {
136
+ const dispatch = createDispatch(_learnerFailureWithRedirection.default);
137
+ const props = (0, _popinEnd.default)(options, {
138
+ dispatch
139
+ })(_learnerFailureWithRedirection.default);
140
+ const header = props.summary.header;
141
+ const cta = header.cta;
142
+ t.is(cta.title, '__Click to continue');
143
+ t.true((0, _isUndefined2.default)(cta.onClick));
144
+ t.is(cta.href, 'http://www.google.com');
145
+ });
146
+ (0, _ava.default)('should verify that cta should redirect if redirectURLAfterEnd is set on state for success popin', t => {
147
+ const dispatch = createDispatch(_learnerSuccessWithRedirection.default);
148
+ const props = (0, _popinEnd.default)(options, {
149
+ dispatch
150
+ })(_learnerSuccessWithRedirection.default);
151
+ const header = props.summary.header;
152
+ const cta = header.cta;
153
+ t.is(cta.title, '__Click to continue');
154
+ t.true((0, _isUndefined2.default)(cta.onClick));
155
+ t.is(cta.href, 'http://www.google.com');
156
+ });
157
+ (0, _ava.default)('should not see comment section after failure on microlearning progression', t => {
158
+ const dispatch = createDispatch(_fail.default);
159
+ const props = (0, _popinEnd.default)(options, {
160
+ dispatch
161
+ })(_fail.default);
162
+ t.is(props.summary.comment, null);
163
+ });
164
+ (0, _ava.default)('should not see comment section after success on microlearning progression', t => {
165
+ const dispatch = createDispatch(_success.default);
166
+ const props = (0, _popinEnd.default)(options, {
167
+ dispatch
168
+ })(_success.default);
169
+ t.is(props.summary.comment, null);
170
+ });
171
+ (0, _ava.default)("livesDisabled == true ---> should not see lives and 'You are out of lives!' message", t => {
172
+ const dispatch = createDispatch(_learnerAdaptiveFailure.default);
173
+ const props = (0, _popinEnd.default)(options, {
174
+ dispatch
175
+ })(_learnerAdaptiveFailure.default);
176
+ t.is(props.summary.header.subtitle, '__Nice try!');
177
+ t.is(props.summary.header.lives, null);
178
+ });
179
+ (0, _ava.default)('should create a "Back to Home" CTA after success on learner progression with coach content', async t => {
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
+ const dispatch = createDispatch(state);
182
+ const props = (0, _popinEnd.default)(options, {
183
+ dispatch
184
+ })(state);
185
+ const header = props.summary.header;
186
+ t.is(header.rank, '+1');
187
+ t.is(header.stars, '+2');
188
+ t.is(header.type, 'popinEnd');
189
+ const cta = header.cta;
190
+ t.is(cta.title, '__Back to home');
191
+ t.deepEqual((0, _map2.default)('type')(await cta.onClick()), ['@@location/EXIT_REQUEST', '@@location/EXIT_FAILURE']);
192
+ t.falsy(cta.href);
193
+ t.falsy(props.summary.action);
194
+ });
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
+ const state = (0, _set2.default)(['data', 'nextContent', 'entities', 'idProgression1234'], null, _learnerSuccess.default);
197
+ const dispatch = createDispatch(state);
198
+ const props = (0, _popinEnd.default)(options, {
199
+ dispatch
200
+ })(state);
201
+ const header = props.summary.header;
202
+ t.is(header.rank, '+1');
203
+ t.is(header.stars, '+2');
204
+ t.is(header.type, 'popinEnd');
205
+ const cta = header.cta;
206
+ t.is(cta.title, '__Back to home');
207
+ t.deepEqual((0, _map2.default)('type')(await cta.onClick()), ['@@location/EXIT_REQUEST', '@@location/EXIT_FAILURE']);
208
+ t.falsy(cta.href);
209
+ });
210
+ (0, _ava.default)('should create a "Retry Level" CTA after failure on learner progression', t => {
211
+ const dispatch = createDispatch(_learnerFailure.default);
212
+ const props = (0, _popinEnd.default)(options, {
213
+ dispatch
214
+ })(_learnerFailure.default);
215
+ const header = props.summary.header;
216
+ t.is(header.rank, '-1');
217
+ t.is(header.type, 'popinEnd');
218
+ const cta = props.summary.header.cta;
219
+ t.is(cta.title, '__Retry level');
220
+ t.true((0, _isFunction2.default)(cta.onClick));
221
+ t.falsy(cta.href);
222
+ const action = props.summary.action;
223
+ t.is(action.prefix, '__Retry level_');
224
+ t.is(action.title, 'La recherche en ligne - Base');
225
+ const buttonCta = action.button;
226
+ t.is(buttonCta.title, '__Retry level');
227
+ });
228
+ (0, _ava.default)('should open recommendation', async t => {
229
+ const dispatch = createDispatch(_learnerSuccess.default);
230
+ const props = (0, _popinEnd.default)(options, {
231
+ dispatch
232
+ })(_learnerSuccess.default);
233
+ const recommendations = props.summary.recommendation;
234
+ const dispatchedOpenRecommmendation = await recommendations.cards[0].onClick();
235
+ t.deepEqual(actionTypes(dispatchedOpenRecommmendation), [_playerStore.LOCATION_OPEN_RECOMMENDATION_REQUEST, _playerStore.LOCATION_OPEN_RECOMMENDATION_SUCCESS]);
236
+ });
237
+ (0, _ava.default)('should create a "Retry Chapter" CTA after failure on microlearning progression', t => {
238
+ const dispatch = createDispatch(_fail.default);
239
+ const props = (0, _popinEnd.default)(options, {
240
+ dispatch
241
+ })(_fail.default);
242
+ const header = props.summary.header;
243
+ t.falsy(header.rank);
244
+ t.falsy(header.stars);
245
+ t.is(header.type, 'popinEnd');
246
+ const cta = props.summary.header.cta;
247
+ t.is(cta.title, '__Retry chapter');
248
+ t.true((0, _isFunction2.default)(cta.onClick));
249
+ t.falsy(cta.href);
250
+ });
251
+ (0, _ava.default)('should extract feedback content from exit node', t => {
252
+ const ref = 'biba-exit-node-A';
253
+ const progressionId = (0, _playerStore.getCurrentProgressionId)(_fail.default);
254
+ const state = (0, _pipe2.default)((0, _set2.default)(`data.exitNodes.entities.${ref}`, {
255
+ ref,
256
+ _id: '5a4e2adbd56b8b7ddab06532',
257
+ type: 'success',
258
+ title: 'biba_exit_node_A.title',
259
+ description: 'biba_exit_node_A.description',
260
+ mediaDescription: 'biba_exit_node_A.media.description',
261
+ media: {
262
+ ref: 'biba_exit_node_A-media',
263
+ type: 'pdf',
264
+ mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',
265
+ mimeType: 'application/pdf',
266
+ description: 'biba_exit_node_A.media.pdf.description',
267
+ subtitles: 'biba_exit_node_A.media.pdf.subtitles',
268
+ posters: []
269
+ },
270
+ __v: 0
271
+ }), (0, _set2.default)(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref))(_fail.default);
272
+ const dispatch = createDispatch(state);
273
+ const props = (0, _popinEnd.default)(options, {
274
+ dispatch
275
+ })(state);
276
+ t.deepEqual((0, _get2.default)('summary.feedback', props), {
277
+ title: 'biba_exit_node_A.title',
278
+ description: 'biba_exit_node_A.description',
279
+ mediaDescription: 'biba_exit_node_A.media.description',
280
+ media: {
281
+ type: 'pdf',
282
+ description: 'biba_exit_node_A.media.pdf.description',
283
+ mimeType: 'application/pdf',
284
+ mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'
285
+ }
286
+ });
287
+ });
288
+ (0, _ava.default)('should extract feedback content from exit node and counters', t => {
289
+ const ref = 'biba-exit-node-A';
290
+ const progressionId = (0, _playerStore.getCurrentProgressionId)(_fail.default);
291
+ const state = (0, _pipe2.default)((0, _set2.default)(`data.exitNodes.entities.${ref}`, {
292
+ ref,
293
+ _id: '5a4e2adbd56b8b7ddab06532',
294
+ type: 'success',
295
+ title: 'title total: {{ success }}',
296
+ description: 'description {{ success }}/{{ total }}',
297
+ mediaDescription: 'mediaDescription {{ total }}',
298
+ media: {
299
+ ref: 'biba_exit_node_A-media',
300
+ type: 'pdf',
301
+ mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl',
302
+ mimeType: 'application/pdf',
303
+ description: 'biba_exit_node_A.media.pdf.description',
304
+ subtitles: 'biba_exit_node_A.media.pdf.subtitles',
305
+ posters: []
306
+ },
307
+ __v: 0
308
+ }), (0, _set2.default)(`data.progressions.entities.${progressionId}.state.nextContent.ref`, ref), (0, _set2.default)(`data.progressions.entities.${progressionId}.state.variables`, {
309
+ success: 4,
310
+ total: 10
311
+ }))(_fail.default);
312
+ const dispatch = createDispatch(state);
313
+ const props = (0, _popinEnd.default)(options, {
314
+ dispatch
315
+ })(state);
316
+ t.deepEqual((0, _get2.default)('summary.feedback', props), {
317
+ title: 'title total: 4',
318
+ description: 'description 4/10',
319
+ mediaDescription: 'mediaDescription 10',
320
+ media: {
321
+ type: 'pdf',
322
+ description: 'biba_exit_node_A.media.pdf.description',
323
+ mimeType: 'application/pdf',
324
+ mediaUrl: 'biba_exit_node_A.media.pdf.mediaUrl'
325
+ }
326
+ });
327
+ });
328
+ //# sourceMappingURL=popin-end.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"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","test","t","popinLearnerSuccess","props","popinEnd","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","getCurrentProgressionId","_id","description","mediaDescription","media","mediaUrl","mimeType","subtitles","posters","__v","success","total"],"sources":["../../../src/map-state-to-props/test/popin-end.js"],"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"],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _omit2 = _interopRequireDefault(require("lodash/fp/omit"));
4
+
5
+ var _identity2 = _interopRequireDefault(require("lodash/fp/identity"));
6
+
7
+ var _ava = _interopRequireDefault(require("ava"));
8
+
9
+ var _errorPopin = _interopRequireDefault(require("../error-popin"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ (0, _ava.default)('should return error popin props if any call fails', t => {
14
+ t.plan(2);
15
+ global.window = {
16
+ location: {
17
+ reload: () => {
18
+ t.pass();
19
+ }
20
+ }
21
+ };
22
+ const props = (0, _errorPopin.default)({
23
+ dispatch: _identity2.default
24
+ })({
25
+ data: {
26
+ progressions: {
27
+ isFailure: true
28
+ }
29
+ }
30
+ });
31
+ t.deepEqual((0, _omit2.default)('firstButton.handleOnclick', props), {
32
+ content: 'An unexpected error has occurred',
33
+ icon: 'AlertDiamond',
34
+ mode: 'alert',
35
+ descriptionText: 'Please reload the page and try again',
36
+ firstButton: {
37
+ largeButton: true,
38
+ label: 'Reload',
39
+ type: 'primary',
40
+ 'aria-label': 'Reload'
41
+ }
42
+ });
43
+ props.firstButton.handleOnclick();
44
+ });
45
+ (0, _ava.default)('should return error popin props if content calls fail', t => {
46
+ t.plan(2);
47
+ global.window = {
48
+ location: {
49
+ reload: () => {
50
+ t.pass();
51
+ }
52
+ }
53
+ };
54
+ const props = (0, _errorPopin.default)({
55
+ dispatch: _identity2.default
56
+ })({
57
+ data: {
58
+ contents: {
59
+ level: {
60
+ isFailure: true
61
+ }
62
+ }
63
+ }
64
+ });
65
+ t.deepEqual((0, _omit2.default)('firstButton.handleOnclick', props), {
66
+ content: 'An unexpected error has occurred',
67
+ icon: 'AlertDiamond',
68
+ mode: 'alert',
69
+ descriptionText: 'Please reload the page and try again',
70
+ firstButton: {
71
+ largeButton: true,
72
+ label: 'Reload',
73
+ type: 'primary',
74
+ 'aria-label': 'Reload'
75
+ }
76
+ });
77
+ props.firstButton.handleOnclick();
78
+ });
79
+ (0, _ava.default)('should not return error popin props', t => {
80
+ const props = (0, _errorPopin.default)({
81
+ dispatch: _identity2.default
82
+ })({});
83
+ t.is(props, undefined);
84
+ });
85
+ //# sourceMappingURL=popin-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popin-error.js","names":["test","t","plan","global","window","location","reload","pass","props","mapStateToErrorPopinProps","dispatch","data","progressions","isFailure","deepEqual","content","icon","mode","descriptionText","firstButton","largeButton","label","type","handleOnclick","contents","level","is","undefined"],"sources":["../../../src/map-state-to-props/test/popin-error.js"],"sourcesContent":["import test from 'ava';\n\nimport {identity, omit} from 'lodash/fp';\n\nimport mapStateToErrorPopinProps from '../error-popin';\n\ntest('should return error popin props if any call fails', t => {\n t.plan(2);\n global.window = {\n location: {\n reload: () => {\n t.pass();\n }\n }\n };\n const props = mapStateToErrorPopinProps({dispatch: identity})({\n data: {\n progressions: {\n isFailure: true\n }\n }\n });\n\n t.deepEqual(omit('firstButton.handleOnclick', props), {\n content: 'An unexpected error has occurred',\n icon: 'AlertDiamond',\n mode: 'alert',\n descriptionText: 'Please reload the page and try again',\n firstButton: {\n largeButton: true,\n label: 'Reload',\n type: 'primary',\n 'aria-label': 'Reload'\n }\n });\n props.firstButton.handleOnclick();\n});\n\ntest('should return error popin props if content calls fail', t => {\n t.plan(2);\n global.window = {\n location: {\n reload: () => {\n t.pass();\n }\n }\n };\n const props = mapStateToErrorPopinProps({dispatch: identity})({\n data: {\n contents: {\n level: {\n isFailure: true\n }\n }\n }\n });\n\n t.deepEqual(omit('firstButton.handleOnclick', props), {\n content: 'An unexpected error has occurred',\n icon: 'AlertDiamond',\n mode: 'alert',\n descriptionText: 'Please reload the page and try again',\n firstButton: {\n largeButton: true,\n label: 'Reload',\n type: 'primary',\n 'aria-label': 'Reload'\n }\n });\n props.firstButton.handleOnclick();\n});\n\ntest('should not return error popin props', t => {\n const props = mapStateToErrorPopinProps({dispatch: identity})({});\n\n t.is(props, undefined);\n});\n"],"mappings":";;;;;;AAAA;;AAIA;;;;AAEA,IAAAA,YAAA,EAAK,mDAAL,EAA0DC,CAAC,IAAI;EAC7DA,CAAC,CAACC,IAAF,CAAO,CAAP;EACAC,MAAM,CAACC,MAAP,GAAgB;IACdC,QAAQ,EAAE;MACRC,MAAM,EAAE,MAAM;QACZL,CAAC,CAACM,IAAF;MACD;IAHO;EADI,CAAhB;EAOA,MAAMC,KAAK,GAAG,IAAAC,mBAAA,EAA0B;IAACC,QAAQ;EAAT,CAA1B,EAAgD;IAC5DC,IAAI,EAAE;MACJC,YAAY,EAAE;QACZC,SAAS,EAAE;MADC;IADV;EADsD,CAAhD,CAAd;EAQAZ,CAAC,CAACa,SAAF,CAAY,oBAAK,2BAAL,EAAkCN,KAAlC,CAAZ,EAAsD;IACpDO,OAAO,EAAE,kCAD2C;IAEpDC,IAAI,EAAE,cAF8C;IAGpDC,IAAI,EAAE,OAH8C;IAIpDC,eAAe,EAAE,sCAJmC;IAKpDC,WAAW,EAAE;MACXC,WAAW,EAAE,IADF;MAEXC,KAAK,EAAE,QAFI;MAGXC,IAAI,EAAE,SAHK;MAIX,cAAc;IAJH;EALuC,CAAtD;EAYAd,KAAK,CAACW,WAAN,CAAkBI,aAAlB;AACD,CA9BD;AAgCA,IAAAvB,YAAA,EAAK,uDAAL,EAA8DC,CAAC,IAAI;EACjEA,CAAC,CAACC,IAAF,CAAO,CAAP;EACAC,MAAM,CAACC,MAAP,GAAgB;IACdC,QAAQ,EAAE;MACRC,MAAM,EAAE,MAAM;QACZL,CAAC,CAACM,IAAF;MACD;IAHO;EADI,CAAhB;EAOA,MAAMC,KAAK,GAAG,IAAAC,mBAAA,EAA0B;IAACC,QAAQ;EAAT,CAA1B,EAAgD;IAC5DC,IAAI,EAAE;MACJa,QAAQ,EAAE;QACRC,KAAK,EAAE;UACLZ,SAAS,EAAE;QADN;MADC;IADN;EADsD,CAAhD,CAAd;EAUAZ,CAAC,CAACa,SAAF,CAAY,oBAAK,2BAAL,EAAkCN,KAAlC,CAAZ,EAAsD;IACpDO,OAAO,EAAE,kCAD2C;IAEpDC,IAAI,EAAE,cAF8C;IAGpDC,IAAI,EAAE,OAH8C;IAIpDC,eAAe,EAAE,sCAJmC;IAKpDC,WAAW,EAAE;MACXC,WAAW,EAAE,IADF;MAEXC,KAAK,EAAE,QAFI;MAGXC,IAAI,EAAE,SAHK;MAIX,cAAc;IAJH;EALuC,CAAtD;EAYAd,KAAK,CAACW,WAAN,CAAkBI,aAAlB;AACD,CAhCD;AAkCA,IAAAvB,YAAA,EAAK,qCAAL,EAA4CC,CAAC,IAAI;EAC/C,MAAMO,KAAK,GAAG,IAAAC,mBAAA,EAA0B;IAACC,QAAQ;EAAT,CAA1B,EAAgD,EAAhD,CAAd;EAEAT,CAAC,CAACyB,EAAF,CAAKlB,KAAL,EAAYmB,SAAZ;AACD,CAJD"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _identity2 = _interopRequireDefault(require("lodash/fp/identity"));
4
+
5
+ var _isArray2 = _interopRequireDefault(require("lodash/fp/isArray"));
6
+
7
+ var _ava = _interopRequireDefault(require("ava"));
8
+
9
+ var _translate = require("@coorpacademy/translate");
10
+
11
+ var _playerStore = require("@coorpacademy/player-store");
12
+
13
+ var _resources = _interopRequireDefault(require("../resources"));
14
+
15
+ var _videos = _interopRequireDefault(require("./fixtures/slides/videos"));
16
+
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+
19
+ const options = {
20
+ translate: _translate.mockTranslate
21
+ };
22
+ const store = {
23
+ dispatch: _identity2.default
24
+ };
25
+ const getResourcesProps = (0, _resources.default)(options, store);
26
+
27
+ const createAssertVideoShape = t => video => {
28
+ t.truthy(video.videoId);
29
+ t.truthy(video.description);
30
+ t.truthy(video.mimeType);
31
+ t.truthy(video.onClick);
32
+ };
33
+
34
+ (0, _ava.default)('should create list of videos', t => {
35
+ const slide = (0, _playerStore.getCurrentSlide)(_videos.default);
36
+ const props = getResourcesProps(_videos.default, slide);
37
+ const assertVideoShape = createAssertVideoShape(t);
38
+ t.true((0, _isArray2.default)(props));
39
+ t.is(props.length, 2);
40
+ props.forEach(assertVideoShape);
41
+ });
42
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","names":["options","translate","mockTranslate","store","dispatch","getResourcesProps","creategetResourcesProps","createAssertVideoShape","t","video","truthy","videoId","description","mimeType","onClick","test","slide","getCurrentSlide","unselected","props","assertVideoShape","true","is","length","forEach"],"sources":["../../../src/map-state-to-props/test/resources.js"],"sourcesContent":["import test from 'ava';\nimport {isArray, identity} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {getCurrentSlide} from '@coorpacademy/player-store';\nimport creategetResourcesProps from '../resources';\nimport unselected from './fixtures/slides/videos';\n\nconst options = {translate: mockTranslate};\nconst store = {dispatch: identity};\nconst getResourcesProps = creategetResourcesProps(options, store);\n\nconst createAssertVideoShape = t => video => {\n t.truthy(video.videoId);\n t.truthy(video.description);\n t.truthy(video.mimeType);\n t.truthy(video.onClick);\n};\n\ntest('should create list of videos', t => {\n const slide = getCurrentSlide(unselected);\n const props = getResourcesProps(unselected, slide);\n const assertVideoShape = createAssertVideoShape(t);\n\n t.true(isArray(props));\n t.is(props.length, 2);\n\n props.forEach(assertVideoShape);\n});\n"],"mappings":";;;;;;AAAA;;AAGA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,OAAO,GAAG;EAACC,SAAS,EAAEC;AAAZ,CAAhB;AACA,MAAMC,KAAK,GAAG;EAACC,QAAQ;AAAT,CAAd;AACA,MAAMC,iBAAiB,GAAG,IAAAC,kBAAA,EAAwBN,OAAxB,EAAiCG,KAAjC,CAA1B;;AAEA,MAAMI,sBAAsB,GAAGC,CAAC,IAAIC,KAAK,IAAI;EAC3CD,CAAC,CAACE,MAAF,CAASD,KAAK,CAACE,OAAf;EACAH,CAAC,CAACE,MAAF,CAASD,KAAK,CAACG,WAAf;EACAJ,CAAC,CAACE,MAAF,CAASD,KAAK,CAACI,QAAf;EACAL,CAAC,CAACE,MAAF,CAASD,KAAK,CAACK,OAAf;AACD,CALD;;AAOA,IAAAC,YAAA,EAAK,8BAAL,EAAqCP,CAAC,IAAI;EACxC,MAAMQ,KAAK,GAAG,IAAAC,4BAAA,EAAgBC,eAAhB,CAAd;EACA,MAAMC,KAAK,GAAGd,iBAAiB,CAACa,eAAD,EAAaF,KAAb,CAA/B;EACA,MAAMI,gBAAgB,GAAGb,sBAAsB,CAACC,CAAD,CAA/C;EAEAA,CAAC,CAACa,IAAF,CAAO,uBAAQF,KAAR,CAAP;EACAX,CAAC,CAACc,EAAF,CAAKH,KAAK,CAACI,MAAX,EAAmB,CAAnB;EAEAJ,KAAK,CAACK,OAAN,CAAcJ,gBAAd;AACD,CATD"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _ava = _interopRequireDefault(require("ava"));
4
+
5
+ var _services = require("../../sandbox/services");
6
+
7
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+
9
+ (0, _ava.default)("should delay promise's fulfillment", async t => {
10
+ const fun = (0, _services.addTimeout)(0, () => Promise.resolve());
11
+ await fun();
12
+ t.pass();
13
+ });
14
+ //# sourceMappingURL=add-timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-timeout.js","names":["test","t","fun","addTimeout","Promise","resolve","pass"],"sources":["../../src/test/add-timeout.js"],"sourcesContent":["import test from 'ava';\nimport {addTimeout} from '../../sandbox/services';\n\ntest(\"should delay promise's fulfillment\", async t => {\n const fun = addTimeout(0, () => Promise.resolve());\n await fun();\n t.pass();\n});\n"],"mappings":";;AAAA;;AACA;;;;AAEA,IAAAA,YAAA,EAAK,oCAAL,EAA2C,MAAMC,CAAN,IAAW;EACpD,MAAMC,GAAG,GAAG,IAAAC,oBAAA,EAAW,CAAX,EAAc,MAAMC,OAAO,CAACC,OAAR,EAApB,CAAZ;EACA,MAAMH,GAAG,EAAT;EACAD,CAAC,CAACK,IAAF;AACD,CAJD"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ var _cssModulesRequireHook = _interopRequireDefault(require("@coorpacademy/css-modules-require-hook"));
4
+
5
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
+
7
+ (0, _cssModulesRequireHook.default)();
8
+ //# sourceMappingURL=css-register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-register.js","names":["cssRegister"],"sources":["../../../src/test/helpers/css-register.js"],"sourcesContent":["import cssRegister from '@coorpacademy/css-modules-require-hook';\n\ncssRegister();\n"],"mappings":";;AAAA;;;;AAEA,IAAAA,8BAAA"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ const macro = (t, reducer, state, action, expected) => {
7
+ t.deepEqual(reducer(Object.freeze(state), Object.freeze(action)), Object.freeze(expected));
8
+ };
9
+
10
+ var _default = macro;
11
+ exports.default = _default;
12
+ //# sourceMappingURL=macro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macro.js","names":["macro","t","reducer","state","action","expected","deepEqual","Object","freeze"],"sources":["../../../src/test/helpers/macro.js"],"sourcesContent":["const macro = (t, reducer, state, action, expected) => {\n t.deepEqual(reducer(Object.freeze(state), Object.freeze(action)), Object.freeze(expected));\n};\n\nexport default macro;\n"],"mappings":";;;;;AAAA,MAAMA,KAAK,GAAG,CAACC,CAAD,EAAIC,OAAJ,EAAaC,KAAb,EAAoBC,MAApB,EAA4BC,QAA5B,KAAyC;EACrDJ,CAAC,CAACK,SAAF,CAAYJ,OAAO,CAACK,MAAM,CAACC,MAAP,CAAcL,KAAd,CAAD,EAAuBI,MAAM,CAACC,MAAP,CAAcJ,MAAd,CAAvB,CAAnB,EAAkEG,MAAM,CAACC,MAAP,CAAcH,QAAd,CAAlE;AACD,CAFD;;eAIeL,K"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _ava = _interopRequireDefault(require("ava"));
4
+
5
+ var _browserEnv = _interopRequireDefault(require("browser-env"));
6
+
7
+ var _translate = require("@coorpacademy/translate");
8
+
9
+ var _playerServices = require("@coorpacademy/player-services");
10
+
11
+ var fixtures = _interopRequireWildcard(require("../../sandbox/fixtures"));
12
+
13
+ var _ = require("..");
14
+
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+
21
+ const services = {
22
+ Analytics: _playerServices.Analytics,
23
+ Answers: (0, _playerServices.Answers)(fixtures),
24
+ Clues: (0, _playerServices.Clues)(fixtures),
25
+ Coach: _playerServices.Coach,
26
+ Comments: _playerServices.Comments,
27
+ Content: (0, _playerServices.Content)(fixtures),
28
+ ExitNodes: (0, _playerServices.ExitNodes)(fixtures),
29
+ LeaderBoard: _playerServices.LeaderBoard,
30
+ Location: _playerServices.Location,
31
+ Logger: console,
32
+ Progressions: (0, _playerServices.Progressions)(fixtures),
33
+ Recommendations: (0, _playerServices.Recommendations)(fixtures)
34
+ };
35
+ (0, _browserEnv.default)(['window', 'document', 'navigator']);
36
+ (0, _ava.default)('should create app', async t => {
37
+ const el = document.createElement('div');
38
+ const app = (0, _.create)({
39
+ translate: _translate.mockTranslate,
40
+ container: el,
41
+ services,
42
+ progression: '0'
43
+ });
44
+ await app.updateCoaches({
45
+ chatStarted: false,
46
+ coachForDiscipline: []
47
+ });
48
+ await app.selectProgression('1');
49
+ app.update();
50
+ app.unsubscribe();
51
+ t.pass();
52
+ });
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["services","Analytics","AnalyticsService","Answers","AnswersService","fixtures","Clues","CluesService","Coach","CoachService","Comments","CommentsService","Content","ContentService","ExitNodes","ExitNodesService","LeaderBoard","LeaderBoardService","Location","LocationService","Logger","console","Progressions","ProgressionsService","Recommendations","RecommendationsService","browserEnv","test","t","el","document","createElement","app","create","translate","mockTranslate","container","progression","updateCoaches","chatStarted","coachForDiscipline","selectProgression","update","unsubscribe","pass"],"sources":["../../src/test/index.js"],"sourcesContent":["import test from 'ava';\nimport browserEnv from 'browser-env';\nimport {mockTranslate} from '@coorpacademy/translate';\n\nimport {\n Analytics as AnalyticsService,\n Answers as AnswersService,\n Clues as CluesService,\n Coach as CoachService,\n Comments as CommentsService,\n Content as ContentService,\n ExitNodes as ExitNodesService,\n LeaderBoard as LeaderBoardService,\n Location as LocationService,\n Progressions as ProgressionsService,\n Recommendations as RecommendationsService\n} from '@coorpacademy/player-services';\n\nimport * as fixtures from '../../sandbox/fixtures';\nimport {create} from '..';\n\nconst services = {\n Analytics: AnalyticsService,\n Answers: AnswersService(fixtures),\n Clues: CluesService(fixtures),\n Coach: CoachService,\n Comments: CommentsService,\n Content: ContentService(fixtures),\n ExitNodes: ExitNodesService(fixtures),\n LeaderBoard: LeaderBoardService,\n Location: LocationService,\n Logger: console,\n Progressions: ProgressionsService(fixtures),\n Recommendations: RecommendationsService(fixtures)\n};\n\nbrowserEnv(['window', 'document', 'navigator']);\n\ntest('should create app', async t => {\n const el = document.createElement('div');\n const app = create({\n translate: mockTranslate,\n container: el,\n services,\n progression: '0'\n });\n\n await app.updateCoaches({\n chatStarted: false,\n coachForDiscipline: []\n });\n\n await app.selectProgression('1');\n\n app.update();\n app.unsubscribe();\n t.pass();\n});\n"],"mappings":";;AAAA;;AACA;;AACA;;AAEA;;AAcA;;AACA;;;;;;;;AAEA,MAAMA,QAAQ,GAAG;EACfC,SAAS,EAAEC,yBADI;EAEfC,OAAO,EAAE,IAAAC,uBAAA,EAAeC,QAAf,CAFM;EAGfC,KAAK,EAAE,IAAAC,qBAAA,EAAaF,QAAb,CAHQ;EAIfG,KAAK,EAAEC,qBAJQ;EAKfC,QAAQ,EAAEC,wBALK;EAMfC,OAAO,EAAE,IAAAC,uBAAA,EAAeR,QAAf,CANM;EAOfS,SAAS,EAAE,IAAAC,yBAAA,EAAiBV,QAAjB,CAPI;EAQfW,WAAW,EAAEC,2BARE;EASfC,QAAQ,EAAEC,wBATK;EAUfC,MAAM,EAAEC,OAVO;EAWfC,YAAY,EAAE,IAAAC,4BAAA,EAAoBlB,QAApB,CAXC;EAYfmB,eAAe,EAAE,IAAAC,+BAAA,EAAuBpB,QAAvB;AAZF,CAAjB;AAeA,IAAAqB,mBAAA,EAAW,CAAC,QAAD,EAAW,UAAX,EAAuB,WAAvB,CAAX;AAEA,IAAAC,YAAA,EAAK,mBAAL,EAA0B,MAAMC,CAAN,IAAW;EACnC,MAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;EACA,MAAMC,GAAG,GAAG,IAAAC,QAAA,EAAO;IACjBC,SAAS,EAAEC,wBADM;IAEjBC,SAAS,EAAEP,EAFM;IAGjB7B,QAHiB;IAIjBqC,WAAW,EAAE;EAJI,CAAP,CAAZ;EAOA,MAAML,GAAG,CAACM,aAAJ,CAAkB;IACtBC,WAAW,EAAE,KADS;IAEtBC,kBAAkB,EAAE;EAFE,CAAlB,CAAN;EAKA,MAAMR,GAAG,CAACS,iBAAJ,CAAsB,GAAtB,CAAN;EAEAT,GAAG,CAACU,MAAJ;EACAV,GAAG,CAACW,WAAJ;EACAf,CAAC,CAACgB,IAAF;AACD,CAnBD"}