From 42662efec532157ee6d23db7ade03e73fa056a6f Mon Sep 17 00:00:00 2001 From: Erik Winter Date: Thu, 24 Jun 2021 06:56:00 +0200 Subject: [PATCH] more tests --- ...ail.adoc => gte-getting-things-email.adoc} | 0 internal/task/date_test.go | 9 ++++ internal/task/dispatch_test.go | 41 +++++++++++++++++++ pkg/msend/memory.go | 5 +++ pkg/msend/memory_test.go | 6 +++ 5 files changed, 61 insertions(+) rename doc/{gte-getting-thins-email.adoc => gte-getting-things-email.adoc} (100%) create mode 100644 internal/task/dispatch_test.go diff --git a/doc/gte-getting-thins-email.adoc b/doc/gte-getting-things-email.adoc similarity index 100% rename from doc/gte-getting-thins-email.adoc rename to doc/gte-getting-things-email.adoc diff --git a/internal/task/date_test.go b/internal/task/date_test.go index c930ae8..05aae30 100644 --- a/internal/task/date_test.go +++ b/internal/task/date_test.go @@ -248,6 +248,10 @@ func TestNewDateFromString(t *testing.T) { }) } }) + + t.Run("empty", func(t *testing.T) { + test.Equals(t, task.Date{}, task.NewDateFromString("test")) + }) } func TestDateDaysBetween(t *testing.T) { @@ -321,6 +325,11 @@ func TestDateString(t *testing.T) { } } +func TestDateIsZero(t *testing.T) { + test.Equals(t, true, task.Date{}.IsZero()) + test.Equals(t, false, task.NewDate(2021, 6, 24).IsZero()) +} + func TestDateAfter(t *testing.T) { day := task.NewDate(2021, 1, 31) for _, tc := range []struct { diff --git a/internal/task/dispatch_test.go b/internal/task/dispatch_test.go new file mode 100644 index 0000000..7de9d6e --- /dev/null +++ b/internal/task/dispatch_test.go @@ -0,0 +1,41 @@ +package task_test + +import ( + "fmt" + "testing" + + "git.ewintr.nl/go-kit/test" + "git.ewintr.nl/gte/internal/task" + "git.ewintr.nl/gte/pkg/msend" +) + +func TestDispatcherDispatch(t *testing.T) { + mem := msend.NewMemory() + disp := task.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) + }) +} diff --git a/pkg/msend/memory.go b/pkg/msend/memory.go index 6f15c0d..8c31e33 100644 --- a/pkg/msend/memory.go +++ b/pkg/msend/memory.go @@ -2,6 +2,7 @@ package msend type Memory struct { Messages []*Message + Err error } func NewMemory() *Memory { @@ -11,6 +12,10 @@ func NewMemory() *Memory { } func (mem *Memory) Send(msg *Message) error { + if mem.Err != nil { + return mem.Err + } + mem.Messages = append(mem.Messages, msg) return nil diff --git a/pkg/msend/memory_test.go b/pkg/msend/memory_test.go index 8583914..d0e5126 100644 --- a/pkg/msend/memory_test.go +++ b/pkg/msend/memory_test.go @@ -1,6 +1,7 @@ package msend_test import ( + "fmt" "testing" "git.ewintr.nl/go-kit/test" @@ -18,4 +19,9 @@ func TestMemorySend(t *testing.T) { msg2 := &msend.Message{Subject: "sub2", Body: "body2"} test.OK(t, mem.Send(msg2)) test.Equals(t, []*msend.Message{msg1, msg2}, mem.Messages) + + expErr := fmt.Errorf("oh no") + mem.Err = expErr + actErr := mem.Send(msg1) + test.Equals(t, expErr, actErr) }