From c6c913f76f8c1d8f74352de96b33eb7fc8eaca7b Mon Sep 17 00:00:00 2001 From: fboucher-os Date: Fri, 7 Aug 2026 14:27:51 -0400 Subject: [PATCH] fix(#173): use Id ?? RowKey for checking and opening offline post HTML --- .../Tests/PostsTests.cs | 33 +++++++++++++++++++ .../Components/Pages/Posts.razor | 4 +-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/NoteBookmark.BlazorApp.Tests/Tests/PostsTests.cs b/src/NoteBookmark.BlazorApp.Tests/Tests/PostsTests.cs index 26244cc..67605b3 100644 --- a/src/NoteBookmark.BlazorApp.Tests/Tests/PostsTests.cs +++ b/src/NoteBookmark.BlazorApp.Tests/Tests/PostsTests.cs @@ -127,3 +127,36 @@ public void Posts_RendersEmptyState_WhenNoPostsReturned() cut.Markup.Should().Contain("Nothing to see here"); } } + +public sealed class PostsHtmlCacheTests : BunitContext +{ + [Fact] + public void Posts_ChecksHtmlCacheWithPostId_WhenIdIsPresent() + { + this.AddFluentUI(); + this.AddAuthorization().SetAuthorized("testuser"); + + var dataServiceMock = new Mock(); + dataServiceMock.Setup(s => s.GetUnreadPosts()).ReturnsAsync([ + new PostL { PartitionKey = "p", RowKey = "row-key-456", Id = "custom-id-123", Title = "Post With Id", Url = "https://example.com/id", Date_published = "2025-01-15T00:00:00", is_read = false } + ]); + dataServiceMock.Setup(s => s.GetReadPosts()).ReturnsAsync([]); + dataServiceMock.Setup(s => s.SyncAsync()).Returns(Task.CompletedTask); + dataServiceMock.SetupGet(s => s.IsOffline).Returns(false); + dataServiceMock.SetupGet(s => s.CanSync).Returns(false); + + var htmlCacheMock = new Mock(); + htmlCacheMock.Setup(c => c.IsHtmlCached("custom-id-123")).Returns(true); + + Services.AddSingleton(dataServiceMock.Object); + Services.AddSingleton(new Mock().Object); + Services.AddSingleton(new Mock().Object); + Services.AddSingleton(htmlCacheMock.Object); + + var cut = Render(); + + htmlCacheMock.Verify(c => c.IsHtmlCached("custom-id-123"), Times.Once); + cut.Markup.Should().Contain("Read post"); + } +} + diff --git a/src/NoteBookmark.SharedUI/Components/Pages/Posts.razor b/src/NoteBookmark.SharedUI/Components/Pages/Posts.razor index 697b5b1..54105af 100644 --- a/src/NoteBookmark.SharedUI/Components/Pages/Posts.razor +++ b/src/NoteBookmark.SharedUI/Components/Pages/Posts.razor @@ -42,9 +42,9 @@ { } - @if (localHtmlCache.IsHtmlCached(context!.RowKey)) + @if (localHtmlCache.IsHtmlCached(context!.Id ?? context!.RowKey)) { - + }