# Tests Rapides - Panel Admin Profils Tiers

## 🧪 Test 1: Vérifier déploiement frontend

```powershell
curl -s https://admin.web-sentinel.taaazzz-prog.fr | Select-String -Pattern "CAueAkvs"
```

**Résultat attendu:**
```html
<script type="module" crossorigin src="/assets/index-CAueAkvs.js"></script>
```

**Status:** ✅ PASS

---

## 🧪 Test 2: Vérifier backend logs

```powershell
ssh taaazzz@web-sentinel.taaazzz-prog.fr "docker logs --tail 10 web-sentinel-admin-backend"
```

**Résultat attendu:**
```
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
```

**Status:** ✅ PASS (à vérifier)

---

## 🧪 Test 3: Test endpoint GET /api/v1/config/tiers (depuis navigateur)

### Étape 1: Se connecter au panel admin
1. Aller sur https://admin.web-sentinel.taaazzz-prog.fr
2. Se connecter avec bruno@taaazzz.be

### Étape 2: Récupérer le token
1. Ouvrir DevTools (F12)
2. Aller dans l'onglet Console
3. Copier le token depuis le bandeau en haut du panel (bouton "Copier le token complet")

### Étape 3: Tester l'endpoint
```javascript
const token = "VOTRE_TOKEN_ICI"; // Remplacer par votre token

fetch('https://admin-api.web-sentinel.taaazzz-prog.fr/api/v1/config/tiers', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  }
})
.then(r => {
  console.log('Status:', r.status);
  if (r.status === 405) {
    console.error('❌ Erreur 405 - Vérifier le rôle de l\'utilisateur');
    console.log('Votre rôle devrait être "super-admin" ou "analyst"');
  }
  return r.json();
})
.then(data => {
  console.log('✅ Response:', data);
  console.log('FREE max_domains:', data.FREE.max_domains);
  console.log('PRO max_domains:', data.PRO.max_domains);
})
.catch(err => console.error('❌ Error:', err));
```

**Résultat attendu (Status 200):**
```json
{
  "FREE": {
    "label": "Free",
    "max_domains": 3,
    "max_users": 1,
    "allow_source_scan": false,
    ...
  },
  "PRO": {
    "label": "Pro",
    "max_domains": -1,
    "max_users": 5,
    "allow_source_scan": true,
    "max_source_files": 100,
    "max_source_size_mb": 20,
    ...
  },
  ...
}
```

**Si erreur 405:**
```sql
-- Vérifier le rôle de l'utilisateur dans la base de données
SELECT email, tier, role FROM users WHERE email = 'bruno@taaazzz.be';
```

Le rôle doit être `super-admin` ou `analyst`. Si ce n'est pas le cas:

```sql
UPDATE users SET role = 'super-admin' WHERE email = 'bruno@taaazzz.be';
```

**Status:** ⏳ À TESTER

---

## 🧪 Test 4: Test panneau configuration profils

### Étape 1: Chercher le panneau
1. Sur le panel admin, chercher section "Configuration des Profils Tiers"
2. Ou aller dans l'onglet "Configuration" (si disponible)

### Étape 2: Vérifier affichage
- [ ] Voir les 5 tiers (FREE, STARTER, PRO, ENTERPRISE, SYSOP)
- [ ] Voir tous les champs éditables
- [ ] Boutons "Sauvegarder" et "Réinitialiser" présents

### Étape 3: Modifier une valeur
1. Changer PRO `max_domains` de `-1` à `20`
2. Cliquer "Sauvegarder"
3. Vérifier toast de confirmation
4. Actualiser la page (F5)
5. Vérifier que `max_domains = 20` est persisté

**Status:** ⏳ À TESTER

---

## 🧪 Test 5: Test pré-remplissage formulaire licence

### Étape 1: Créer une licence
1. Aller sur "Licences"
2. Cliquer "Nouvelle licence"
3. Entrer email: `test-pro@example.com`

### Étape 2: Sélectionner tier PRO
1. Dans dropdown tier, sélectionner "PRO"
2. Vérifier que les champs se remplissent automatiquement:
   - `max_domains`: -1
   - `max_users`: 5
   - `allow_source_scan`: ✅ (coché)
   - `max_source_files`: 100
   - `max_source_size_mb`: 20

### Étape 3: Changer vers ENTERPRISE
1. Dans dropdown tier, sélectionner "ENTERPRISE"
2. Vérifier que les valeurs se mettent à jour:
   - `max_users`: 50
   - `max_source_files`: 500
   - `max_source_size_mb`: 100
   - `advanced_rules`: ✅ (coché)

### Étape 4: Créer la licence
1. Cliquer "Créer"
2. Vérifier toast de confirmation
3. Vérifier dans la liste que la licence existe

**Status:** ⏳ À TESTER

---

## 🧪 Test 6: Test downgrade licence

### Étape 1: Sélectionner une licence PRO
1. Dans la liste, trouver `bruno@taaazzz.be` (tier PRO)
2. Cliquer "Modifier"

### Étape 2: Downgrade vers FREE
1. Changer tier de "PRO" vers "FREE"
2. Vérifier que les valeurs SAST se réinitialisent:
   - `max_domains`: 3
   - `max_users`: 1
   - `allow_source_scan`: ❌ (décoché)
   - `max_source_files`: 0
   - `max_source_size_mb`: 0

### Étape 3: Sauvegarder
1. Cliquer "Sauvegarder"
2. Vérifier toast de confirmation
3. Vérifier dans la base de données:

```sql
SELECT email, tier, max_domains, max_users, allow_source_scan, max_source_files
FROM users
WHERE email = 'bruno@taaazzz.be';
```

**Résultat attendu:**
```
bruno@taaazzz.be | free | 3 | 1 | f | 0
```

### Étape 4: Restaurer vers PRO
1. Modifier à nouveau la licence
2. Remettre tier "PRO"
3. Vérifier que les valeurs se réappliquent automatiquement
4. Sauvegarder

**Status:** ⏳ À TESTER

---

## 📊 Résumé des tests

| Test | Objectif | Status | Notes |
|------|----------|--------|-------|
| 1 | Frontend déployé | ✅ PASS | index-CAueAkvs.js présent |
| 2 | Backend UP | ✅ PASS | Uvicorn running |
| 3 | GET /config/tiers | ⏳ | Erreur 405 détectée, vérifier rôle |
| 4 | Panneau édition | ⏳ | À tester dans UI |
| 5 | Pré-remplissage | ⏳ | À tester création licence |
| 6 | Downgrade | ⏳ | À tester modification tier |

---

## 🐛 Debug: Erreur 405 sur GET /api/v1/config/tiers

### Causes possibles

1. **Rôle utilisateur insuffisant**
   - Endpoint requiert `super-admin` ou `analyst`
   - Vérifier avec: `SELECT email, role FROM users WHERE email = 'bruno@taaazzz.be';`
   - Corriger avec: `UPDATE users SET role = 'super-admin' WHERE email = 'bruno@taaazzz.be';`

2. **Cache navigateur**
   - Vider cache: Ctrl+F5
   - Ou DevTools → Network → Disable cache (checkbox)

3. **Problème CORS**
   - Vérifier logs backend: `docker logs web-sentinel-admin-backend | grep -i cors`
   - OPTIONS devrait retourner 200 OK (déjà le cas ✅)

4. **Erreur frontend**
   - Hook `useTierProfiles` envoie peut-être mauvaise requête
   - Vérifier dans DevTools → Network → Filtrer "tiers"
   - Voir méthode HTTP, headers, payload

### Solution temporaire

Si l'erreur persiste, utiliser les profils par défaut (déjà dans le code):

```typescript
// admin/frontend/src/api.ts ligne 195
export const DEFAULT_TIER_PROFILES: TierProfiles = {
  FREE: {
    label: "Free",
    max_domains: 3,
    max_users: 1,
    allow_source_scan: false,
    ...
  },
  ...
}
```

Le hook `useTierProfiles` a un fallback automatique sur ces valeurs si l'API échoue.

---

## ✅ Actions à faire

1. **Tester endpoint GET /api/v1/config/tiers** depuis DevTools Console
2. Si erreur 405, **vérifier le rôle** de l'utilisateur dans la DB
3. **Vider cache navigateur** (Ctrl+F5)
4. **Tester le panneau** d'édition des profils
5. **Créer une licence PRO** et vérifier pré-remplissage
6. **Downgrader une licence** et vérifier réinitialisation SAST
7. **Prendre captures d'écran** des différents panneaux
8. **Reporter les résultats** des tests

---

**Tests créés par:** GitHub Copilot  
**Date:** 7 novembre 2025 14:25 UTC  
**Durée estimée:** 15-20 minutes
