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 <noreply@anthropic.com>
This commit is contained in:
2026-05-19 11:33:33 +03:00
parent d373ff49ba
commit 8666b8984e
2 changed files with 19 additions and 0 deletions
+8
View File
@@ -1,5 +1,8 @@
using GmRelay.DiscordBot; using GmRelay.DiscordBot;
using GmRelay.DiscordBot.Features.Sessions;
using GmRelay.DiscordBot.Infrastructure.Discord;
using GmRelay.DiscordBot.Infrastructure.Logging; using GmRelay.DiscordBot.Infrastructure.Logging;
using GmRelay.Shared.Platform;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using NetCord; using NetCord;
@@ -37,6 +40,11 @@ builder.Services.AddSingleton<NpgsqlDataSource>(sp =>
return NpgsqlDataSource.Create(connectionString); return NpgsqlDataSource.Create(connectionString);
}); });
builder.Services.AddSingleton<DiscordPermissionChecker>();
builder.Services.AddSingleton<DiscordListSessionsHandler>();
builder.Services.AddSingleton<DiscordNewSessionHandler>();
builder.Services.AddSingleton<IPlatformMessenger, DiscordPlatformMessenger>();
builder.Services builder.Services
.AddDiscordGateway(options => .AddDiscordGateway(options =>
{ {
@@ -71,6 +71,17 @@ public sealed class DiscordStartupTests
Assert.DoesNotContain("Token", logger); 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() private static string ReadProgram()
{ {
var repoRoot = GetRepoRoot(); var repoRoot = GetRepoRoot();