//go:build integration package main import ( "context" "os" "testing" "time" "github.com/breel-render/spoc-bot-vr/model" ) func TestDriverIntegration(t *testing.T) { ctx, can := context.WithTimeout(context.Background(), time.Second*30) defer can() driver, err := NewDriver(ctx, os.Getenv("DRIVER_CONN")) if err != nil { t.Fatal(err) } defer driver.Close() q, err := NewQueue(ctx, t.Name(), driver) if err != nil { t.Fatal(err) } qV := []byte("hello") if err := q.Enqueue(ctx, qV); err != nil { t.Error("q cannot enqueue:", err) } else if reservation, v, err := q.Syn(ctx); err != nil { t.Error("q cannot syn:", err) } else if string(v) != string(qV) { t.Error("q enqueued wrong:", string(v)) } else if len(reservation) == 0 { t.Error("q didnt have reservation") } else if err := q.Ack(ctx, reservation); err != nil { t.Error("q cannot ack:", err) } s, err := NewStorage(ctx, driver) if err != nil { t.Fatal(err) } evt := model.Event{ID: "x", Name: "y"} if err := s.UpsertEvent(ctx, evt); err != nil { t.Error("s cannot upsert:", err) } else if e, err := s.GetEvent(ctx, evt.ID); err != nil { t.Error("s cannot get:", err) } else if e != evt { t.Error("s upserted wrong:", e) } }