From 1a83b2864ef77d4cf529b66e5e1cadda50726ab1 Mon Sep 17 00:00:00 2001 From: Emmanuel Gaillot Date: Tue, 16 Jul 2024 14:40:05 +0200 Subject: [PATCH] [CORRECTION] N'affiche pas d'infos utilisateur si inexistantes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Depuis le dernier commit, on ne vérifiait plus la présent du JWT session FC+ dans les infos utilisateurs (vu qu'il n'y était plus)… mais cette vérification permettait de s'assurer qu'on n'affichait pas d'infos utilisateur si le prénom et nom d'usage était inexistants (cas où l'utilisateur revient sur la page du site vitrine en appuyant sur le bouton « retour arrière » du navigateur). Ce commit corrige la régression. Co-authored-by: Fabien Lamarque --- src/erreurs.js | 2 ++ src/modeles/utilisateur.js | 6 ++++++ test/modeles/utilisateur.spec.js | 11 +++++++++++ 3 files changed, 19 insertions(+) diff --git a/src/erreurs.js b/src/erreurs.js index 508a6a4..f39d6aa 100644 --- a/src/erreurs.js +++ b/src/erreurs.js @@ -1,6 +1,7 @@ class ErreurAbsenceReponseDestinataire extends Error {} class ErreurAucunMessageDomibusRecu extends Error {} class ErreurDestinataireInexistant extends Error {} +class ErreurDonneeManquante extends Error {} class ErreurEchecAuthentification extends Error {} class ErreurInstructionSOAPInconnue extends Error {} class ErreurJetonInvalide extends Error {} @@ -10,6 +11,7 @@ module.exports = { ErreurAbsenceReponseDestinataire, ErreurAucunMessageDomibusRecu, ErreurDestinataireInexistant, + ErreurDonneeManquante, ErreurEchecAuthentification, ErreurInstructionSOAPInconnue, ErreurJetonInvalide, diff --git a/src/modeles/utilisateur.js b/src/modeles/utilisateur.js index 327a097..96f987d 100644 --- a/src/modeles/utilisateur.js +++ b/src/modeles/utilisateur.js @@ -1,5 +1,11 @@ +const { ErreurDonneeManquante } = require('../erreurs'); + class Utilisateur { constructor(donnees) { + if (typeof donnees.prenom === 'undefined' && typeof donnees.nomUsage === 'undefined') { + throw new ErreurDonneeManquante("Prénom et nom d'usage obligatoires pour instancier un utilisateur"); + } + this.prenom = donnees.prenom; this.nomUsage = donnees.nomUsage; } diff --git a/test/modeles/utilisateur.spec.js b/test/modeles/utilisateur.spec.js index f2e8f14..74d00bd 100644 --- a/test/modeles/utilisateur.spec.js +++ b/test/modeles/utilisateur.spec.js @@ -1,3 +1,4 @@ +const { ErreurDonneeManquante } = require('../../src/erreurs'); const Utilisateur = require('../../src/modeles/utilisateur'); describe("L'utilisateur courant", () => { @@ -5,4 +6,14 @@ describe("L'utilisateur courant", () => { const utilisateur = new Utilisateur({ prenom: 'Juliette', nomUsage: 'Haucourt' }); expect(utilisateur.afficheToi()).toBe('Juliette Haucourt'); }); + + it("vérifie qu'il est initialisé avec un nom d'usage et un prénom", () => { + expect.assertions(1); + + try { + new Utilisateur({}); + } catch (e) { + expect(e).toBeInstanceOf(ErreurDonneeManquante); + } + }); });