mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-31 00:50:45 +01:00
Cleanup IntegrationTest.cs
This commit is contained in:
@@ -82,7 +82,7 @@ namespace Tgstation.Server.Tests
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public async Task TestUpdate()
|
||||
public async Task TestServerUpdate()
|
||||
{
|
||||
var updatePathRoot = Path.GetTempFileName();
|
||||
File.Delete(updatePathRoot);
|
||||
@@ -163,76 +163,73 @@ namespace Tgstation.Server.Tests
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public async Task TestStandardOperation()
|
||||
public async Task TestFullStandardOperation()
|
||||
{
|
||||
while (true)
|
||||
RequireDiscordToken();
|
||||
var server = new TestingServer(clientFactory, null);
|
||||
using (var serverCts = new CancellationTokenSource())
|
||||
{
|
||||
RequireDiscordToken();
|
||||
var server = new TestingServer(clientFactory, null);
|
||||
using (var serverCts = new CancellationTokenSource())
|
||||
var cancellationToken = serverCts.Token;
|
||||
var serverTask = server.RunAsync(cancellationToken);
|
||||
try
|
||||
{
|
||||
var cancellationToken = serverCts.Token;
|
||||
var serverTask = server.RunAsync(cancellationToken);
|
||||
try
|
||||
IServerClient adminClient;
|
||||
|
||||
var giveUpAt = DateTimeOffset.Now.AddSeconds(60);
|
||||
do
|
||||
{
|
||||
IServerClient adminClient;
|
||||
|
||||
var giveUpAt = DateTimeOffset.Now.AddSeconds(60);
|
||||
do
|
||||
{
|
||||
try
|
||||
{
|
||||
adminClient = await clientFactory.CreateServerClient(server.Url, User.AdminName, User.DefaultAdminPassword).ConfigureAwait(false);
|
||||
break;
|
||||
}
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
//migrating, to be expected
|
||||
if (DateTimeOffset.Now > giveUpAt)
|
||||
throw;
|
||||
await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
|
||||
}
|
||||
catch (ServiceUnavailableException)
|
||||
{
|
||||
// migrating, to be expected
|
||||
if (DateTimeOffset.Now > giveUpAt)
|
||||
throw;
|
||||
await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
|
||||
}
|
||||
} while (true);
|
||||
|
||||
using (adminClient)
|
||||
{
|
||||
var serverInfo = await adminClient.Version(default).ConfigureAwait(false);
|
||||
|
||||
Assert.AreEqual(ApiHeaders.Version, serverInfo.ApiVersion);
|
||||
Assert.AreEqual(typeof(IServer).Assembly.GetName().Version, serverInfo.Version);
|
||||
|
||||
//check that modifying the token even slightly fucks up the auth
|
||||
var newToken = new Token
|
||||
{
|
||||
ExpiresAt = adminClient.Token.ExpiresAt,
|
||||
Bearer = adminClient.Token.Bearer + '0'
|
||||
};
|
||||
|
||||
var badClient = clientFactory.CreateServerClient(server.Url, newToken);
|
||||
await Assert.ThrowsExceptionAsync<UnauthorizedException>(() => badClient.Version(cancellationToken)).ConfigureAwait(false);
|
||||
|
||||
await new AdministrationTest(adminClient.Administration).Run(cancellationToken).ConfigureAwait(false);
|
||||
await new UsersTest(adminClient.Users).Run(cancellationToken).ConfigureAwait(false);
|
||||
await new InstanceManagerTest(adminClient.Instances, server.Directory).Run(cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
serverCts.Cancel();
|
||||
try
|
||||
{
|
||||
await serverTask.ConfigureAwait(false);
|
||||
adminClient = await clientFactory.CreateServerClient(server.Url, User.AdminName, User.DefaultAdminPassword).ConfigureAwait(false);
|
||||
break;
|
||||
}
|
||||
catch (OperationCanceledException) { }
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
//migrating, to be expected
|
||||
if (DateTimeOffset.Now > giveUpAt)
|
||||
throw;
|
||||
await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
|
||||
}
|
||||
catch (ServiceUnavailableException)
|
||||
{
|
||||
// migrating, to be expected
|
||||
if (DateTimeOffset.Now > giveUpAt)
|
||||
throw;
|
||||
await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
|
||||
}
|
||||
} while (true);
|
||||
|
||||
using (adminClient)
|
||||
{
|
||||
var serverInfo = await adminClient.Version(default).ConfigureAwait(false);
|
||||
|
||||
Assert.AreEqual(ApiHeaders.Version, serverInfo.ApiVersion);
|
||||
Assert.AreEqual(typeof(IServer).Assembly.GetName().Version, serverInfo.Version);
|
||||
|
||||
//check that modifying the token even slightly fucks up the auth
|
||||
var newToken = new Token
|
||||
{
|
||||
ExpiresAt = adminClient.Token.ExpiresAt,
|
||||
Bearer = adminClient.Token.Bearer + '0'
|
||||
};
|
||||
|
||||
var badClient = clientFactory.CreateServerClient(server.Url, newToken);
|
||||
await Assert.ThrowsExceptionAsync<UnauthorizedException>(() => badClient.Version(cancellationToken)).ConfigureAwait(false);
|
||||
|
||||
await new AdministrationTest(adminClient.Administration).Run(cancellationToken).ConfigureAwait(false);
|
||||
await new UsersTest(adminClient.Users).Run(cancellationToken).ConfigureAwait(false);
|
||||
await new InstanceManagerTest(adminClient.Instances, server.Directory).Run(cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
serverCts.Cancel();
|
||||
try
|
||||
{
|
||||
await serverTask.ConfigureAwait(false);
|
||||
}
|
||||
catch (OperationCanceledException) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user