From e2303490e9807fd3c8eb3760b05e330c1c7a92e3 Mon Sep 17 00:00:00 2001 From: Toutsu Date: Sun, 10 May 2026 18:53:55 +0300 Subject: [PATCH] feat(#15): add session audit log history tests and bump version to 1.12.0 Adds missing tests for GetSessionHistoryForGmAsync authorization. Syncs version across all 4 files for the 1.12.0 minor release. Bump version -> 1.12.0 Co-Authored-By: Claude Opus 4.7 --- .gitea/workflows/deploy.yml | 2 +- Directory.Build.props | 2 +- compose.yaml | 4 +- .../Components/Layout/NavMenu.razor | 2 +- .../Web/AuthorizedSessionServiceTests.cs | 44 +++++++++++++++++++ 5 files changed, 49 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 68cf92a..fc15cf8 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -6,7 +6,7 @@ on: - main env: - VERSION: 1.11.0 + VERSION: 1.12.0 jobs: # ЧАСТЬ 1: Собираем образы и кладем в Gitea (чтобы делиться с ребятами) diff --git a/Directory.Build.props b/Directory.Build.props index bee97ae..61e823c 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,6 @@ - 1.11.0 + 1.12.0 net10.0 preview enable diff --git a/compose.yaml b/compose.yaml index 09c5c89..b49bc01 100644 --- a/compose.yaml +++ b/compose.yaml @@ -17,7 +17,7 @@ services: retries: 10 bot: - image: git.codeanddice.ru/toutsu/gmrelay-bot:1.11.0 + image: git.codeanddice.ru/toutsu/gmrelay-bot:1.12.0 restart: always depends_on: db: @@ -30,7 +30,7 @@ services: - gmrelay web: - image: git.codeanddice.ru/toutsu/gmrelay-web:1.11.0 + image: git.codeanddice.ru/toutsu/gmrelay-web:1.12.0 restart: always depends_on: db: diff --git a/src/GmRelay.Web/Components/Layout/NavMenu.razor b/src/GmRelay.Web/Components/Layout/NavMenu.razor index 8fa634d..fd69d60 100644 --- a/src/GmRelay.Web/Components/Layout/NavMenu.razor +++ b/src/GmRelay.Web/Components/Layout/NavMenu.razor @@ -56,7 +56,7 @@ - + diff --git a/tests/GmRelay.Bot.Tests/Web/AuthorizedSessionServiceTests.cs b/tests/GmRelay.Bot.Tests/Web/AuthorizedSessionServiceTests.cs index 8cb621e..1fdf051 100644 --- a/tests/GmRelay.Bot.Tests/Web/AuthorizedSessionServiceTests.cs +++ b/tests/GmRelay.Bot.Tests/Web/AuthorizedSessionServiceTests.cs @@ -244,6 +244,50 @@ public sealed class AuthorizedSessionServiceTests Assert.Empty(store.LogEntries); } + [Fact] + public async Task GetSessionHistoryForGmAsync_ReturnsHistory_WhenSessionBelongsToOwnedGroup() + { + var gmId = 1001L; + var groupId = Guid.NewGuid(); + var sessionId = Guid.NewGuid(); + var store = new FakeSessionStore( + groups: + [ + new(groupId, 42, "Alpha", gmId) + ], + sessions: + [ + new(sessionId, groupId, "Session A", DateTime.UtcNow, "Planned", "https://example.test/a", Guid.NewGuid(), 10, 42, 4, 1, 0) + ]); + var service = new AuthorizedSessionService(store); + + var history = await service.GetSessionHistoryForGmAsync(sessionId, gmId); + + Assert.NotNull(history); + Assert.Empty(history); + } + + [Fact] + public async Task GetSessionHistoryForGmAsync_ReturnsNull_WhenSessionBelongsToAnotherGm() + { + var groupId = Guid.NewGuid(); + var sessionId = Guid.NewGuid(); + var store = new FakeSessionStore( + groups: + [ + new(groupId, 42, "Alpha", 2002L) + ], + sessions: + [ + new(sessionId, groupId, "Session A", DateTime.UtcNow, "Planned", "https://example.test/a", Guid.NewGuid(), 10, 42, 4, 1, 0) + ]); + var service = new AuthorizedSessionService(store); + + var history = await service.GetSessionHistoryForGmAsync(sessionId, 1001L); + + Assert.Null(history); + } + [Fact] public async Task PromoteWaitlistedPlayerForGmAsync_PromotesOwnedSession() {