29 lines
1001 B
Go
29 lines
1001 B
Go
package poller
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"supply-intelligence/internal/domain"
|
|
"supply-intelligence/internal/gatewayconsumer"
|
|
"supply-intelligence/internal/repository"
|
|
)
|
|
|
|
func TestGatewayPackagePollerPollOnce(t *testing.T) {
|
|
repo := repository.NewMemoryRepository()
|
|
repo.AppendPackageEvent(context.Background(), domain.PackageChangeEvent{EventID: "evt-1", EventType: "supply_package_published", PackageID: 1, Platform: "openai", Model: "gpt-4.1-mini", OccurredAt: time.Unix(1, 0).UTC(), Version: 1, GatewaySyncStatus: domain.GatewaySyncStatusPending})
|
|
poller := NewGatewayPackagePoller(gatewayconsumer.NewService(repo))
|
|
|
|
out, err := poller.PollOnce(context.Background())
|
|
if err != nil {
|
|
t.Fatalf("unexpected poll error: %v", err)
|
|
}
|
|
if len(out.Items) != 1 || out.Items[0].EventID != "evt-1" {
|
|
t.Fatalf("unexpected output: %+v", out)
|
|
}
|
|
if poller.Cursor() != out.NextCursor {
|
|
t.Fatalf("expected cursor to advance: poller=%q out=%q", poller.Cursor(), out.NextCursor)
|
|
}
|
|
}
|