diff --git a/tests/GmRelay.Bot.Tests/Rendering/SessionBatchViewBuilderTests.cs b/tests/GmRelay.Bot.Tests/Rendering/SessionBatchViewBuilderTests.cs index 3c9eba4..17c67a6 100644 --- a/tests/GmRelay.Bot.Tests/Rendering/SessionBatchViewBuilderTests.cs +++ b/tests/GmRelay.Bot.Tests/Rendering/SessionBatchViewBuilderTests.cs @@ -110,4 +110,38 @@ public sealed class SessionBatchViewBuilderTests Assert.Equal("Alice", player.DisplayName); Assert.Equal("alice", player.TelegramUsername); } + + [Fact] + public void Build_ShouldHandleEmptySessions() + { + var result = SessionBatchViewBuilder.Build("Empty", [], []); + Assert.Equal("Empty", result.Title); + Assert.Empty(result.Sessions); + } + + [Fact] + public void Build_ShouldHandleConfirmedStatus() + { + var sessionId = Guid.NewGuid(); + var sessions = new[] { new SessionBatchDto(sessionId, DateTime.UtcNow, SessionStatus.Confirmed, 4, "https://example.com/game") }; + var participants = Array.Empty(); + + var result = SessionBatchViewBuilder.Build("Test", sessions, participants); + + Assert.Equal(SessionStatus.Confirmed, result.Sessions[0].Status); + Assert.Equal(2, result.Sessions[0].AvailableActions.Count); + } + + [Fact] + public void Build_ShouldHandleNullMaxPlayers() + { + var sessionId = Guid.NewGuid(); + var sessions = new[] { new SessionBatchDto(sessionId, DateTime.UtcNow, SessionStatus.Planned, null, "https://example.com/game") }; + var participants = Array.Empty(); + + var result = SessionBatchViewBuilder.Build("Test", sessions, participants); + + Assert.Null(result.Sessions[0].MaxPlayers); + Assert.Equal(0, result.Sessions[0].ActivePlayerCount); + } }