From 8666b8984e4f7808a75cc26edcaaefaf9fb816b2 Mon Sep 17 00:00:00 2001 From: Toutsu Date: Tue, 19 May 2026 11:33:33 +0300 Subject: [PATCH] feat: register Discord session handlers and permission checker in DI Task 5: DI wiring for DiscordNewSessionHandler, DiscordListSessionsHandler, DiscordPermissionChecker, and DiscordPlatformMessenger. Co-Authored-By: Claude Opus 4.7 --- src/GmRelay.DiscordBot/Program.cs | 8 ++++++++ .../GmRelay.Bot.Tests/Discord/DiscordStartupTests.cs | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/GmRelay.DiscordBot/Program.cs b/src/GmRelay.DiscordBot/Program.cs index 4efe339..172ec82 100644 --- a/src/GmRelay.DiscordBot/Program.cs +++ b/src/GmRelay.DiscordBot/Program.cs @@ -1,5 +1,8 @@ using GmRelay.DiscordBot; +using GmRelay.DiscordBot.Features.Sessions; +using GmRelay.DiscordBot.Infrastructure.Discord; using GmRelay.DiscordBot.Infrastructure.Logging; +using GmRelay.Shared.Platform; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using NetCord; @@ -37,6 +40,11 @@ builder.Services.AddSingleton(sp => return NpgsqlDataSource.Create(connectionString); }); +builder.Services.AddSingleton(); +builder.Services.AddSingleton(); +builder.Services.AddSingleton(); +builder.Services.AddSingleton(); + builder.Services .AddDiscordGateway(options => { diff --git a/tests/GmRelay.Bot.Tests/Discord/DiscordStartupTests.cs b/tests/GmRelay.Bot.Tests/Discord/DiscordStartupTests.cs index 2d83a2e..0fda98f 100644 --- a/tests/GmRelay.Bot.Tests/Discord/DiscordStartupTests.cs +++ b/tests/GmRelay.Bot.Tests/Discord/DiscordStartupTests.cs @@ -71,6 +71,17 @@ public sealed class DiscordStartupTests Assert.DoesNotContain("Token", logger); } + [Fact] + public void Program_ShouldRegisterDiscordSessionHandlers() + { + var program = ReadProgram(); + Assert.Contains("DiscordListSessionsHandler", program); + Assert.Contains("DiscordNewSessionHandler", program); + Assert.Contains("DiscordPermissionChecker", program); + Assert.Contains("DiscordPlatformMessenger", program); + Assert.Contains("IPlatformMessenger", program); + } + private static string ReadProgram() { var repoRoot = GetRepoRoot();