TECH: Tests Integration/E2E cassés — endpoints API sans auth reçoivent 302 au lieu de 401 (depuis fix auth 4ed805f) #47

Open
opened 2026-08-11 12:20:45 +02:00 by nonobis · 0 comments
Owner

Contexte

Depuis le commit 4ed805f (fix auth du 09/08, « Forçage du schéma par défaut sur Cookies »), les requêtes API non authentifiées reçoivent une 302 redirect vers /login (challenge du schéma Cookies) au lieu d'un 401.

Impact (vérifié sur le commit de base a76904c, SANS aucune modification locale)

  • Heimdall.IntegrationTests : 29 échecs — tous les tests *_WithoutAuth_ReturnsUnauthorized / *_RequiresAuth_ReturnsUnauthorized (Stats, Sites, Settings, Roles, Persons, Permissions, Groups, Events, Discovery, AuditLogs, Assignments, AuthFlow, SignalR, Notifications) : resp.StatusCode should be Unauthorized but was Found/OK (le HttpClient suit la 302)
  • Heimdall.E2E.Tests : 5 échecs — Users_api_returns_401_without_token (302 suivie → 200) + 4 tests UserManagement en timeout Playwright

Correctifs possibles

  1. Côté app (recommandé) : dans OnRedirectToLogin du cookie auth (Program.cs), répondre 401 quand la requête est une API (Accept: application/json ou chemin /api/), garder la 302 pour les navigations navigateur. Aligne le comportement avec les tests et les clients API.
  2. Côté tests : AllowAutoRedirect=false + accepter 401 OU 302 — patch lourd (~34 tests) et moins correct.

Impact

  • make test local échoue (5 + 29) mais c'est identique sur le commit de base — aucune régression introduite par les changements UI du 11/08 (tickets #43-46)
  • Vérifier si la CI (ci-full) lance ces projets et si elle est rouge depuis le 09/08

Fichiers concernés

  • src/Heimdall.Web/Program.cs (OnRedirectToLogin)
  • tests/Heimdall.IntegrationTests/Controllers/* (29 tests)
  • tests/Heimdall.E2E.Tests/SmokeTests.cs + Pages/UserManagementTests.cs
## Contexte Depuis le commit 4ed805f (fix auth du 09/08, « Forçage du schéma par défaut sur Cookies »), les requêtes API non authentifiées reçoivent une **302 redirect vers /login** (challenge du schéma Cookies) au lieu d'un **401**. ## Impact (vérifié sur le commit de base a76904c, SANS aucune modification locale) - **Heimdall.IntegrationTests : 29 échecs** — tous les tests `*_WithoutAuth_ReturnsUnauthorized` / `*_RequiresAuth_ReturnsUnauthorized` (Stats, Sites, Settings, Roles, Persons, Permissions, Groups, Events, Discovery, AuditLogs, Assignments, AuthFlow, SignalR, Notifications) : `resp.StatusCode should be Unauthorized but was Found/OK` (le HttpClient suit la 302) - **Heimdall.E2E.Tests : 5 échecs** — `Users_api_returns_401_without_token` (302 suivie → 200) + 4 tests UserManagement en timeout Playwright ## Correctifs possibles 1. **Côté app (recommandé)** : dans `OnRedirectToLogin` du cookie auth (Program.cs), répondre `401` quand la requête est une API (`Accept: application/json` ou chemin `/api/`), garder la 302 pour les navigations navigateur. Aligne le comportement avec les tests et les clients API. 2. Côté tests : `AllowAutoRedirect=false` + accepter 401 OU 302 — patch lourd (~34 tests) et moins correct. ## Impact - `make test` local échoue (5 + 29) mais c'est **identique sur le commit de base** — aucune régression introduite par les changements UI du 11/08 (tickets #43-46) - Vérifier si la CI (ci-full) lance ces projets et si elle est rouge depuis le 09/08 ## Fichiers concernés - src/Heimdall.Web/Program.cs (OnRedirectToLogin) - tests/Heimdall.IntegrationTests/Controllers/* (29 tests) - tests/Heimdall.E2E.Tests/SmokeTests.cs + Pages/UserManagementTests.cs
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#47
No description provided.