diff --git a/internal/ircserver/server_test.go b/internal/ircserver/server_test.go index 3b7eabf..a530b36 100644 --- a/internal/ircserver/server_test.go +++ b/internal/ircserver/server_test.go @@ -645,8 +645,6 @@ func TestNewPingTimes(t *testing.T) { func TestIdleCleanupKeepsActiveUser(t *testing.T) { t.Parallel() - const idleTimeout = 500 * time.Millisecond - env := newTestEnv(t) active := env.dial(t) @@ -655,13 +653,17 @@ func TestIdleCleanupKeepsActiveUser(t *testing.T) { idle := env.dial(t) idle.register("idle") - time.Sleep(idleTimeout) + // Both users were last seen before cutoff, and only active + // sends a command after it, so the result does not depend + // on how long the PONG takes to arrive. + cutoff := time.Now() + active.sendAndExpect("PING :still here", "PONG") // The idle cleanup in internal/handlers removes exactly // the users this returns. stale, err := env.database.GetStaleOrphanSessions( - t.Context(), time.Now().Add(-idleTimeout), + t.Context(), cutoff, ) if err != nil { t.Fatalf("get stale sessions: %v", err)