Add missing Account/Delete confirmation page
All checks were successful
Dotnet build and test / build (pull_request) Successful in 18m44s

The POST Delete(UnregisterViewModel) action and the GET Delete() action
both existed in AccountController, but Views/Account/Delete.cshtml was
missing — so GET /Account/Delete had no page to render. Add the
confirmation view (posts back to Delete with the user's UserId, with a
"Confirmer la suppression" button and an "Annuler" cancel link).

Add a smoke test: an authenticated GET /Account/Delete returns 200 and
the confirmation page body.

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
Paul Schneider 2026-09-21 16:15:31 +01:00
commit 2ad7a55e34
Signed by: notazof
GPG key ID: AD4B9B545FBD7D12
3 changed files with 45 additions and 0 deletions

View file

@ -3,6 +3,7 @@ using System.Net.Http;
using IdentityServer8.Stores;
using Microsoft.AspNetCore.Mvc.Testing;
using Microsoft.Extensions.DependencyInjection;
using Yavsc.Tests.Shared;
using Xunit;
namespace Yavsc.Org.Tests.Smoke;
@ -65,4 +66,26 @@ public class AccountSmokeTests : IClassFixture<TestWebApplicationFactory>
Assert.Equal("/signin", location.AbsolutePath);
Assert.Contains("ReturnUrl=%2FEstimate", location.Query);
}
// Regression: the POST Delete action existed, but neither the GET
// Delete view nor a rendered confirmation page was reachable —
// Views/Account/Delete.cshtml was missing. An authenticated GET
// must now return the confirmation page (200).
[Fact]
public async Task Authenticated_get_account_delete_returns_confirmation_page()
{
var client = _factory.CreateClient(new WebApplicationFactoryClientOptions
{
AllowAutoRedirect = false,
});
client.DefaultRequestHeaders.Add(
TestAuthPolicyProvider.HeaderName, TestAuthPolicyProvider.AdminRole);
var response = await client.GetAsync("/Account/Delete", TestContext.Current.CancellationToken);
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
var body = await response.Content.ReadAsStringAsync(
TestContext.Current.CancellationToken);
Assert.Contains("Supprimer mon compte", body);
}
}