gte/internal/storage/dispatch_test.go

43 lines
852 B
Go

package storage_test
import (
"fmt"
"testing"
"git.ewintr.nl/go-kit/test"
"git.ewintr.nl/gte/internal/storage"
"git.ewintr.nl/gte/internal/task"
"git.ewintr.nl/gte/pkg/msend"
)
func TestDispatcherDispatch(t *testing.T) {
mem := msend.NewMemory()
disp := storage.NewDispatcher(mem)
tsk := &task.Task{
Id: "id",
Version: 3,
Action: "action",
Project: "project",
Due: task.NewDate(2021, 6, 24),
}
t.Run("err", func(t *testing.T) {
expErr := fmt.Errorf("not good")
mem.Err = expErr
actErr := disp.Dispatch(tsk)
test.Equals(t, expErr, actErr)
})
t.Run("success", func(t *testing.T) {
mem.Err = nil
test.OK(t, disp.Dispatch(tsk))
test.Equals(t, 1, len(mem.Messages))
actMsg := mem.Messages[0]
test.Equals(t, tsk.FormatSubject(), actMsg.Subject)
test.Equals(t, tsk.FormatBody(), actMsg.Body)
})
}