Skip to content

Commit fe74083

Browse files
committed
adept test to random number generator
1 parent 899e3a5 commit fe74083

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

server/src/services/scheduler/scheduler.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ func NewSchedulerService(db DB, scheduler gocron.Scheduler, path string) *Schedu
2626
s := new(SchedulerService)
2727
s.database = db
2828
s.scheduler = scheduler
29-
s.StartScheduler(path)
29+
r := rand.New(rand.NewSource(time.Now().UnixNano()))
30+
s.StartScheduler(path, strconv.Itoa(r.Intn(60)))
3031
return s
3132
}
3233

@@ -37,7 +38,7 @@ This methode initializes and starts the scheduler.
3738
When adding a new job to the scheduler, extend the switch case with the job's methode
3839
*/
3940

40-
func (s *SchedulerService) StartScheduler(path string) {
41+
func (s *SchedulerService) StartScheduler(path string, delay string) {
4142
ctx := context.Background()
4243
log := logger.FromContext(ctx)
4344
conf, err := parseFile(path)
@@ -51,7 +52,6 @@ func (s *SchedulerService) StartScheduler(path string) {
5152
case "Delete Unused Boards":
5253
params = append(params, ctx)
5354
task = s.deleteUnusedBoards
54-
delay := strconv.Itoa(rand.Intn(60))
5555
job.Schedule = strings.Replace(job.Schedule, "$", delay, -1)
5656
params = append(params, parseTaskParameters(ctx, job.Task, new(DeleteBoards))...)
5757
}

server/src/services/scheduler/scheduler_test.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package scheduler
22

33
import (
4+
"fmt"
45
"github.com/go-co-op/gocron/v2"
56
"github.com/golang/mock/gomock"
67
"github.com/google/uuid"
@@ -35,12 +36,14 @@ func (suite *SchedulerTestSuite) TestInitialization() {
3536
s := new(SchedulerService)
3637
ctrl := gomock.NewController(suite.T())
3738
sched := mocks.NewMockScheduler(ctrl)
39+
3840
s.database = mockDB
3941
s.scheduler = sched
4042

4143
sched.EXPECT().Start().Times(1)
42-
sched.EXPECT().NewJob(gocron.CronJob("*/20 * * * * *", true), gomock.Any())
43-
s.StartScheduler("./config.yaml")
44+
sched.EXPECT().NewJob(gocron.CronJob(fmt.Sprintf("0 3 * * *"), false), gomock.Any())
45+
s.StartScheduler("./config.yaml", "0")
46+
4447
mockDB.AssertExpectations(suite.T())
4548
}
4649

@@ -60,19 +63,18 @@ func (suite *SchedulerTestSuite) TestCheckMultipleIntervals() {
6063
User: uuid.New(),
6164
Name: "TestBoard",
6265
}
63-
expected := 6
64-
66+
expected :=
67+
6
6568
mockDB.On("GetSessionsOlderThan", mock.Anything, mock.Anything).
6669
Return([]database.BoardSession{testBoard}, nil)
67-
6870
mockDB.On("DeleteBoard", testBoard.Board).Return(nil)
6971

70-
s.StartScheduler("./config.yaml")
72+
s.StartScheduler("./config.yaml", "0")
7173

7274
for i := 0; i < expected; i++ {
7375
mockDB.wg.Add(1)
7476
fakeClock.BlockUntil(1)
75-
fakeClock.Advance(time.Second * 20)
77+
fakeClock.Advance(time.Hour * 24)
7678
mockDB.wg.Wait()
7779
}
7880

0 commit comments

Comments
 (0)