Files
2026-06-05 17:26:44 +08:00

46 lines
1.0 KiB
Go

package limit
import (
"testing"
"time"
)
func TestLimiterConvertsMbpsToBytesPerSecond(t *testing.T) {
limiter := New(80)
if !limiter.Enabled() {
t.Fatal("limiter is disabled, want enabled")
}
if limiter.Mbps() != 80 {
t.Fatalf("Mbps = %.2f, want 80", limiter.Mbps())
}
if limiter.BytesPerSecond() != 10_000_000 {
t.Fatalf("BytesPerSecond = %d, want 10000000", limiter.BytesPerSecond())
}
}
func TestLimiterCalculatesDelay(t *testing.T) {
limiter := New(80)
delay := limiter.DelayFor(10_000_000, 500*time.Millisecond)
if delay != 500*time.Millisecond {
t.Fatalf("DelayFor = %s, want 500ms", delay)
}
noDelay := limiter.DelayFor(10_000_000, time.Second)
if noDelay != 0 {
t.Fatalf("DelayFor at expected elapsed = %s, want 0", noDelay)
}
}
func TestUnlimitedLimiterDoesNotDelay(t *testing.T) {
limiter := New(0)
if limiter.Enabled() {
t.Fatal("limiter is enabled, want disabled")
}
if delay := limiter.DelayFor(10_000_000, 0); delay != 0 {
t.Fatalf("DelayFor unlimited = %s, want 0", delay)
}
}