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();