File: scheduler_test.go

package info (click to toggle)
gitlab-agent 16.1.3-2
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid, trixie
  • size: 6,324 kB
  • sloc: makefile: 175; sh: 52; ruby: 3
file content (32 lines) | stat: -rw-r--r-- 782 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package agent_test

import (
	"context"
	"testing"
	"time"

	gomock "github.com/golang/mock/gomock"
	"gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v16/internal/module/starboard_vulnerability/agent"
)

func TestScheduler(t *testing.T) {
	ctrl := gomock.NewController(t)
	ctx, cancel := context.WithCancel(context.Background())

	schedule := agent.NewMockSchedule(ctrl)
	schedule.EXPECT().Next(gomock.Any()).
		AnyTimes().
		DoAndReturn(func(t time.Time) time.Time {
			return t // run now
		})

	// Create a test job which calls the cancel func.
	// We'll know this is working correctly if `Run` cancels instead of blocking.
	job := &agent.TestJob{
		RunFunc: cancel,
	}

	scheduler := agent.NewCronScheduler()
	scheduler.Schedule(ctx, schedule, job)
	scheduler.Run(ctx)
}