Skip to content

BDD-36 — Pagination de la liste des fichiers espace client

1. User Story

En tant que client externe Je veux paginer la liste de mes fichiers déposés Afin de consulter mon historique sans surcharger la page /upload

2. Criteres d'acceptance

  1. La liste Mes fichiers déposés est paginée côté front à partir des métadonnées renvoyées par GET /documents
  2. La pagination n'est pas affichée si le total est inférieur ou égal à la limite par page
  3. La pagination est affichée si le total dépasse la limite
  4. Le changement de page déclenche un nouvel appel GET /documents avec le bon paramètre page
  5. La limite par défaut côté front est 6 fichiers par page

3. Perimetre fonctionnel

  • Page front: front/src/pages/upload/UploadPage.vue
  • Store front: front/src/stores/files-store.js
  • Liste des documents: front/src/components/documents/DocumentListItem.vue
  • Endpoint back consommé: GET /documents

4. Points de verification

  • Le bloc Mes fichiers déposés affiche x fichier(s) à partir de documentsTotal
  • q-pagination apparait uniquement si documentsTotalPages > 1
  • Le calcul du nombre de pages suit ceil(total / limit)
  • Le clic sur une page appelle fileStore.fetchDocuments({ page: p })
  • La page suivante remplace bien les documents affichés par ceux de la page demandée

5. Tests associes

  • Tests unitaires front:

    • front/src/__tests__/pages/upload/UploadPage.spec.js
      • masque la pagination si total <= limit
      • affiche la pagination si total > limit
      • calcule le nombre de pages
      • appelle fetchDocuments({ page: 2 }) au clic
    • front/src/__tests__/stores/files-store.spec.js
      • charge GET /documents avec page=1 et limit=6
      • accepte des paramètres page/limit personnalisés
      • réutilise la page courante du store si page n'est pas fournie
  • Tests e2e front (Playwright mock):

    • front/e2e/upload-mock.spec.js
      • affiche la pagination à partir de 7 fichiers
      • charge la page suivante et remplace la liste visible

6. Notes d'implementation

  • La pagination front repose uniquement sur la réponse paginée de GET /documents
  • La valeur par défaut côté store est limit = 6
  • En cas d'upload réussi, la liste est rechargée en page: 1