package auth import ( "testing" "time" ) func TestNonceCache(t *testing.T) { now := time.Date(2026, 10, 1, 12, 0, 0, 0, time.UTC) var c nonceCache if !c.add("keyA", "n1", now.Add(time.Minute), now) { t.Fatal("erste Verwendung abgelehnt") } if c.add("keyA", "n1", now.Add(time.Minute), now) { t.Error("Wiederholung akzeptiert") } if !c.add("keyB", "n1", now.Add(time.Minute), now) { t.Error("gleiche Nonce eines anderen Schlüssels abgelehnt") } // Nach Ablauf wird der Eintrag aufgeräumt; der Zeitstempel-Check // verhindert dann ohnehin jede Wiederverwendung. later := now.Add(2 * time.Minute) c.add("keyA", "n2", later.Add(time.Minute), later) if n := c.len(); n != 1 { t.Errorf("%d Einträge nach Ablauf, erwartet 1", n) } }