using Robust.Shared.Configuration;
using Robust.Shared.Log;
using Robust.UnitTesting;
namespace Content.IntegrationTests.Tests;
public sealed class LogErrorTest
{
///
/// This test ensures that error logs cause tests to fail.
///
[Test]
public async Task TestLogErrorCausesTestFailure()
{
await using var pairTracker = await PoolManager.GetServerClient();
var server = pairTracker.Pair.Server;
var client = pairTracker.Pair.Client;
var cfg = server.ResolveDependency();
var logmill = server.ResolveDependency().RootSawmill;
// Default cvar is properly configured
Assert.That(cfg.GetCVar(RTCVars.FailureLogLevel), Is.EqualTo(LogLevel.Error));
// Warnings don't cause tests to fail.
await server.WaitPost(() => logmill.Warning("test"));
// But errors do
await server.WaitPost(() => Assert.Throws(() => logmill.Error("test")));
await client.WaitPost(() => Assert.Throws(() => logmill.Error("test")));
}
}