//go:build integration package redisactivity import ( "context" "errors" "testing" "time" "proxy-pool/internal/domain/activitypool" proxyDomain "proxy-pool/internal/domain/proxy" ) func TestRedisLooksUpOnlyLiveProxyUpstream(t *testing.T) { fixture := newRedisTestFixture(t) now := redisTestNow() if _, err := fixture.Adapter.UpsertFetched(context.Background(), "provider-a", activitypool.FetchedBatch{ ObservedAt: now, ConfiguredTTL: time.Minute, MaxSize: 1, Proxies: []proxyDomain.Proxy{testProxy("proxy-a", "192.0.2.10")}, }); err != nil { t.Fatalf("UpsertFetched(): %v", err) } upstream, err := fixture.Adapter.UpstreamForProxy(context.Background(), "proxy-a", now.Add(time.Second)) if err != nil || upstream != "provider-a" { t.Fatalf("UpstreamForProxy(live) = (%q, %v)", upstream, err) } if _, err := fixture.Adapter.UpstreamForProxy(context.Background(), "proxy-a", now.Add(2*time.Minute)); !errors.Is(err, activitypool.ErrActivityNotFound) { t.Fatalf("UpstreamForProxy(expired) error = %v, want ErrActivityNotFound", err) } }