@@ -6,7 +6,7 @@ import { Assessment } from '../../../../../../src/shared/domain/models/Assessmen
6
6
import { KnowledgeElement } from '../../../../../../src/shared/domain/models/KnowledgeElement.js' ;
7
7
import { catchErr , databaseBuilder , expect , mockLearningContent } from '../../../../../test-helper.js' ;
8
8
9
- const { STARTED } = CampaignParticipationStatuses ;
9
+ const { STARTED , SHARED } = CampaignParticipationStatuses ;
10
10
11
11
describe ( 'Integration | Repository | Campaign Assessment Participation' , function ( ) {
12
12
describe ( '#getByCampaignIdAndCampaignParticipationId' , function ( ) {
@@ -128,20 +128,31 @@ describe('Integration | Repository | Campaign Assessment Participation', functio
128
128
} ) ;
129
129
130
130
context ( 'When campaign participation is not shared' , function ( ) {
131
+ let campaignParticipation , skill1 ;
131
132
beforeEach ( async function ( ) {
132
- const skill1 = { id : 'skill1' , status : 'actif' } ;
133
- await mockLearningContent ( { skills : [ skill1 ] } ) ;
134
- campaignId = databaseBuilder . factory . buildAssessmentCampaign ( { } , [ skill1 ] ) . id ;
135
- campaignParticipationId = databaseBuilder . factory . buildAssessmentFromParticipation ( {
133
+ skill1 = { id : 'skill1' , status : 'actif' } ;
134
+ const skill2 = { id : 'skill2' , status : 'actif' } ;
135
+ await mockLearningContent ( { skills : [ skill1 , skill2 ] } ) ;
136
+ campaignId = databaseBuilder . factory . buildAssessmentCampaign ( { } , [ skill1 , skill2 ] ) . id ;
137
+
138
+ campaignParticipation = databaseBuilder . factory . buildCampaignParticipation ( {
136
139
status : STARTED ,
137
140
sharedAt : null ,
138
141
campaignId,
139
- } ) . campaignParticipationId ;
140
-
142
+ } ) ;
143
+ campaignParticipationId = campaignParticipation . id ;
141
144
await databaseBuilder . commit ( ) ;
142
145
} ) ;
143
146
144
147
it ( 'create CampaignAssessmentParticipation with empty results' , async function ( ) {
148
+ //given
149
+ databaseBuilder . factory . buildAssessment ( {
150
+ userId : campaignParticipation . userId ,
151
+ campaignParticipationId,
152
+ state : Assessment . states . COMPLETED ,
153
+ } ) ;
154
+ await databaseBuilder . commit ( ) ;
155
+
145
156
const campaignAssessmentParticipation =
146
157
await campaignAssessmentParticipationRepository . getByCampaignIdAndCampaignParticipationId ( {
147
158
campaignId,
@@ -151,6 +162,32 @@ describe('Integration | Repository | Campaign Assessment Participation', functio
151
162
expect ( campaignAssessmentParticipation . masteryRate ) . to . equal ( null ) ;
152
163
expect ( campaignAssessmentParticipation . progression ) . to . equal ( 1 ) ;
153
164
} ) ;
165
+
166
+ context ( 'when assessment is started' , function ( ) {
167
+ it ( 'computes the progression' , async function ( ) {
168
+ //given
169
+ databaseBuilder . factory . buildAssessment ( {
170
+ userId : campaignParticipation . userId ,
171
+ campaignParticipationId,
172
+ state : Assessment . states . STARTED ,
173
+ } ) ;
174
+ databaseBuilder . factory . buildKnowledgeElement ( {
175
+ status : KnowledgeElement . StatusType . VALIDATED ,
176
+ userId : campaignParticipation . userId ,
177
+ skillId : skill1 . id ,
178
+ createdAt : new Date ( '2020-01-01' ) ,
179
+ } ) ;
180
+ await databaseBuilder . commit ( ) ;
181
+ // then
182
+ const campaignAssessmentParticipation =
183
+ await campaignAssessmentParticipationRepository . getByCampaignIdAndCampaignParticipationId ( {
184
+ campaignId,
185
+ campaignParticipationId,
186
+ } ) ;
187
+
188
+ expect ( campaignAssessmentParticipation . progression ) . to . equal ( 0.5 ) ;
189
+ } ) ;
190
+ } ) ;
154
191
} ) ;
155
192
156
193
context ( 'When campaign participation is shared' , function ( ) {
@@ -168,8 +205,8 @@ describe('Integration | Repository | Campaign Assessment Participation', functio
168
205
campaignParticipationId = databaseBuilder . factory . buildCampaignParticipation ( {
169
206
campaignId,
170
207
userId,
171
- status : STARTED ,
172
- sharedAt : null ,
208
+ status : SHARED ,
209
+ sharedAt : new Date ( '2020-01-02' ) ,
173
210
} ) . id ;
174
211
175
212
databaseBuilder . factory . buildKnowledgeElement ( {
@@ -184,6 +221,12 @@ describe('Integration | Repository | Campaign Assessment Participation', functio
184
221
skillId : skill2 . id ,
185
222
createdAt : new Date ( '2020-01-01' ) ,
186
223
} ) ;
224
+ databaseBuilder . factory . buildKnowledgeElement ( {
225
+ status : KnowledgeElement . StatusType . INVALIDATED ,
226
+ userId,
227
+ skillId : skill3 . id ,
228
+ createdAt : new Date ( '2020-01-04' ) ,
229
+ } ) ;
187
230
await databaseBuilder . commit ( ) ;
188
231
} ) ;
189
232
@@ -205,25 +248,6 @@ describe('Integration | Repository | Campaign Assessment Participation', functio
205
248
expect ( campaignAssessmentParticipation . progression ) . to . equal ( 1 ) ;
206
249
} ) ;
207
250
} ) ;
208
-
209
- context ( 'when assessment is started' , function ( ) {
210
- it ( 'computes the progression' , async function ( ) {
211
- databaseBuilder . factory . buildAssessment ( {
212
- campaignParticipationId,
213
- userId,
214
- state : Assessment . states . STARTED ,
215
- } ) ;
216
- await databaseBuilder . commit ( ) ;
217
-
218
- const campaignAssessmentParticipation =
219
- await campaignAssessmentParticipationRepository . getByCampaignIdAndCampaignParticipationId ( {
220
- campaignId,
221
- campaignParticipationId,
222
- } ) ;
223
-
224
- expect ( campaignAssessmentParticipation . progression ) . to . equal ( 0.5 ) ;
225
- } ) ;
226
- } ) ;
227
251
} ) ;
228
252
} ) ;
229
253
0 commit comments