# Plan de tests — Alpha 2

À exécuter sur une copie de test de l'hébergement avant toute mise en production.

## Installation et migration
- [ ] Installation neuve depuis `web/install.php`.
- [ ] Vérifier que le premier compte est administrateur général.
- [ ] Vérifier la création de `core/config.php` et les droits du fichier.
- [ ] Supprimer `web/install.php` après installation.
- [ ] Sur une copie Alpha 1, importer `update.sql` et vérifier que les comptes, projets, rôles, groupes et notifications restent présents.
- [ ] Déployer Alpha 2 en conservant `core/config.php`.

## Comptes et sécurité
- [ ] Inscription, réception du courriel et confirmation de l'adresse.
- [ ] Connexion, échec de connexion et limitation des tentatives.
- [ ] Vérifier les entrées dans le journal des connexions.
- [ ] Ouvrir une session sur deux appareils puis révoquer une session depuis l'administration.
- [ ] Vérifier que l'appareil révoqué perd l'accès à la prochaine requête.
- [ ] Bloquer puis réactiver un compte depuis l'administration générale.
- [ ] Vérifier que les administrateurs de projet ne peuvent pas ouvrir les journaux globaux.

## Projets et permissions
- [ ] Créer un festival, une tournée, un concert/date et un événement.
- [ ] Inviter un compte existant, accepter l'invitation et vérifier son rôle.
- [ ] Créer un rôle personnalisé avec un sous-ensemble de permissions.
- [ ] Changer le rôle d'un membre et vérifier le résultat.
- [ ] Suspendre puis réactiver une adhésion de projet.
- [ ] Créer un pôle et un sous-groupe.
- [ ] Affecter un membre à une équipe et vérifier les accès.
- [ ] Définir des permissions propres à une équipe.

## Groupes de musique
- [ ] Créer un groupe depuis un compte utilisateur.
- [ ] Vérifier que le créateur est copropriétaire.
- [ ] Inviter un compte existant et accepter l'invitation.
- [ ] Inviter une adresse qui n'a pas encore de compte, créer le compte avec cette adresse, confirmer l'e-mail puis accepter l'invitation.
- [ ] Vérifier qu'un membre copropriétaire peut gérer la fiche.
- [ ] Associer le groupe à un projet et vérifier qu'il n'est pas dupliqué.
- [ ] Modifier la fiche et vérifier l'incrément de version.

## Alertes et notifications
- [ ] Créer une alerte pour tout le projet.
- [ ] Créer une alerte ciblée sur une équipe.
- [ ] Créer une alerte ciblée sur une personne.
- [ ] Accuser réception et vérifier la ligne dans `core_alert_reads`.
- [ ] Définir une fin programmée puis vérifier le statut après échéance.
- [ ] Désactiver manuellement une alerte.
- [ ] Ouvrir une notification liée à une invitation et vérifier son statut lu.

## Administration et sauvegarde
- [ ] Activer le mode maintenance immédiatement et vérifier le blocage des comptes classiques.
- [ ] Programmer une maintenance future et une fin automatique.
- [ ] Vérifier la page de statut technique.
- [ ] Créer une sauvegarde ZIP et vérifier qu'elle contient le dump SQL, `core/config.php`, les fichiers du site et les documents privés.
- [ ] Vérifier que l'archive n'est pas accessible par URL publique.

## Contrôles finaux
- [ ] Vérifier le rendu desktop et mobile.
- [ ] Installer la PWA et vérifier que les ressources statiques sont mises en cache.
- [ ] Vérifier les journaux PHP et MySQL.
- [ ] Vérifier qu'aucune opération Alpha 2 ne modifie la base V2.9.
