package outbox

import (
	"testing"
	"time"
)

func TestRetryDelayIsExponentialAndCapped(t *testing.T) {
	tests := []struct {
		attempt int
		want    time.Duration
	}{{1, time.Second}, {2, 2 * time.Second}, {3, 4 * time.Second}, {20, 5 * time.Second}}
	for _, test := range tests {
		if got := retryDelay(test.attempt, 5*time.Second); got != test.want {
			t.Fatalf("attempt %d: got %s, want %s", test.attempt, got, test.want)
		}
	}
}
