spoc-bot-vr/storage_test.go

90 lines
1.9 KiB
Go

package main
import (
"context"
"testing"
"time"
"github.com/breel-render/spoc-bot-vr/model"
)
func TestStorage(t *testing.T) {
ctx, can := context.WithTimeout(context.Background(), time.Minute)
defer can()
s, err := NewStorage(ctx, NewTestDriver(t))
if err != nil {
t.Fatal(err)
}
t.Run("upsert get event", func(t *testing.T) {
m := model.NewEvent(
"ID",
"URL",
1,
"Name",
"Asset",
"Datacenter",
"Team",
true,
)
if err := s.UpsertEvent(ctx, m); err != nil {
t.Fatal("unexpected error on insert:", err)
} else if err := s.UpsertEvent(ctx, m); err != nil {
t.Fatal("unexpected error on noop update:", err)
}
if got, err := s.GetEvent(ctx, m.ID); err != nil {
t.Fatal("unexpected error on get:", err)
} else if got != m {
t.Fatal("unexpected result from get:", got)
}
})
t.Run("upsert get thread", func(t *testing.T) {
m := model.NewThread(
"ID",
"URL",
1,
"Channel",
"EventID",
)
if err := s.UpsertThread(ctx, m); err != nil {
t.Fatal("unexpected error on insert:", err)
} else if err := s.UpsertThread(ctx, m); err != nil {
t.Fatal("unexpected error on noop update:", err)
}
if got, err := s.GetThread(ctx, m.ID); err != nil {
t.Fatal("unexpected error on get:", err)
} else if got != m {
t.Fatal("unexpected result from get:", got)
}
})
t.Run("upsert get message", func(t *testing.T) {
m := model.NewMessage(
"ID",
"URL",
1,
"Author",
"Plaintext",
"ThreadID",
)
if err := s.UpsertMessage(ctx, m); err != nil {
t.Fatal("unexpected error on insert:", err)
} else if err := s.UpsertMessage(ctx, m); err != nil {
t.Fatal("unexpected error on noop update:", err)
}
if got, err := s.GetMessage(ctx, m.ID); err != nil {
t.Fatal("unexpected error on get:", err)
} else if got != m {
t.Fatal("unexpected result from get:", got)
}
})
}