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", 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) } }) }