From 18fe3d84330c918c9944cd6c4d5803ff14c2e030 Mon Sep 17 00:00:00 2001 From: Florent Messa Date: Mon, 2 Dec 2019 09:51:45 +0100 Subject: [PATCH] fix: add tests for uniq ids entropy --- task.go | 2 +- utils.go | 8 ++++---- utils_test.go | 23 +++++++++++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 utils_test.go diff --git a/task.go b/task.go index f9935f4..ee54f07 100644 --- a/task.go +++ b/task.go @@ -48,7 +48,7 @@ func NewTask(name string, payload interface{}, options ...Option) *Task { } t := &Task{ - ID: id(), + ID: ID(), Name: name, Payload: payload, Status: taskStatusWaiting, diff --git a/utils.go b/utils.go index c31e243..c64f90e 100644 --- a/utils.go +++ b/utils.go @@ -10,10 +10,10 @@ import ( "github.com/pkg/errors" ) -func id() string { - t := time.Unix(1000000, 0) - entropy := ulid.Monotonic(rand.New(rand.NewSource(t.UnixNano())), 0) - return ulid.MustNew(ulid.Now(), entropy).String() +func ID() string { + t := time.Now().UTC() + entropy := rand.New(rand.NewSource(t.UnixNano())) + return ulid.MustNew(ulid.Timestamp(t), entropy).String() } func reverseDurations(durations []time.Duration) []time.Duration { diff --git a/utils_test.go b/utils_test.go new file mode 100644 index 0000000..18e4e78 --- /dev/null +++ b/utils_test.go @@ -0,0 +1,23 @@ +package bokchoy_test + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/thoas/bokchoy" + "github.com/thoas/go-funk" +) + +func TestUtils_ID(t *testing.T) { + is := assert.New(t) + + iteration := 1000 + + ids := make([]string, iteration) + + for i := 0; i < iteration; i++ { + ids[i] = bokchoy.ID() + } + + is.Len(funk.UniqString(ids), iteration) +}