everything just werks for storage

main
Bel LaPointe 2024-04-16 06:45:40 -06:00
parent d70a0e313f
commit acfd95e5af
2 changed files with 53 additions and 3 deletions

View File

@ -3,7 +3,6 @@ package main
import ( import (
"context" "context"
"encoding/json" "encoding/json"
"errors"
"fmt" "fmt"
"strings" "strings"
@ -43,7 +42,9 @@ func NewStorage(ctx context.Context, driver Driver) (Storage, error) {
} }
func (s Storage) GetEvent(ctx context.Context, ID string) (model.Event, error) { func (s Storage) GetEvent(ctx context.Context, ID string) (model.Event, error) {
return model.Event{}, errors.New("not impl") v := model.Event{}
err := s.selectOne(ctx, "events", &v, "ID = ?", ID)
return v, err
} }
func (s Storage) UpsertEvent(ctx context.Context, event model.Event) error { func (s Storage) UpsertEvent(ctx context.Context, event model.Event) error {
@ -61,7 +62,9 @@ func (s Storage) UpsertMessage(ctx context.Context, message model.Message) error
} }
func (s Storage) GetThread(ctx context.Context, ID string) (model.Thread, error) { func (s Storage) GetThread(ctx context.Context, ID string) (model.Thread, error) {
return model.Thread{}, errors.New("not impl") v := model.Thread{}
err := s.selectOne(ctx, "threads", &v, "ID = ?", ID)
return v, err
} }
func (s Storage) UpsertThread(ctx context.Context, thread model.Thread) error { func (s Storage) UpsertThread(ctx context.Context, thread model.Thread) error {

View File

@ -17,6 +17,53 @@ func TestStorage(t *testing.T) {
t.Fatal(err) 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) { t.Run("upsert get message", func(t *testing.T) {
m := model.NewMessage( m := model.NewMessage(
"ID", "ID",