From 4b9b8d5e789583b0f4a1306a750a428c295e8be2 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Fri, 21 Aug 2026 20:25:13 +0100 Subject: [PATCH] fixes the compile --- src/Yavsc.Blogs.Tests/BlogAclApiTests.cs | 29 ++++++++++++------------ 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/Yavsc.Blogs.Tests/BlogAclApiTests.cs b/src/Yavsc.Blogs.Tests/BlogAclApiTests.cs index 12ab0964..5af647cc 100644 --- a/src/Yavsc.Blogs.Tests/BlogAclApiTests.cs +++ b/src/Yavsc.Blogs.Tests/BlogAclApiTests.cs @@ -1,5 +1,4 @@ using System.Net; -using System.Net.Http; using System.Net.Http.Json; using Microsoft.Extensions.DependencyInjection; using Yavsc.Abstract.BlogSpot; @@ -40,11 +39,17 @@ public sealed class BlogAclApiTests : IClassFixture { private readonly BlogsWebServerFixture _fixture; + public long CircleId { get; private set; } + public long PostId { get; private set; } + public BlogAclApiTests(BlogsWebServerFixture fixture) { _fixture = fixture; + ResetDatabaseWithAlice(); } + + /// Reset the in-memory database and seed alice. /// The shared SQLite :memory: store persists across /// requests, so each test starts from a clean slate. @@ -65,6 +70,8 @@ public sealed class BlogAclApiTests : IClassFixture Avatar = "/avatars/alice.png", }); db.SaveChanges(); + CircleId = SeedCircle("alice", "test", isPublic: true); + PostId = SeedBlogPost("alice", "Billet ACL test"); } /// Create a circle owned by @@ -140,19 +147,17 @@ public sealed class BlogAclApiTests : IClassFixture [Fact] public async Task PostCircleAuthorization_returns_201_when_adding_existing_circle_to_existing_post() { - ResetDatabaseWithAlice(); - var circleId = SeedCircle("alice", "Famille"); - var postId = SeedBlogPost("alice", "Billet de test"); using var http = NewClient("alice"); // Mirror PostIt's payload: scalar FK ids only, no nav props. var payload = new CircleAuthorizationToBlogPost { - CircleId = circleId, - BlogPostId = postId, + CircleId = CircleId, + BlogPostId = PostId, }; - var response = await http.PostAsJsonAsync(BlogAclUrl(), payload); + var response = await http.PostAsJsonAsync(BlogAclUrl(), payload, + TestContext.Current.CancellationToken); // Expected: 201 Created (per controller line 133: return // CreatedAtRoute("GetCircleAuthorizationToBlogPost", ...)). @@ -179,7 +184,6 @@ public sealed class BlogAclApiTests : IClassFixture [Fact] public async Task PostCircleAuthorization_returns_201_when_payload_mirrors_PostIt_shape_against_existing_circle_named_test() { - ResetDatabaseWithAlice(); // The prod circle already exists with Name="test", Public=true, // owned by the caller. We seed the same shape pre-POST so the // test reproduces the prod scenario end-to-end. @@ -194,7 +198,8 @@ public sealed class BlogAclApiTests : IClassFixture BlogPostId = postId }; - var response = await http.PostAsJsonAsync(BlogAclUrl(), payload); + var response = await http.PostAsJsonAsync(BlogAclUrl(), payload, + TestContext.Current.CancellationToken); Assert.Equal(HttpStatusCode.Created, response.StatusCode); } @@ -210,22 +215,18 @@ public sealed class BlogAclApiTests : IClassFixture public static IEnumerable BlogAclPayloadsForNever500() { - var circleId = SeedCircle("alice", "test", isPublic: true); - var postId = SeedBlogPost("alice", "Billet ACL test"); // circleId only (the historical bug shape, 2026-08-21 mercure): // must be rejected, never 500. yield return new PostAccessControlRulePayload?[] { new PostAccessControlRulePayload { - BlogPostId = postId, - CircleId = circleId }, new PostAccessControlRulePayload { BlogPostId = -1, - CircleId = circleId + CircleId = 1 } };