diff --git a/CHANGELOG.md b/CHANGELOG.md index 97b3de4..bd949c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- `Client.Enqueue` no longer enqueues tasks with empty typename; Error message is returned. + ## [0.18.2] - 2020-07-15 ### Changed diff --git a/client.go b/client.go index fbff250..e0054d3 100644 --- a/client.go +++ b/client.go @@ -179,9 +179,6 @@ func (d processInOption) Value() interface{} { return time.Duration(d) } // ErrDuplicateTask error only applies to tasks enqueued with a Unique option. var ErrDuplicateTask = errors.New("task already exists") -// ErrEmptyTypename indicates that task's typename is empty. -var ErrEmptyTypename = errors.New("task typename cannot be empty") - type option struct { retry int queue string @@ -271,7 +268,7 @@ func (c *Client) Close() error { // If no ProcessAt or ProcessIn options are provided, the task will be pending immediately. func (c *Client) Enqueue(task *Task, opts ...Option) (*TaskInfo, error) { if strings.TrimSpace(task.Type()) == "" { - return nil, fmt.Errorf("%w", ErrEmptyTypename) + return nil, fmt.Errorf("task typename cannot be empty") } c.mu.Lock() if defaults, ok := c.opts[task.Type()]; ok { diff --git a/client_test.go b/client_test.go index 3517af1..6d456ec 100644 --- a/client_test.go +++ b/client_test.go @@ -590,6 +590,11 @@ func TestClientEnqueueError(t *testing.T) { task: NewTask("", h.JSON(map[string]interface{}{})), opts: []Option{}, }, + { + desc: "With blank task typename", + task: NewTask(" ", h.JSON(map[string]interface{}{})), + opts: []Option{}, + }, } for _, tc := range tests {