package handlers

import (
	"testing"
	"time"
)

func TestUploadGroupPrunesFailedEntries(t *testing.T) {
	g := newUploadGrouper()
	entry := g.entryFor("ip:203.0.113.1|failed")
	entry.mu.Lock()
	entry.at = time.Now().Add(-3 * uploadGroupWindow)
	entry.mu.Unlock()
	g.lastPrune = time.Now().Add(-uploadGroupPruneInterval)

	_ = g.entryFor("ip:203.0.113.1|next")

	if _, ok := g.entries["ip:203.0.113.1|failed"]; ok {
		t.Fatalf("stale failed entry was not pruned")
	}
	if _, ok := g.entries["ip:203.0.113.1|next"]; !ok {
		t.Fatalf("new entry was not created")
	}
}
