mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-27 23:17:20 +01:00
Assert valid connection strings in chat tests
This commit is contained in:
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user