spoc-bot-vr/driver_integration_test.go

54 lines
1.2 KiB
Go

//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)
}
}