[TECH] Passage de l'event de scoring des complémentaires vers un usecase (PIX-17807).
⚠️ ne pas merger sans la validation Produit
🌸 Problème
Nous utilisons encore certains évènements via l'ancient event-handler. Nous souhaitons nous en débarrasser.
🌳 Proposition
Dans cette PR, on s'occupe du scoring des certifications complémentaires.
🐝 Remarques
Les fichiers de l'EventDispatcher seront supprimes dans une PR cross team
🤧 Pour tester
ℹ️ La RA est config avec le worker car on a touche au job traite via PGBoss :)
Verifications a faire pour tous les cas de test
- Valider chaque cas
- pour une coeur
- pour une complementaire
- tester les cas particuliers de taux de reproductibilite, minimum de Pix, et obtenu
- V2 uniquement : le N-1
- pour chaque certif : verifier le rejet, le rejet pour fraude, annulation, certif validee
Non reg V3
- Passer une certification complete (ecran de fin)
- Passer une certification sans aller au bout, et terminer le test par le surveillant
- Passer une certification sans aller au bout, laisser la certif se terminer via la finalisation
- (tech only) Declencher un rescoring via script de rescoring
- pour une coeur
- pour une double certification CLEA
- 🎁 une campagne CLEA : https://app-pr12355.review.pix.fr/campagnes/YDBEHA251
Non reg V2
- Passer une certification complete (ecran de fin)
- Dispo ici : https://admin-pr12355.review.pix.fr/sessions/8
- Passer une certification sans aller au bout, et terminer le test par le surveillant + finalisation
- https://admin-pr12355.review.pix.fr/sessions/9
- Verifier que le rescoring apres une neutralisation fonctionne
- https://admin-pr12355.review.pix.fr/certifications/5/details
- Verifier que le rescoring apres une DEneutralisation fonctionne
- https://admin-pr12355.review.pix.fr/certifications/5/details
- (tech only) Declencher un rescoring via script de rescoring
- pour une coeur
- pour une complementaire
Pour creer des cas de tests v2
- Créer une session de certification avec [email protected]
- En BDD modifier la version de la session en version
2à l'aide de la requête suivante :
update sessions set version = 2 where id = <session_id>
- Passer le test de certification en repondant sans aller au bout, sinon faire la modif du certif course ci-dessous avant de repondre a la derniere question
- En BDD modifier la version de la certif-course en version
2à l'aide de la requête suivante- note : on n'arrive plus a creer de certif course v2 donc faut filouter
update certification-courses set version = 2 where id = <course_id>
Une fois les applications déployées, elles seront accessibles via les liens suivants :
- App (.fr)
- App (.org)
- Orga (.fr)
- Orga (.org)
- Certif (.fr)
- Certif (.org)
- Junior
- Admin
- API
- API MaDDo
- Audit Logger
Les variables d'environnement seront accessibles via les liens suivants :
Yo @Steph0 ! Désolée pour le délai de réponse... J'ai fait des tests en RA v3 avec le CDC [email protected], session n°10 : Cas de tests, 3 inscriptions double certif Pix-CléA :
- Cléa Testeur = [email protected], toutes les questions répondues avec bouton magique jusqu'à l'écran de fin de test
- Surveillant Testeur = [email protected], 22 questions répondues avec bouton magique puis fin de test par surveillant, objet abandon = pb technique
- Finalisation Testeur = [email protected], 30 questions répondues avec bouton magique puis fin de test par finalisation de la session, objet abandon = manque de temps, départ prématuré
Quelques éléments me posent questions...
- Pour les 3 cas j'ai 895Pix, c'est bizarre non ?
- CléA validé uniquement dans le cas 1, pour les cas 2 et 3 c'est rejeté... 😕 Est-ce que je n'aurais pas du le valider aussi a minima dans le cas 3 ?
@Steph0 j'ai refait des tests en RA v3 avec le CDC [email protected], session n°11 : Cas de tests, 3 inscriptions Pix coeur simple (cas nominal) :
Cléa Testeur = [email protected], toutes les questions répondues avec bouton magique jusqu'à l'écran de fin de test Surveillant Testeur = [email protected], 22 questions répondues avec bouton magique puis fin de test par surveillant, objet abandon = pb technique Finalisation Testeur = [email protected], 31 questions répondues avec bouton magique puis fin de test par finalisation de la session, objet abandon = manque de temps, départ prématuré
- Pour les 3 cas j'ai 895Pix, c'est bizarre non ?
- 22 questions répondues + pb technique
- si pb technique = pas de degradation et le bouton magique t'as mis sur une capacite max (donc 895) deja a la question 22
- toutes les questions répondues
- tout OK = score max
- 30 questions
- tu a 30 question OK avec une capacite max
- la degradation sur une seule question non repondue ne te fera pas assez descendre pour perdre du pix
- 22 questions répondues + pb technique
💥 Reste maintenant le soucis de la certif CLEA qui aurait du etre valide et la... il y a bien un bug !
Pour le reproduire
- Etre au moment de la finalisation
- Que ca soit le premier scoring, donc pas de certif completed (ecran de fin)
- Et du coup la certif sera en started et non pas completed + dans une transaction (le scoring n'est pas transactionnel)
solution : rendre le scoring transactionnel, ou imaginer autre chose
notes
Je me note ici des curl qui me servent en debug local
curl 'http://localhost:3000/api/sessions/10/finalization' \
-X 'PUT' \
-H 'accept: application/vnd.api+json' \
-H 'accept-language: fr' \
-H 'content-type: application/vnd.api+json' \
--data-raw '{"data":{"attributes":{"examiner-global-comment":null,"has-incident":false,"has-joining-issue":false},"included":[{"type":"certification-reports","id":"CertificationReport-6","attributes":{"id":"CertificationReport-6","certificationCourseId":6,"firstName":"Cléa","lastName":"Testeur","isCompleted":true,"abortReason":null}},{"type":"certification-reports","id":"CertificationReport-8","attributes":{"id":"CertificationReport-8","certificationCourseId":8,"firstName":"Finalisation","lastName":"Testeur","isCompleted":false,"abortReason":"candidate"}},{"type":"certification-reports","id":"CertificationReport-7","attributes":{"id":"CertificationReport-7","certificationCourseId":7,"firstName":"Surveillant","lastName":"Testeur","isCompleted":false,"abortReason":"technical"}}]}}'
et pour nettoyer ma BDD locale (apres definalisation)
DELETE FROM public."certification-courses-last-assessment-results"
WHERE "certificationCourseId"=8;
DELETE FROM public."certification-courses-last-assessment-results"
WHERE "certificationCourseId"=7;
DELETE FROM public."certification-courses-last-assessment-results"
WHERE "certificationCourseId"=6;
UPDATE public."assessment-results"
SET "assessmentId"=100089
WHERE "assessmentId" = 139075;
⚠️ Vu avec l'equipe, on enleve le scoring de complementaire aux operations de rescoring. Il reste donc que le scoring de complementaire sur une certif completed.
Yo @Steph0 ! J'ai refait des tests en RA v3 avec le CDC [email protected], session n°13 : Cas de tests, 3 inscriptions Pix coeur uniquement :
- Toto Testeur = [email protected], toutes les questions répondues avec bouton magique/questions passées jusqu'à l'écran de fin de test
- Surveillant Testeur = [email protected], 23 questions répondues avec bouton magique/questions passées puis fin de test par surveillant, objet abandon = pb technique
- Finalisation Testeur = [email protected], 31 questions répondues avec bouton magique/questions passées puis fin de test par finalisation de la session, objet abandon = manque de temps, départ prématuré
J'ai tout essayé, annuler/désannuler, rejeter/dérejeter, définaliser/refinaliser, définaliser + changer raison abandon puis refinalisé... Tout me semble OK (j'espère n'avoir rien loupé 🤞🏼) en tous cas côté v3 coeur. ✅
:tada: This PR is included in version 5.139.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: