diff --git a/src/Yavsc.Blogs.Tests/BlogApiMappedClaimsTests.cs b/src/Yavsc.Blogs.Tests/BlogApiMappedClaimsTests.cs index 00e2ea61b..be2793bf3 100644 --- a/src/Yavsc.Blogs.Tests/BlogApiMappedClaimsTests.cs +++ b/src/Yavsc.Blogs.Tests/BlogApiMappedClaimsTests.cs @@ -74,7 +74,7 @@ IClassFixture var draft = new BlogPost { Id = 0, - Title = "Billet JWT remappe", + Title = "Billet JWT re-mappé", AuthorId = "payload-attacker", Article = "Contenu de test.", DateCreated = DateTime.UtcNow, diff --git a/src/Yavsc.Blogs.Tests/Fixtures/MappedClaimsBlogsWebServerFixture.cs b/src/Yavsc.Blogs.Tests/Fixtures/MappedClaimsBlogsWebServerFixture.cs index 7311ce042..ab4418c57 100644 --- a/src/Yavsc.Blogs.Tests/Fixtures/MappedClaimsBlogsWebServerFixture.cs +++ b/src/Yavsc.Blogs.Tests/Fixtures/MappedClaimsBlogsWebServerFixture.cs @@ -39,6 +39,18 @@ public sealed class MappedClaimsBlogsWebServerFixture : IDisposable, IBackendFix opt.UseInMemoryDatabase("Yavsc.Blogs.Tests.MappedClaims", _inMemoryRoot)); builder.Services.AddSingleton(new NoopFileSystemAuthManager()); + + // BlogSpotService's constructor throws InvalidOperationException + // ("SiteSettings.Blog is not configured.") when Blog is null, so + // every request hitting BlogApiController would 500 resolving the + // service. These tests never upload files (JSON-only POST/PUT), so + // AttachFiles short-circuits — but the service still has to be + // constructible. Point Blog at a per-run temp directory, mirroring + // BlogsWebServerFixture. + builder.Services.Configure(s => + { + s.Blog = Path.Combine(Path.GetTempPath(), "postit-blogs-mappedclaims-" + Guid.NewGuid().ToString("N")); + }); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddControllers()