From 8ce2ae83fd4bbc93beb8600f623da2940668dd43 Mon Sep 17 00:00:00 2001 From: Benjamin Cane Date: Tue, 24 Dec 2019 20:18:25 -0700 Subject: [PATCH] Improving coverage --- tasks_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tasks_test.go b/tasks_test.go index 1ca5635..9b8d96f 100644 --- a/tasks_test.go +++ b/tasks_test.go @@ -124,6 +124,40 @@ func TestScheduler(t *testing.T) { } }) + t.Run("Verify Cancelling a StartAfter works as expected", func(t *testing.T) { + // Channel for orchestrating when the task ran + doneCh := make(chan struct{}) + + // Create a Start time + sa := time.Now().Add(10 * time.Second) + + // Setup A task + id, err := scheduler.Add(&Task{ + Interval: time.Duration(1 * time.Second), + StartAfter: sa, + TaskFunc: func() error { + doneCh <- struct{}{} + return nil + }, + ErrFunc: func(e error) {}, + }) + if err != nil { + t.Errorf("Unexpected errors when scheduling a valid task - %s", err) + } + + // Remove task before it can be scheduled + scheduler.Del(id) + + // Make sure it doesn't run + select { + case <-doneCh: + t.Errorf("Task executed it was supposed to be cancelled") + return + case <-time.After(15 * time.Second): + return + } + }) + t.Run("Verify Tasks Dont run when Deleted", func(t *testing.T) { // Channel for orchestrating when the task ran doneCh := make(chan struct{})