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."); } }