namespace Omika.Tests.Observability.Diagnostic;
/// Fabrique de test partagée pour le diagnostic local (Phase 2).
internal static class DiagnosticTestHarness
{
public static string CreateTempDirectory()
{
string dir = Path.Combine(Path.GetTempPath(), "omika-diag-tests", Guid.NewGuid().ToString("N"));
Directory.CreateDirectory(dir);
return dir;
}
public static void DeleteDirectory(string dir)
{
try
{
if (Directory.Exists(dir))
{
Directory.Delete(dir, recursive: true);
}
}
catch
{
// Best-effort.
}
}
public static async Task WaitUntilAsync(Func condition, int timeoutMs = 3000)
{
DateTimeOffset deadline = DateTimeOffset.UtcNow.AddMilliseconds(timeoutMs);
while (!condition() && DateTimeOffset.UtcNow < deadline)
{
await Task.Delay(10);
}
Assert.True(condition(), "La condition n'a pas été atteinte dans le délai imparti.");
}
}