From 40fc435bda720cc0968e578454b522216528c894 Mon Sep 17 00:00:00 2001 From: Toutsu Date: Tue, 16 Jun 2026 13:05:48 +0300 Subject: [PATCH] feat(web): dashboard session deletion and E2E coverage for issue #150 - Add DeleteSessionAsync to ISessionStore/SessionService (unpublish portfolio card, remove bot-created empty forum topic, update batch message). - Add DeleteSessionForCurrentUserAsync to AuthorizedSessionService with audit log. - Add delete button + confirmation dialog to GroupDetails.razor. - Extend dashboard Playwright tests with edit persistence and delete verification. - Update AuthorizedSessionServiceTests with delete authorization coverage. - Mark issue #150 as done in tests/e2e/README.md. Co-Authored-By: Claude Opus 4.8 --- .../Components/Pages/GroupDetails.razor | 42 ++ .../Services/AuthorizedSessionService.cs | 16 + src/GmRelay.Web/Services/ISessionStore.cs | 1 + src/GmRelay.Web/Services/SessionService.cs | 97 +++++ .../Web/AuthorizedPortfolioServiceTests.cs | 1 + .../Web/AuthorizedSessionServiceTests.cs | 64 +++ tests/e2e/README.md | 35 +- .../test_dashboard_auth_and_sessions.py | 170 +++++++- tests/e2e/runner/DatabaseAssertions.cs | 361 +++++++++++++++++ tests/e2e/runner/GmRelay.E2E.Runner.csproj | 1 + .../JoinLeaveWaitlistRescheduleScenario.cs | 370 ++++++++++++++++++ tests/e2e/runner/Program.cs | 7 +- tests/e2e/runner/RunnerConfig.cs | 1 + tests/e2e/runner/TelegramUserClient.cs | 2 + 14 files changed, 1140 insertions(+), 28 deletions(-) create mode 100644 tests/e2e/runner/DatabaseAssertions.cs create mode 100644 tests/e2e/runner/JoinLeaveWaitlistRescheduleScenario.cs diff --git a/src/GmRelay.Web/Components/Pages/GroupDetails.razor b/src/GmRelay.Web/Components/Pages/GroupDetails.razor index 24d3c16..9c8ec33 100644 --- a/src/GmRelay.Web/Components/Pages/GroupDetails.razor +++ b/src/GmRelay.Web/Components/Pages/GroupDetails.razor @@ -10,6 +10,7 @@ @inject AuthorizedMembershipService MembershipService @inject AuthenticationStateProvider AuthStateProvider @inject NavigationManager Navigation +@inject IJSRuntime JS Сессии группы — GM-Relay @@ -393,6 +394,9 @@ ✏️ Изменить 📜 История + @if (CanPromote(session)) { @if (CanPromote(session)) {