diff --git a/tests/Tgstation.Server.Host.Tests/Components/Chat/Providers/TestDiscordProvider.cs b/tests/Tgstation.Server.Host.Tests/Components/Chat/Providers/TestDiscordProvider.cs index f4457c285e..cdc30c888e 100644 --- a/tests/Tgstation.Server.Host.Tests/Components/Chat/Providers/TestDiscordProvider.cs +++ b/tests/Tgstation.Server.Host.Tests/Components/Chat/Providers/TestDiscordProvider.cs @@ -7,6 +7,7 @@ using Microsoft.Extensions.Logging; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; +using Tgstation.Server.Api.Models; using Tgstation.Server.Host.Jobs; using Tgstation.Server.Host.Models; using Tgstation.Server.Host.System; @@ -83,6 +84,9 @@ namespace Tgstation.Server.Host.Components.Chat.Providers.Tests if (testToken1 == null) Assert.Inconclusive("Required environment variable TGS_TEST_DISCORD_TOKEN isn't set!"); + if (!new DiscordConnectionStringBuilder(testToken1.ConnectionString).Valid) + Assert.Fail("TGS_TEST_DISCORD_TOKEN is not a valid Discord connection string!"); + var mockLogger = new Mock>(); await using var provider = new DiscordProvider(mockJobManager, Mock.Of(), mockLogger.Object, Mock.Of(), testToken1); Assert.IsFalse(provider.Connected); diff --git a/tests/Tgstation.Server.Host.Tests/Components/Chat/Providers/TestIrcProvider.cs b/tests/Tgstation.Server.Host.Tests/Components/Chat/Providers/TestIrcProvider.cs index 2e8921a6a2..b11b0ea074 100644 --- a/tests/Tgstation.Server.Host.Tests/Components/Chat/Providers/TestIrcProvider.cs +++ b/tests/Tgstation.Server.Host.Tests/Components/Chat/Providers/TestIrcProvider.cs @@ -61,6 +61,9 @@ namespace Tgstation.Server.Host.Components.Chat.Providers.Tests if (actualToken == null) Assert.Inconclusive("Required environment variable TGS_TEST_IRC_CONNECTION_STRING isn't set!"); + if (!new IrcConnectionStringBuilder(actualToken).Valid) + Assert.Fail("TGS_TEST_IRC_CONNECTION_STRING is not a valid IRC connection string!"); + using var loggerFactory = LoggerFactory.Create(builder => { builder.AddConsole(); diff --git a/tests/Tgstation.Server.Tests/Live/Instance/ChatTest.cs b/tests/Tgstation.Server.Tests/Live/Instance/ChatTest.cs index 984c2e9f2c..c7e9944f7b 100644 --- a/tests/Tgstation.Server.Tests/Live/Instance/ChatTest.cs +++ b/tests/Tgstation.Server.Tests/Live/Instance/ChatTest.cs @@ -41,9 +41,22 @@ namespace Tgstation.Server.Tests.Live.Instance async Task RunIrc(CancellationToken cancellationToken) { + var connectionString = Environment.GetEnvironmentVariable("TGS_TEST_IRC_CONNECTION_STRING"); + if (String.IsNullOrWhiteSpace(connectionString)) + // needs to just be valid + connectionString = new IrcConnectionStringBuilder + { + Address = "irc.fake.com", + Nickname = "irc_nick", + Password = "some_pw", + PasswordType = IrcPasswordType.Server, + Port = 6668, + UseSsl = true, + }.ToString(); + var firstBotReq = new ChatBotCreateRequest { - ConnectionString = Environment.GetEnvironmentVariable("TGS_TEST_IRC_CONNECTION_STRING"), + ConnectionString = connectionString, Enabled = false, Name = "tgs_integration_test", Provider = ChatProvider.Irc, @@ -86,6 +99,8 @@ namespace Tgstation.Server.Tests.Live.Instance await WaitForJob(reconnectJob, 60, false, null, cancellationToken); var channelId = Environment.GetEnvironmentVariable("TGS_TEST_IRC_CHANNEL"); + if (String.IsNullOrWhiteSpace(channelId)) + channelId = "#botbus"; updatedBot = await chatClient.Update(new ChatBotUpdateRequest { @@ -122,14 +137,20 @@ namespace Tgstation.Server.Tests.Live.Instance async Task RunDiscord(CancellationToken cancellationToken) { + var connectionString = Environment.GetEnvironmentVariable("TGS_TEST_DISCORD_TOKEN"); + if (String.IsNullOrWhiteSpace(connectionString)) + // needs to just be valid + connectionString = new DiscordConnectionStringBuilder + { + BasedMeme = true, + BotToken = "some_token", + DeploymentBranding = true, + DMOutputDisplay = DiscordDMOutputDisplayType.Never, + }.ToString(); + var firstBotReq = new ChatBotCreateRequest { - ConnectionString = - new DiscordConnectionStringBuilder - { - BotToken = Environment.GetEnvironmentVariable("TGS_TEST_DISCORD_TOKEN"), - DMOutputDisplay = DiscordDMOutputDisplayType.OnError - }.ToString(), + ConnectionString = connectionString, Enabled = false, Name = "r4407", Provider = ChatProvider.Discord, @@ -171,7 +192,11 @@ namespace Tgstation.Server.Tests.Live.Instance Assert.IsNotNull(reconnectJob); await WaitForJob(reconnectJob, 60, false, null, cancellationToken); - var channelId = ulong.Parse(Environment.GetEnvironmentVariable("TGS_TEST_DISCORD_CHANNEL")); + var channelIdStr = Environment.GetEnvironmentVariable("TGS_TEST_DISCORD_CHANNEL"); + if (String.IsNullOrWhiteSpace(channelIdStr)) + channelIdStr = "487268744419344384"; + + var channelId = ulong.Parse(channelIdStr); updatedBot = await chatClient.Update(new ChatBotUpdateRequest { diff --git a/tests/Tgstation.Server.Tests/Live/TestLiveServer.cs b/tests/Tgstation.Server.Tests/Live/TestLiveServer.cs index 01c50b5903..e39d36650e 100644 --- a/tests/Tgstation.Server.Tests/Live/TestLiveServer.cs +++ b/tests/Tgstation.Server.Tests/Live/TestLiveServer.cs @@ -698,15 +698,17 @@ namespace Tgstation.Server.Tests.Live [TestMethod] public async Task TestStandardTgsOperation() { - var missingChatVarsCount = Convert.ToInt32(String.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("TGS_TEST_DISCORD_TOKEN"))) + var discordConnectionString = Environment.GetEnvironmentVariable("TGS_TEST_DISCORD_TOKEN"); + var ircConnectionString = Environment.GetEnvironmentVariable("TGS_TEST_IRC_CONNECTION_STRING"); + var missingChatVarsCount = Convert.ToInt32(String.IsNullOrWhiteSpace(discordConnectionString)) + Convert.ToInt32(String.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("TGS_TEST_DISCORD_CHANNEL"))) - + Convert.ToInt32(String.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("TGS_TEST_IRC_CONNECTION_STRING"))) + + Convert.ToInt32(String.IsNullOrWhiteSpace(ircConnectionString)) + Convert.ToInt32(String.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("TGS_TEST_IRC_CHANNEL"))); const int TotalChatVars = 4; // uncomment to force this test to run with DummyChatProviders - missingChatVarsCount = TotalChatVars; + // missingChatVarsCount = TotalChatVars; if (missingChatVarsCount != 0) { @@ -715,6 +717,12 @@ namespace Tgstation.Server.Tests.Live ServiceCollectionExtensions.UseChatProviderFactory(); } + else + { + // prevalidate + Assert.IsTrue(new DiscordConnectionStringBuilder(discordConnectionString).Valid); + Assert.IsTrue(new IrcConnectionStringBuilder(ircConnectionString).Valid); + } var procs = System.Diagnostics.Process.GetProcessesByName("byond"); if (procs.Any())