Skip to content

Run P5 : le lien d'un ami et la comparaison des joueurs d'une playlist - #446

Merged
Oasis35 merged 5 commits into
env/stagingfrom
feat/run-p5-partage
Oct 27, 2026
Merged

Oasis35 merged 5 commits into
env/stagingfrom
feat/run-p5-partage

Conversation

@Oasis35

@Oasis35 Oasis35 commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Part of #360, ferme le travail de #366 (je ne ferme pas le ticket).

Ce que ça fait

Back : GET /api/runs/challenges/{code}/comparison (getRunComparison, RunComparison.cs).

  • Fermée tant qu'on n'a pas fini sa propre partie : 409 runs.comparison_locked (pas de partie, ou en cours). Une partie abandonnée y a accès (la playlist ne se rejoue pas) sans figurer au tableau.
  • Une ligne par partie gagnée ou perdue : pseudo (vide pour un invité), disque et étoiles, score de chaque manche (vide si non jouée), total, isMe ; triée par total, puis plus de manches passées, puis la première terminée. Des scores seulement, jamais un morceau (piège 31).
  • Code Wolverine régénéré, document OpenAPI runs.json et client NSwag à jour.

Front :

  • Route /runs/:code : écran « lien reçu » (logo, disque d'or, « X te lance une playlist », 4 règles tirées des règles figées, « Jouer »), reprise d'une partie en cours, ou comparaison directe si la playlist est déjà jouée. Aucun accès sur invitation : il suffit d'avoir le lien.
  • « Jouer » crée l'invité si besoin (SessionLoader.ensureGuest) et lance le premier son dans le clic (unlockAudio() avant tout await).
  • Écran de comparaison (« Playlist de X », « N joueurs de cette playlist », tableau, « Toi » surligné, ✕, « Partager la playlist »). « Voir les autres joueurs » sur l'écran de fin. Playlist inconnue : écran dédié sans « Réessayer ». Un ami sans accès voit « Jouer au défi du jour » au lieu de « Nouvelle partie » (déjà en place depuis P4b).
  • runs lit account (Sheriff) ; le bandeau IN//SECONDS passe de daily/ui à gameplay/ui (BrandComponent, comme les composants descendus en P4a) ; /runs hors de robots.txt.

Tests

Intégration RunComparisonTests (verrouillée avant la fin, à plusieurs joueurs, manches non jouées vides, égalités, abandon et en cours absents), Vitest (store, API, écrans lien et comparaison), E2E du lien d'un ami dans deux navigateurs. Rien n'a été lancé en local (consigne du projet) : la CI fera foi. tsc, Sheriff et npm run build passent en local.

Limites

  • Le document OpenAPI a été complété à la main (pas de base PostgreSQL ni de Docker sur le poste) : le test Le_document_sauvegarde_pour_le_front_est_a_jour dira si l'ordre des routes ou des schémas diffère de la génération.
  • « Voir les autres joueurs » n'est pas sur les maquettes (lien discret sous « Partager la playlist ») : sans lui, la comparaison n'était atteignable que par le lien. Noté dans docs/runs/ecrans.md.

🤖 Generated with Claude Code

Clément RAGEAU added 5 commits October 27, 2026 08:53
#366)

Back : GET /api/runs/challenges/{code}/comparison (getRunComparison), fermée tant qu'on n'a pas fini sa propre partie (409 runs.comparison_locked) : une ligne par partie gagnée ou perdue (pseudo ou invité, disque, score de chaque manche ou vide si non jouée, total, isMe), triée par total ; des scores seulement, jamais un morceau. Code Wolverine régénéré, document OpenAPI et client NSwag à jour.

Front : route /runs/:code (lien reçu, reprise, ou comparaison directe si la playlist est déjà jouée ; aucun accès sur invitation demandé), écrans run-link-screen et run-comparison-screen, « Jouer » crée l'invité et lance le premier son dans le clic, « Voir les autres joueurs » sur l'écran de fin, playlist inconnue, runs lit account (Sheriff), le bandeau IN//SECONDS passe de daily/ui à gameplay/ui, /runs hors de robots.txt.

Tests : intégration (RunComparisonTests), Vitest (store, API, écrans), E2E du lien d'un ami dans deux navigateurs. Documentation mise à jour.
…est (l'étiquette de la nouvelle route manquait)
…jour (score en police du score, tableau pleine largeur, bouton de partage commun)
@sonarqubecloud

Copy link
Copy Markdown

@Oasis35
Oasis35 merged commit d19f7db into env/staging Oct 27, 2026
13 checks passed
@Oasis35
Oasis35 deleted the feat/run-p5-partage branch October 27, 2026 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant