diff --git a/src/Web/Features/BlogPosts/Edit/Edit.razor b/src/Web/Features/BlogPosts/Edit/Edit.razor index a51f58e9..c3d08849 100644 --- a/src/Web/Features/BlogPosts/Edit/Edit.razor +++ b/src/Web/Features/BlogPosts/Edit/Edit.razor @@ -86,7 +86,8 @@ else if (_model is not null) } else { - _model = null; + Navigation.NavigateTo("/blog"); + return; } } else diff --git a/tests/Web.Tests.Bunit/Features/EditAclTests.cs b/tests/Web.Tests.Bunit/Features/EditAclTests.cs index 3e90c815..ae5c5a31 100644 --- a/tests/Web.Tests.Bunit/Features/EditAclTests.cs +++ b/tests/Web.Tests.Bunit/Features/EditAclTests.cs @@ -31,6 +31,29 @@ public EditAclTests() Services.AddSingleton(_authProvider); } + [Fact] + public void EditRedirectsToBlogWhenPostNotFound() + { + // Arrange + var sender = Substitute.For(); + var postId = Guid.NewGuid(); + + sender.Send(Arg.Any(), Arg.Any()) + .Returns(Task.FromResult(Result.Ok(null))); + + Services.AddSingleton(sender); + + var navigation = Services.GetRequiredService(); + + // Act + RenderWithUser( + CreatePrincipalWithSub("auth0|some-user", ["Author"]), + parameters => parameters.Add(p => p.Id, postId)); + + // Assert + navigation.Uri.Should().EndWith("/blog"); + } + [Fact] public void EditRedirectsToBlogWhenAuthorIsNotPostOwner() {