Assert valid connection strings in chat tests

This commit is contained in:
Dominion
2023-05-23 17:54:06 -04:00
parent e0cd13917f
commit 6ac18508da
4 changed files with 51 additions and 11 deletions
@@ -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<ILogger<DiscordProvider>>();
await using var provider = new DiscordProvider(mockJobManager, Mock.Of<IAsyncDelayer>(), mockLogger.Object, Mock.Of<IAssemblyInformationProvider>(), testToken1);
Assert.IsFalse(provider.Connected);
@@ -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();
@@ -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
{
@@ -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<DummyChatProviderFactory>();
}
else
{
// prevalidate
Assert.IsTrue(new DiscordConnectionStringBuilder(discordConnectionString).Valid);
Assert.IsTrue(new IrcConnectionStringBuilder(ircConnectionString).Valid);
}
var procs = System.Diagnostics.Process.GetProcessesByName("byond");
if (procs.Any())