@coorpacademy/app-review 0.2.12-alpha.0 → 0.3.0

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 (198) hide show
  1. package/es/actions/api/fetch-correction.js +1 -1
  2. package/es/actions/api/post-answer.d.ts +6 -0
  3. package/es/actions/api/post-answer.js +3 -1
  4. package/es/actions/ui/answers.d.ts +3 -0
  5. package/es/actions/ui/answers.js +3 -1
  6. package/es/reducers/index.d.ts +1 -1
  7. package/es/reducers/ui/answers.d.ts +4 -2
  8. package/es/reducers/ui/answers.js +6 -3
  9. package/es/reducers/ui/index.d.ts +4 -4
  10. package/es/reducers/ui/slide.d.ts +6 -4
  11. package/es/reducers/ui/slide.js +12 -4
  12. package/es/views/slides/index.js +4 -4
  13. package/lib/actions/api/fetch-correction.js +1 -1
  14. package/lib/actions/api/post-answer.d.ts +6 -0
  15. package/lib/actions/api/post-answer.js +4 -2
  16. package/lib/actions/ui/answers.d.ts +3 -0
  17. package/lib/actions/ui/answers.js +3 -1
  18. package/lib/reducers/index.d.ts +1 -1
  19. package/lib/reducers/ui/answers.d.ts +4 -2
  20. package/lib/reducers/ui/answers.js +6 -3
  21. package/lib/reducers/ui/index.d.ts +4 -4
  22. package/lib/reducers/ui/slide.d.ts +6 -4
  23. package/lib/reducers/ui/slide.js +12 -4
  24. package/lib/views/slides/index.js +4 -4
  25. package/package.json +4 -4
  26. package/src/actions/api/fetch-correction.ts +1 -1
  27. package/src/actions/api/post-answer.ts +5 -1
  28. package/src/actions/api/test/fetch-correction.test.ts +6 -2
  29. package/src/actions/api/test/fetch-rank.test.ts +2 -4
  30. package/src/actions/api/test/fetch-skills.test.ts +2 -4
  31. package/src/actions/api/test/fetch-slide.test.ts +2 -4
  32. package/src/actions/api/test/post-answer.test.ts +52 -13
  33. package/src/actions/api/test/post-progression.test.ts +2 -4
  34. package/src/actions/data/test/token.test.ts +2 -4
  35. package/src/actions/ui/answers.ts +4 -1
  36. package/src/actions/ui/test/answers.test.ts +38 -14
  37. package/src/actions/ui/test/next-slide.test.ts +8 -4
  38. package/src/actions/ui/test/slides.test.ts +2 -4
  39. package/src/reducers/data/test/progression.test.ts +1 -0
  40. package/src/reducers/ui/answers.ts +11 -5
  41. package/src/reducers/ui/index.ts +2 -2
  42. package/src/reducers/ui/slide.ts +30 -9
  43. package/src/reducers/ui/test/answers.test.ts +61 -13
  44. package/src/reducers/ui/test/slide.test.ts +36 -7
  45. package/src/views/skills/test/skills.test.ts +4 -8
  46. package/src/views/slides/index.ts +4 -4
  47. package/src/views/slides/test/index.test.ts +173 -28
  48. package/src/views/slides/test/slide.free-text.on-change.test.ts +7 -2
  49. package/src/views/slides/test/slide.qcm-drag.on-click.test.ts +7 -2
  50. package/src/views/slides/test/slide.qcm-graphic.on-click.test.ts +7 -2
  51. package/src/views/slides/test/slide.qcm.on-click.test.ts +7 -2
  52. package/src/views/slides/test/slide.slider.on-change.test.ts +7 -2
  53. package/src/views/slides/test/slide.slider.on-slider-change.test.ts +7 -2
  54. package/src/views/slides/test/slide.template.on-change.test.ts +12 -4
  55. package/es/actions/api/test/fetch-correction.test.d.ts +0 -1
  56. package/es/actions/api/test/fetch-correction.test.js +0 -91
  57. package/es/actions/api/test/fetch-rank.test.d.ts +0 -1
  58. package/es/actions/api/test/fetch-rank.test.js +0 -100
  59. package/es/actions/api/test/fetch-skills.test.d.ts +0 -1
  60. package/es/actions/api/test/fetch-skills.test.js +0 -61
  61. package/es/actions/api/test/fetch-slide.test.d.ts +0 -1
  62. package/es/actions/api/test/fetch-slide.test.js +0 -68
  63. package/es/actions/api/test/post-answer.test.d.ts +0 -1
  64. package/es/actions/api/test/post-answer.test.js +0 -172
  65. package/es/actions/api/test/post-progression.test.d.ts +0 -1
  66. package/es/actions/api/test/post-progression.test.js +0 -109
  67. package/es/actions/data/test/token.test.d.ts +0 -1
  68. package/es/actions/data/test/token.test.js +0 -27
  69. package/es/actions/ui/test/answers.test.d.ts +0 -1
  70. package/es/actions/ui/test/answers.test.js +0 -117
  71. package/es/actions/ui/test/next-slide.test.d.ts +0 -1
  72. package/es/actions/ui/test/next-slide.test.js +0 -63
  73. package/es/actions/ui/test/slides.test.d.ts +0 -1
  74. package/es/actions/ui/test/slides.test.js +0 -28
  75. package/es/reducers/data/test/corrections.test.d.ts +0 -1
  76. package/es/reducers/data/test/corrections.test.js +0 -27
  77. package/es/reducers/data/test/progression.test.d.ts +0 -1
  78. package/es/reducers/data/test/progression.test.js +0 -24
  79. package/es/reducers/data/test/rank.test.d.ts +0 -1
  80. package/es/reducers/data/test/rank.test.js +0 -59
  81. package/es/reducers/data/test/skills.test.d.ts +0 -1
  82. package/es/reducers/data/test/skills.test.js +0 -12
  83. package/es/reducers/data/test/slides.test.d.ts +0 -1
  84. package/es/reducers/data/test/slides.test.js +0 -21
  85. package/es/reducers/data/test/token.test.d.ts +0 -1
  86. package/es/reducers/data/test/token.test.js +0 -11
  87. package/es/reducers/ui/test/answers.test.d.ts +0 -1
  88. package/es/reducers/ui/test/answers.test.js +0 -31
  89. package/es/reducers/ui/test/current-slide-ref.test.d.ts +0 -1
  90. package/es/reducers/ui/test/current-slide-ref.test.js +0 -12
  91. package/es/reducers/ui/test/navigation.test.d.ts +0 -1
  92. package/es/reducers/ui/test/navigation.test.js +0 -15
  93. package/es/reducers/ui/test/slide.test.d.ts +0 -1
  94. package/es/reducers/ui/test/slide.test.js +0 -24
  95. package/es/services/test/fetch-correction.test.d.ts +0 -1
  96. package/es/services/test/fetch-correction.test.js +0 -39
  97. package/es/services/test/fetch-rank.test.d.ts +0 -1
  98. package/es/services/test/fetch-rank.test.js +0 -24
  99. package/es/services/test/fetch-skills.test.d.ts +0 -1
  100. package/es/services/test/fetch-skills.test.js +0 -29
  101. package/es/services/test/fetch-slide.test.d.ts +0 -1
  102. package/es/services/test/fetch-slide.test.js +0 -22
  103. package/es/services/test/post-answer.test.d.ts +0 -1
  104. package/es/services/test/post-answer.test.js +0 -88
  105. package/es/services/test/post-progression.test.d.ts +0 -1
  106. package/es/services/test/post-progression.test.js +0 -56
  107. package/es/views/skills/test/skills.test.d.ts +0 -1
  108. package/es/views/skills/test/skills.test.js +0 -98
  109. package/es/views/slides/test/index.test.d.ts +0 -1
  110. package/es/views/slides/test/index.test.js +0 -979
  111. package/es/views/slides/test/map-api-slide-to-ui.test.d.ts +0 -1
  112. package/es/views/slides/test/map-api-slide-to-ui.test.js +0 -36
  113. package/es/views/slides/test/slide.free-text.on-change.test.d.ts +0 -1
  114. package/es/views/slides/test/slide.free-text.on-change.test.js +0 -72
  115. package/es/views/slides/test/slide.qcm-drag.on-click.test.d.ts +0 -1
  116. package/es/views/slides/test/slide.qcm-drag.on-click.test.js +0 -72
  117. package/es/views/slides/test/slide.qcm-graphic.on-click.test.d.ts +0 -1
  118. package/es/views/slides/test/slide.qcm-graphic.on-click.test.js +0 -72
  119. package/es/views/slides/test/slide.qcm.on-click.test.d.ts +0 -1
  120. package/es/views/slides/test/slide.qcm.on-click.test.js +0 -74
  121. package/es/views/slides/test/slide.slider.on-change.test.d.ts +0 -1
  122. package/es/views/slides/test/slide.slider.on-change.test.js +0 -73
  123. package/es/views/slides/test/slide.slider.on-slider-change.test.d.ts +0 -1
  124. package/es/views/slides/test/slide.slider.on-slider-change.test.js +0 -63
  125. package/es/views/slides/test/slide.template.on-change.test.d.ts +0 -1
  126. package/es/views/slides/test/slide.template.on-change.test.js +0 -85
  127. package/lib/actions/api/test/fetch-correction.test.d.ts +0 -1
  128. package/lib/actions/api/test/fetch-correction.test.js +0 -151
  129. package/lib/actions/api/test/fetch-rank.test.d.ts +0 -1
  130. package/lib/actions/api/test/fetch-rank.test.js +0 -171
  131. package/lib/actions/api/test/fetch-skills.test.d.ts +0 -1
  132. package/lib/actions/api/test/fetch-skills.test.js +0 -120
  133. package/lib/actions/api/test/fetch-slide.test.d.ts +0 -1
  134. package/lib/actions/api/test/fetch-slide.test.js +0 -127
  135. package/lib/actions/api/test/post-answer.test.d.ts +0 -1
  136. package/lib/actions/api/test/post-answer.test.js +0 -254
  137. package/lib/actions/api/test/post-progression.test.d.ts +0 -1
  138. package/lib/actions/api/test/post-progression.test.js +0 -167
  139. package/lib/actions/data/test/token.test.d.ts +0 -1
  140. package/lib/actions/data/test/token.test.js +0 -72
  141. package/lib/actions/ui/test/answers.test.d.ts +0 -1
  142. package/lib/actions/ui/test/answers.test.js +0 -233
  143. package/lib/actions/ui/test/next-slide.test.d.ts +0 -1
  144. package/lib/actions/ui/test/next-slide.test.js +0 -64
  145. package/lib/actions/ui/test/slides.test.d.ts +0 -1
  146. package/lib/actions/ui/test/slides.test.js +0 -73
  147. package/lib/reducers/data/test/corrections.test.d.ts +0 -1
  148. package/lib/reducers/data/test/corrections.test.js +0 -28
  149. package/lib/reducers/data/test/progression.test.d.ts +0 -1
  150. package/lib/reducers/data/test/progression.test.js +0 -24
  151. package/lib/reducers/data/test/rank.test.d.ts +0 -1
  152. package/lib/reducers/data/test/rank.test.js +0 -59
  153. package/lib/reducers/data/test/skills.test.d.ts +0 -1
  154. package/lib/reducers/data/test/skills.test.js +0 -12
  155. package/lib/reducers/data/test/slides.test.d.ts +0 -1
  156. package/lib/reducers/data/test/slides.test.js +0 -22
  157. package/lib/reducers/data/test/token.test.d.ts +0 -1
  158. package/lib/reducers/data/test/token.test.js +0 -11
  159. package/lib/reducers/ui/test/answers.test.d.ts +0 -1
  160. package/lib/reducers/ui/test/answers.test.js +0 -31
  161. package/lib/reducers/ui/test/current-slide-ref.test.d.ts +0 -1
  162. package/lib/reducers/ui/test/current-slide-ref.test.js +0 -12
  163. package/lib/reducers/ui/test/navigation.test.d.ts +0 -1
  164. package/lib/reducers/ui/test/navigation.test.js +0 -15
  165. package/lib/reducers/ui/test/slide.test.d.ts +0 -1
  166. package/lib/reducers/ui/test/slide.test.js +0 -24
  167. package/lib/services/test/fetch-correction.test.d.ts +0 -1
  168. package/lib/services/test/fetch-correction.test.js +0 -95
  169. package/lib/services/test/fetch-rank.test.d.ts +0 -1
  170. package/lib/services/test/fetch-rank.test.js +0 -78
  171. package/lib/services/test/fetch-skills.test.d.ts +0 -1
  172. package/lib/services/test/fetch-skills.test.js +0 -83
  173. package/lib/services/test/fetch-slide.test.d.ts +0 -1
  174. package/lib/services/test/fetch-slide.test.js +0 -76
  175. package/lib/services/test/post-answer.test.d.ts +0 -1
  176. package/lib/services/test/post-answer.test.js +0 -142
  177. package/lib/services/test/post-progression.test.d.ts +0 -1
  178. package/lib/services/test/post-progression.test.js +0 -110
  179. package/lib/views/skills/test/skills.test.d.ts +0 -1
  180. package/lib/views/skills/test/skills.test.js +0 -98
  181. package/lib/views/slides/test/index.test.d.ts +0 -1
  182. package/lib/views/slides/test/index.test.js +0 -990
  183. package/lib/views/slides/test/map-api-slide-to-ui.test.d.ts +0 -1
  184. package/lib/views/slides/test/map-api-slide-to-ui.test.js +0 -47
  185. package/lib/views/slides/test/slide.free-text.on-change.test.d.ts +0 -1
  186. package/lib/views/slides/test/slide.free-text.on-change.test.js +0 -74
  187. package/lib/views/slides/test/slide.qcm-drag.on-click.test.d.ts +0 -1
  188. package/lib/views/slides/test/slide.qcm-drag.on-click.test.js +0 -74
  189. package/lib/views/slides/test/slide.qcm-graphic.on-click.test.d.ts +0 -1
  190. package/lib/views/slides/test/slide.qcm-graphic.on-click.test.js +0 -74
  191. package/lib/views/slides/test/slide.qcm.on-click.test.d.ts +0 -1
  192. package/lib/views/slides/test/slide.qcm.on-click.test.js +0 -76
  193. package/lib/views/slides/test/slide.slider.on-change.test.d.ts +0 -1
  194. package/lib/views/slides/test/slide.slider.on-change.test.js +0 -75
  195. package/lib/views/slides/test/slide.slider.on-slider-change.test.d.ts +0 -1
  196. package/lib/views/slides/test/slide.slider.on-slider-change.test.js +0 -65
  197. package/lib/views/slides/test/slide.template.on-change.test.d.ts +0 -1
  198. package/lib/views/slides/test/slide.template.on-change.test.js +0 -88
@@ -1,990 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import test from 'ava';
13
- import identity from 'lodash/fp/identity';
14
- import omit from 'lodash/fp/omit';
15
- import set from 'lodash/fp/set';
16
- import { postProgressionResponse as createdProgression, postAnswerResponses, progressionSlideWithPendingSlide, getChoicesCorrection, incorrectFreeTextPostAnswerResponse } from '../../../test/util/services.mock';
17
- import { mapStateToSlidesProps } from '..';
18
- import { freeTextSlide } from './fixtures/free-text';
19
- import { qcmGraphicSlide } from './fixtures/qcm-graphic';
20
- import { templateSlide } from './fixtures/template';
21
- import { qcmSlide } from './fixtures/qcm';
22
- import { sliderSlide } from './fixtures/slider';
23
- var popinPropsRightAnswer = {
24
- resultLabel: '_right',
25
- information: {
26
- label: '_klf',
27
- message: 'To negotiate your salary when being hired, you have to establish a benchmark beforehand. In other words, you should assess the salary to which you aspire by enquiring about the remuneration paid in the same industry, the same region and the same position.'
28
- },
29
- klf: undefined,
30
- next: {
31
- ariaLabel: '_correctionNextAriaLabel',
32
- label: '_correctionNextLabel'
33
- },
34
- type: 'right'
35
- };
36
- var popinPropsWrongAnswer = __assign(__assign({}, popinPropsRightAnswer), { klf: {
37
- label: '_klf',
38
- tooltip: 'To negotiate your salary when being hired, you have to establish a benchmark beforehand. In other words, you should assess the salary to which you aspire by enquiring about the remuneration paid in the same industry, the same region and the same position.'
39
- }, type: 'wrong', resultLabel: '_wrong', information: {
40
- label: '_correctAnswer',
41
- message: 'Benchmark'
42
- } });
43
- test('should create initial props when fetched slide is not still received', function (t) {
44
- // SCENARIO : @@progression/POST_SUCCESS ok and @@slides/FETCH_REQUEST, (the slide is being fetched)
45
- var state = {
46
- data: {
47
- progression: createdProgression,
48
- skills: [],
49
- slides: {
50
- sli_N1XACJobn: null
51
- },
52
- token: '1234',
53
- corrections: {},
54
- rank: {}
55
- },
56
- ui: {
57
- currentSlideRef: '',
58
- navigation: ['loader', 'slides'],
59
- answers: [],
60
- slide: {
61
- validateButton: false
62
- }
63
- }
64
- };
65
- var props = mapStateToSlidesProps(state, identity);
66
- t.is(props.congratsProps, undefined);
67
- t.deepEqual(omit(['onQuitClick'], props.header), {
68
- 'aria-label': 'aria-header-wrapper',
69
- closeButtonAriaLabel: 'aria-close-button',
70
- mode: '__revision_mode',
71
- skillName: '__agility',
72
- steps: [
73
- {
74
- current: true,
75
- icon: 'no-answer',
76
- value: '1'
77
- },
78
- {
79
- current: false,
80
- icon: 'no-answer',
81
- value: '2'
82
- },
83
- {
84
- current: false,
85
- icon: 'no-answer',
86
- value: '3'
87
- },
88
- {
89
- current: false,
90
- icon: 'no-answer',
91
- value: '4'
92
- },
93
- {
94
- current: false,
95
- icon: 'no-answer',
96
- value: '5'
97
- }
98
- ]
99
- });
100
- t.deepEqual(omit(['validateButton'], props.stack), {
101
- correctionPopinProps: undefined,
102
- endReview: false,
103
- slides: {
104
- '0': {
105
- hidden: false,
106
- position: 0,
107
- loading: true
108
- },
109
- '1': {
110
- hidden: false,
111
- position: 1,
112
- loading: true
113
- },
114
- '2': {
115
- hidden: false,
116
- position: 2,
117
- loading: true
118
- },
119
- '3': {
120
- hidden: false,
121
- position: 3,
122
- loading: true
123
- },
124
- '4': {
125
- hidden: false,
126
- position: 4,
127
- loading: true
128
- }
129
- }
130
- });
131
- });
132
- test('should create props when first slide is on the state', function (t) {
133
- // SCENARIO : after @@slides/FETCH_SUCCESS
134
- var state = {
135
- data: {
136
- progression: createdProgression,
137
- skills: [],
138
- slides: {
139
- sli_VJYjJnJhg: freeTextSlide
140
- },
141
- token: '1234',
142
- corrections: {},
143
- rank: {}
144
- },
145
- ui: {
146
- currentSlideRef: 'sli_VJYjJnJhg',
147
- navigation: ['loader', 'slides'],
148
- answers: [],
149
- slide: {
150
- validateButton: false
151
- }
152
- }
153
- };
154
- var props = mapStateToSlidesProps(state, identity);
155
- t.is(props.congratsProps, undefined);
156
- t.deepEqual(omit(['onQuitClick'], props.header), {
157
- 'aria-label': 'aria-header-wrapper',
158
- closeButtonAriaLabel: 'aria-close-button',
159
- mode: '__revision_mode',
160
- skillName: '__agility',
161
- steps: [
162
- {
163
- current: true,
164
- icon: 'no-answer',
165
- value: '1'
166
- },
167
- {
168
- current: false,
169
- icon: 'no-answer',
170
- value: '2'
171
- },
172
- {
173
- current: false,
174
- icon: 'no-answer',
175
- value: '3'
176
- },
177
- {
178
- current: false,
179
- icon: 'no-answer',
180
- value: '4'
181
- },
182
- {
183
- current: false,
184
- icon: 'no-answer',
185
- value: '5'
186
- }
187
- ]
188
- });
189
- t.deepEqual(omit(['validateButton', 'slides'], props.stack), {
190
- correctionPopinProps: undefined,
191
- endReview: false
192
- });
193
- t.deepEqual(omit('answerUI', props.stack.slides['0']), {
194
- animateCorrectionPopin: false,
195
- showCorrectionPopin: false,
196
- hidden: false,
197
- position: 0,
198
- loading: false,
199
- parentContentTitle: 'From "Developing the review app" course',
200
- questionText: 'Which term is used to describe the act of asking what the usual salary is for the position you are applying for?'
201
- });
202
- t.is(props.stack.validateButton.disabled, true);
203
- t.deepEqual(omit('model.onChange', props.stack.slides['0'].answerUI), {
204
- help: 'Type your answer.',
205
- model: {
206
- placeholder: 'Type here',
207
- type: 'freeText',
208
- value: ''
209
- }
210
- });
211
- t.deepEqual(omit(['0'], props.stack.slides), {
212
- '1': {
213
- hidden: false,
214
- position: 1,
215
- loading: true
216
- },
217
- '2': {
218
- hidden: false,
219
- position: 2,
220
- loading: true
221
- },
222
- '3': {
223
- hidden: false,
224
- position: 3,
225
- loading: true
226
- },
227
- '4': {
228
- hidden: false,
229
- position: 4,
230
- loading: true
231
- }
232
- });
233
- });
234
- test('should create props when slide is on the state and user has selected answers', function (t) {
235
- // This is the case after EDIT_ANSWER and before POST_ANSWER_REQUEST
236
- var state = {
237
- data: {
238
- progression: createdProgression,
239
- skills: [],
240
- slides: {
241
- sli_VJYjJnJhg: freeTextSlide
242
- },
243
- token: '1234',
244
- corrections: {},
245
- rank: {}
246
- },
247
- ui: {
248
- currentSlideRef: 'sli_VJYjJnJhg',
249
- navigation: ['loader', 'slides'],
250
- answers: ['My value'],
251
- slide: {
252
- validateButton: true
253
- }
254
- }
255
- };
256
- var props = mapStateToSlidesProps(state, identity);
257
- t.is(props.congratsProps, undefined);
258
- t.deepEqual(omit(['onQuitClick'], props.header), {
259
- 'aria-label': 'aria-header-wrapper',
260
- closeButtonAriaLabel: 'aria-close-button',
261
- mode: '__revision_mode',
262
- skillName: '__agility',
263
- steps: [
264
- {
265
- current: true,
266
- icon: 'no-answer',
267
- value: '1'
268
- },
269
- {
270
- current: false,
271
- icon: 'no-answer',
272
- value: '2'
273
- },
274
- {
275
- current: false,
276
- icon: 'no-answer',
277
- value: '3'
278
- },
279
- {
280
- current: false,
281
- icon: 'no-answer',
282
- value: '4'
283
- },
284
- {
285
- current: false,
286
- icon: 'no-answer',
287
- value: '5'
288
- }
289
- ]
290
- });
291
- t.deepEqual(omit(['validateButton', 'slides'], props.stack), {
292
- correctionPopinProps: undefined,
293
- endReview: false
294
- });
295
- t.deepEqual(omit('answerUI', props.stack.slides['0']), {
296
- animateCorrectionPopin: false,
297
- showCorrectionPopin: false,
298
- hidden: false,
299
- position: 0,
300
- loading: false,
301
- parentContentTitle: 'From "Developing the review app" course',
302
- questionText: 'Which term is used to describe the act of asking what the usual salary is for the position you are applying for?'
303
- });
304
- t.is(props.stack.validateButton.disabled, false);
305
- t.deepEqual(omit('model.onChange', props.stack.slides['0'].answerUI), {
306
- help: 'Type your answer.',
307
- model: {
308
- placeholder: 'Type here',
309
- type: 'freeText',
310
- value: 'My value'
311
- }
312
- });
313
- t.deepEqual(omit(['0'], props.stack.slides), {
314
- '1': {
315
- hidden: false,
316
- position: 1,
317
- loading: true
318
- },
319
- '2': {
320
- hidden: false,
321
- position: 2,
322
- loading: true
323
- },
324
- '3': {
325
- hidden: false,
326
- position: 3,
327
- loading: true
328
- },
329
- '4': {
330
- hidden: false,
331
- position: 4,
332
- loading: true
333
- }
334
- });
335
- });
336
- test('should verify props when first slide was answered correctly and next slide is not fetched yet', function (t) {
337
- // Scenario: after POST_ANSWER_SUCCESS and during SLIDE_FETCH_REQUEST for the nextContent.ref slide
338
- var state = {
339
- data: {
340
- progression: postAnswerResponses.sli_VJYjJnJhg,
341
- skills: [],
342
- slides: {
343
- sli_VJYjJnJhg: freeTextSlide,
344
- sli_VkSQroQnx: null
345
- },
346
- token: '1234',
347
- corrections: {},
348
- rank: {}
349
- },
350
- ui: {
351
- currentSlideRef: 'sli_VJYjJnJhg',
352
- navigation: ['loader', 'slides'],
353
- answers: ['My value'],
354
- slide: {
355
- validateButton: false
356
- }
357
- }
358
- };
359
- var props = mapStateToSlidesProps(state, identity);
360
- t.is(props.congratsProps, undefined);
361
- t.deepEqual(omit(['onQuitClick'], props.header), {
362
- 'aria-label': 'aria-header-wrapper',
363
- closeButtonAriaLabel: 'aria-close-button',
364
- mode: '__revision_mode',
365
- skillName: '__agility',
366
- steps: [
367
- {
368
- current: true,
369
- icon: 'right',
370
- value: '1'
371
- },
372
- {
373
- current: false,
374
- icon: 'no-answer',
375
- value: '2'
376
- },
377
- {
378
- current: false,
379
- icon: 'no-answer',
380
- value: '3'
381
- },
382
- {
383
- current: false,
384
- icon: 'no-answer',
385
- value: '4'
386
- },
387
- {
388
- current: false,
389
- icon: 'no-answer',
390
- value: '5'
391
- }
392
- ]
393
- });
394
- t.deepEqual(omit(['validateButton', 'slides'], props.stack), {
395
- correctionPopinProps: undefined,
396
- endReview: false
397
- });
398
- t.deepEqual(omit('answerUI', props.stack.slides['0']), {
399
- animateCorrectionPopin: false,
400
- showCorrectionPopin: false,
401
- hidden: false,
402
- position: 0,
403
- loading: false,
404
- parentContentTitle: 'From "Developing the review app" course',
405
- questionText: 'Which term is used to describe the act of asking what the usual salary is for the position you are applying for?'
406
- });
407
- t.deepEqual(omit('model.onChange', props.stack.slides['0'].answerUI), {
408
- help: 'Type your answer.',
409
- model: {
410
- placeholder: 'Type here',
411
- type: 'freeText',
412
- value: 'My value'
413
- }
414
- });
415
- t.is(props.stack.validateButton.disabled, true);
416
- t.deepEqual(omit(['0'], props.stack.slides), {
417
- '1': {
418
- hidden: false,
419
- position: 1,
420
- loading: true
421
- },
422
- '2': {
423
- hidden: false,
424
- position: 2,
425
- loading: true
426
- },
427
- '3': {
428
- hidden: false,
429
- position: 3,
430
- loading: true
431
- },
432
- '4': {
433
- hidden: false,
434
- position: 4,
435
- loading: true
436
- }
437
- });
438
- });
439
- test('should verify props when first slide was answered with error and next slide is not fetched yet', function (t) {
440
- // Scenario: after POST_ANSWER_SUCCESS and during SLIDE_FETCH_REQUEST for the nextContent.ref slide
441
- var state = {
442
- data: {
443
- progression: set(['state', 'allAnswers', 0, 'isCorrect'], false, postAnswerResponses.sli_VJYjJnJhg),
444
- skills: [],
445
- slides: {
446
- sli_VJYjJnJhg: freeTextSlide,
447
- sli_VkSQroQnx: null
448
- },
449
- token: '1234',
450
- corrections: {},
451
- rank: {}
452
- },
453
- ui: {
454
- currentSlideRef: 'sli_VJYjJnJhg',
455
- navigation: ['loader', 'slides'],
456
- answers: ['My value'],
457
- slide: {
458
- validateButton: false
459
- }
460
- }
461
- };
462
- var props = mapStateToSlidesProps(state, identity);
463
- t.is(props.congratsProps, undefined);
464
- t.deepEqual(omit(['onQuitClick'], props.header), {
465
- 'aria-label': 'aria-header-wrapper',
466
- closeButtonAriaLabel: 'aria-close-button',
467
- mode: '__revision_mode',
468
- skillName: '__agility',
469
- steps: [
470
- {
471
- current: true,
472
- icon: 'wrong',
473
- value: '1'
474
- },
475
- {
476
- current: false,
477
- icon: 'no-answer',
478
- value: '2'
479
- },
480
- {
481
- current: false,
482
- icon: 'no-answer',
483
- value: '3'
484
- },
485
- {
486
- current: false,
487
- icon: 'no-answer',
488
- value: '4'
489
- },
490
- {
491
- current: false,
492
- icon: 'no-answer',
493
- value: '5'
494
- }
495
- ]
496
- });
497
- });
498
- test('should verify props when first slide was answered, next slide is fetched & correction is fetched', function (t) {
499
- var _a;
500
- // Scenario: after POST_ANSWER_SUCCESS and SLIDE_FETCH_SUCCESS for the nextContent.ref slide
501
- var state = {
502
- data: {
503
- progression: postAnswerResponses.sli_VJYjJnJhg,
504
- skills: [],
505
- slides: {
506
- sli_VJYjJnJhg: freeTextSlide,
507
- sli_VkSQroQnx: qcmGraphicSlide
508
- },
509
- token: '1234',
510
- corrections: (_a = {},
511
- _a[freeTextSlide._id] = getChoicesCorrection(freeTextSlide._id),
512
- _a),
513
- rank: {}
514
- },
515
- ui: {
516
- currentSlideRef: 'sli_VJYjJnJhg',
517
- navigation: ['loader', 'slides'],
518
- answers: ['My value'],
519
- slide: {
520
- validateButton: false,
521
- animateCorrectionPopin: true,
522
- showCorrectionPopin: true
523
- }
524
- }
525
- };
526
- var props = mapStateToSlidesProps(state, identity);
527
- t.is(props.congratsProps, undefined);
528
- t.deepEqual(omit(['onQuitClick'], props.header), {
529
- 'aria-label': 'aria-header-wrapper',
530
- closeButtonAriaLabel: 'aria-close-button',
531
- mode: '__revision_mode',
532
- skillName: '__agility',
533
- steps: [
534
- {
535
- current: true,
536
- icon: 'right',
537
- value: '1'
538
- },
539
- {
540
- current: false,
541
- icon: 'no-answer',
542
- value: '2'
543
- },
544
- {
545
- current: false,
546
- icon: 'no-answer',
547
- value: '3'
548
- },
549
- {
550
- current: false,
551
- icon: 'no-answer',
552
- value: '4'
553
- },
554
- {
555
- current: false,
556
- icon: 'no-answer',
557
- value: '5'
558
- }
559
- ]
560
- });
561
- t.deepEqual(omit(['validateButton', 'slides', 'correctionPopinProps.klf.onClick'], props.stack), {
562
- correctionPopinProps: popinPropsRightAnswer,
563
- endReview: false
564
- });
565
- t.deepEqual(omit('answerUI', props.stack.slides['0']), {
566
- animateCorrectionPopin: true,
567
- showCorrectionPopin: true,
568
- hidden: false,
569
- position: 0,
570
- loading: false,
571
- parentContentTitle: 'From "Developing the review app" course',
572
- questionText: 'Which term is used to describe the act of asking what the usual salary is for the position you are applying for?'
573
- });
574
- t.deepEqual(omit('model.onChange', props.stack.slides['0'].answerUI), {
575
- help: 'Type your answer.',
576
- model: {
577
- placeholder: 'Type here',
578
- type: 'freeText',
579
- value: 'My value'
580
- }
581
- });
582
- t.deepEqual(omit('answerUI', props.stack.slides['1']), {
583
- animateCorrectionPopin: false,
584
- showCorrectionPopin: false,
585
- hidden: false,
586
- position: 1,
587
- loading: false,
588
- parentContentTitle: 'From "Developing the review app" course',
589
- questionText: 'Quels sont les 4 piliers de l’apprentissage ?'
590
- });
591
- t.is(props.stack.validateButton.disabled, true);
592
- t.deepEqual(omit(['0', '1'], props.stack.slides), {
593
- '2': {
594
- hidden: false,
595
- position: 2,
596
- loading: true
597
- },
598
- '3': {
599
- hidden: false,
600
- position: 3,
601
- loading: true
602
- },
603
- '4': {
604
- hidden: false,
605
- position: 4,
606
- loading: true
607
- }
608
- });
609
- });
610
- test('should verify props when first slide was answered incorrectly, next slide is fetched & correction is fetched', function (t) {
611
- var _a;
612
- // Scenario: after POST_ANSWER_SUCCESS and SLIDE_FETCH_SUCCESS for the nextContent.ref slide
613
- var state = {
614
- data: {
615
- progression: incorrectFreeTextPostAnswerResponse,
616
- skills: [],
617
- slides: {
618
- sli_VJYjJnJhg: freeTextSlide,
619
- sli_VkSQroQnx: qcmGraphicSlide
620
- },
621
- token: '1234',
622
- corrections: (_a = {},
623
- _a[freeTextSlide._id] = getChoicesCorrection(freeTextSlide._id, true),
624
- _a),
625
- rank: {}
626
- },
627
- ui: {
628
- currentSlideRef: 'sli_VJYjJnJhg',
629
- navigation: ['loader', 'slides'],
630
- answers: ['My value'],
631
- slide: {
632
- validateButton: false,
633
- animateCorrectionPopin: true,
634
- showCorrectionPopin: true
635
- }
636
- }
637
- };
638
- var props = mapStateToSlidesProps(state, identity);
639
- t.is(props.congratsProps, undefined);
640
- t.deepEqual(omit(['onQuitClick'], props.header), {
641
- 'aria-label': 'aria-header-wrapper',
642
- closeButtonAriaLabel: 'aria-close-button',
643
- mode: '__revision_mode',
644
- skillName: '__agility',
645
- steps: [
646
- {
647
- current: true,
648
- icon: 'wrong',
649
- value: '1'
650
- },
651
- {
652
- current: false,
653
- icon: 'no-answer',
654
- value: '2'
655
- },
656
- {
657
- current: false,
658
- icon: 'no-answer',
659
- value: '3'
660
- },
661
- {
662
- current: false,
663
- icon: 'no-answer',
664
- value: '4'
665
- },
666
- {
667
- current: false,
668
- icon: 'no-answer',
669
- value: '5'
670
- }
671
- ]
672
- });
673
- t.deepEqual(omit(['validateButton', 'slides', 'correctionPopinProps.klf.onClick'], props.stack), {
674
- correctionPopinProps: popinPropsWrongAnswer,
675
- endReview: false
676
- });
677
- t.deepEqual(omit('answerUI', props.stack.slides['0']), {
678
- animateCorrectionPopin: true,
679
- showCorrectionPopin: true,
680
- hidden: false,
681
- position: 0,
682
- loading: false,
683
- parentContentTitle: 'From "Developing the review app" course',
684
- questionText: 'Which term is used to describe the act of asking what the usual salary is for the position you are applying for?'
685
- });
686
- t.deepEqual(omit('model.onChange', props.stack.slides['0'].answerUI), {
687
- help: 'Type your answer.',
688
- model: {
689
- placeholder: 'Type here',
690
- type: 'freeText',
691
- value: 'My value'
692
- }
693
- });
694
- t.deepEqual(omit('answerUI', props.stack.slides['1']), {
695
- animateCorrectionPopin: false,
696
- showCorrectionPopin: false,
697
- hidden: false,
698
- position: 1,
699
- loading: false,
700
- parentContentTitle: 'From "Developing the review app" course',
701
- questionText: 'Quels sont les 4 piliers de l’apprentissage ?'
702
- });
703
- t.is(props.stack.validateButton.disabled, true);
704
- t.deepEqual(omit(['0', '1'], props.stack.slides), {
705
- '2': {
706
- hidden: false,
707
- position: 2,
708
- loading: true
709
- },
710
- '3': {
711
- hidden: false,
712
- position: 3,
713
- loading: true
714
- },
715
- '4': {
716
- hidden: false,
717
- position: 4,
718
- loading: true
719
- }
720
- });
721
- });
722
- test('should verify props when currentSlideRef has changed to nextContent of progression after first answered question', function (t) {
723
- var _a;
724
- // state after click on NEXT_SLIDE
725
- var state = {
726
- data: {
727
- progression: postAnswerResponses.sli_VJYjJnJhg,
728
- skills: [],
729
- slides: {
730
- sli_VJYjJnJhg: freeTextSlide,
731
- sli_VkSQroQnx: qcmGraphicSlide
732
- },
733
- token: '1234',
734
- corrections: (_a = {},
735
- _a[freeTextSlide._id] = getChoicesCorrection(freeTextSlide._id),
736
- _a),
737
- rank: {}
738
- },
739
- ui: {
740
- currentSlideRef: 'sli_VkSQroQnx',
741
- navigation: ['loader', 'slides'],
742
- answers: [],
743
- slide: {
744
- validateButton: false
745
- }
746
- }
747
- };
748
- var props = mapStateToSlidesProps(state, identity);
749
- t.is(props.congratsProps, undefined);
750
- t.deepEqual(omit(['onQuitClick'], props.header), {
751
- 'aria-label': 'aria-header-wrapper',
752
- closeButtonAriaLabel: 'aria-close-button',
753
- mode: '__revision_mode',
754
- skillName: '__agility',
755
- steps: [
756
- {
757
- current: false,
758
- icon: 'right',
759
- value: '1'
760
- },
761
- {
762
- current: true,
763
- icon: 'no-answer',
764
- value: '2'
765
- },
766
- {
767
- current: false,
768
- icon: 'no-answer',
769
- value: '3'
770
- },
771
- {
772
- current: false,
773
- icon: 'no-answer',
774
- value: '4'
775
- },
776
- {
777
- current: false,
778
- icon: 'no-answer',
779
- value: '5'
780
- }
781
- ]
782
- });
783
- // TODO update test with props.stack validations when NEXT_SLIDE implemented
784
- });
785
- test('should verify props when progression is in success', function (t) {
786
- var _a, _b;
787
- // state after receive last POST_ANSWER_SUCCESS and before last NEXT_SLIDE
788
- var state = {
789
- data: {
790
- progression: postAnswerResponses[templateSlide.universalRef],
791
- skills: [],
792
- slides: (_a = {},
793
- _a[freeTextSlide.universalRef] = freeTextSlide,
794
- _a[qcmGraphicSlide.universalRef] = qcmGraphicSlide,
795
- _a[qcmSlide.universalRef] = qcmSlide,
796
- _a[sliderSlide.universalRef] = sliderSlide,
797
- _a[templateSlide.universalRef] = templateSlide,
798
- _a),
799
- token: '1234',
800
- corrections: (_b = {},
801
- _b[freeTextSlide._id] = getChoicesCorrection(freeTextSlide._id),
802
- _b[qcmGraphicSlide.universalRef] = getChoicesCorrection(qcmGraphicSlide._id),
803
- _b[qcmSlide.universalRef] = getChoicesCorrection(qcmSlide._id),
804
- _b[sliderSlide.universalRef] = getChoicesCorrection(sliderSlide._id),
805
- _b[templateSlide.universalRef] = getChoicesCorrection(templateSlide._id),
806
- _b),
807
- rank: {}
808
- },
809
- ui: {
810
- currentSlideRef: templateSlide.universalRef,
811
- navigation: ['loader', 'slides'],
812
- answers: [],
813
- slide: {
814
- validateButton: false
815
- }
816
- }
817
- };
818
- var props = mapStateToSlidesProps(state, identity);
819
- t.is(props.congratsProps, undefined);
820
- t.deepEqual(omit(['onQuitClick'], props.header), {
821
- 'aria-label': 'aria-header-wrapper',
822
- closeButtonAriaLabel: 'aria-close-button',
823
- mode: '__revision_mode',
824
- skillName: '__agility',
825
- steps: [
826
- {
827
- current: false,
828
- icon: 'right',
829
- value: '1'
830
- },
831
- {
832
- current: false,
833
- icon: 'right',
834
- value: '2'
835
- },
836
- {
837
- current: false,
838
- icon: 'right',
839
- value: '3'
840
- },
841
- {
842
- current: false,
843
- icon: 'right',
844
- value: '4'
845
- },
846
- {
847
- current: true,
848
- icon: 'right',
849
- value: '5'
850
- }
851
- ]
852
- });
853
- // TODO update test with props.stack validations when NEXT_SLIDE implemented
854
- });
855
- test('should verify props when progression has answered a current pendingSlide', function (t) {
856
- var _a, _b;
857
- // Scenario, freeTextSlide and qcmSlide are pending slides, freeTextSlide was answered correctly, qcmSlide remains but not yet the currentSlideRef
858
- var state = {
859
- data: {
860
- progression: progressionSlideWithPendingSlide,
861
- skills: [],
862
- slides: (_a = {},
863
- _a[freeTextSlide.universalRef] = freeTextSlide,
864
- _a[qcmGraphicSlide.universalRef] = qcmGraphicSlide,
865
- _a[qcmSlide.universalRef] = qcmSlide,
866
- _a[sliderSlide.universalRef] = sliderSlide,
867
- _a[templateSlide.universalRef] = templateSlide,
868
- _a),
869
- token: '1234',
870
- corrections: (_b = {},
871
- _b[freeTextSlide._id] = getChoicesCorrection(freeTextSlide._id),
872
- _b[qcmGraphicSlide.universalRef] = getChoicesCorrection(qcmGraphicSlide._id),
873
- _b[qcmSlide.universalRef] = getChoicesCorrection(qcmSlide._id, true),
874
- _b[sliderSlide.universalRef] = getChoicesCorrection(sliderSlide._id),
875
- _b[templateSlide.universalRef] = getChoicesCorrection(templateSlide._id),
876
- _b),
877
- rank: {}
878
- },
879
- ui: {
880
- currentSlideRef: freeTextSlide.universalRef,
881
- navigation: ['loader', 'slides'],
882
- answers: [],
883
- slide: {
884
- validateButton: false
885
- }
886
- }
887
- };
888
- var props = mapStateToSlidesProps(state, identity);
889
- t.deepEqual(omit(['onQuitClick'], props.header), {
890
- 'aria-label': 'aria-header-wrapper',
891
- closeButtonAriaLabel: 'aria-close-button',
892
- mode: '__revision_mode',
893
- skillName: '__agility',
894
- steps: [
895
- {
896
- current: true,
897
- icon: 'right',
898
- value: '1'
899
- },
900
- {
901
- current: false,
902
- icon: 'right',
903
- value: '2'
904
- },
905
- {
906
- current: false,
907
- icon: 'wrong',
908
- value: '3'
909
- },
910
- {
911
- current: false,
912
- icon: 'right',
913
- value: '4'
914
- },
915
- {
916
- current: false,
917
- icon: 'right',
918
- value: '5'
919
- }
920
- ]
921
- });
922
- });
923
- test('should verify props when progression still has a pendingSlide', function (t) {
924
- var _a, _b;
925
- // Scenario, freeTextSlide and qcmSlide are pending slides, freeTextSlide was answered correctly, qcmSlide remains and it is the currentSlideRef
926
- var state = {
927
- data: {
928
- progression: progressionSlideWithPendingSlide,
929
- skills: [],
930
- slides: (_a = {},
931
- _a[freeTextSlide.universalRef] = freeTextSlide,
932
- _a[qcmGraphicSlide.universalRef] = qcmGraphicSlide,
933
- _a[qcmSlide.universalRef] = qcmSlide,
934
- _a[sliderSlide.universalRef] = sliderSlide,
935
- _a[templateSlide.universalRef] = templateSlide,
936
- _a),
937
- token: '1234',
938
- corrections: (_b = {},
939
- _b[freeTextSlide._id] = getChoicesCorrection(freeTextSlide._id),
940
- _b[qcmGraphicSlide.universalRef] = getChoicesCorrection(qcmGraphicSlide._id),
941
- _b[qcmSlide.universalRef] = getChoicesCorrection(qcmSlide._id, true),
942
- _b[sliderSlide.universalRef] = getChoicesCorrection(sliderSlide._id),
943
- _b[templateSlide.universalRef] = getChoicesCorrection(templateSlide._id),
944
- _b),
945
- rank: {}
946
- },
947
- ui: {
948
- currentSlideRef: qcmSlide.universalRef,
949
- navigation: ['loader', 'slides'],
950
- answers: [],
951
- slide: {
952
- validateButton: false
953
- }
954
- }
955
- };
956
- var props = mapStateToSlidesProps(state, identity);
957
- t.deepEqual(omit(['onQuitClick'], props.header), {
958
- 'aria-label': 'aria-header-wrapper',
959
- closeButtonAriaLabel: 'aria-close-button',
960
- mode: '__revision_mode',
961
- skillName: '__agility',
962
- steps: [
963
- {
964
- current: false,
965
- icon: 'right',
966
- value: '1'
967
- },
968
- {
969
- current: false,
970
- icon: 'right',
971
- value: '2'
972
- },
973
- {
974
- current: true,
975
- icon: 'no-answer',
976
- value: '3'
977
- },
978
- {
979
- current: false,
980
- icon: 'right',
981
- value: '4'
982
- },
983
- {
984
- current: false,
985
- icon: 'right',
986
- value: '5'
987
- }
988
- ]
989
- });
990
- });