@@ -12,11 +12,14 @@ import (
12
12
"github.com/coder/coder/v2/coderd/rbac"
13
13
"github.com/coder/coder/v2/coderd/schedule/cron"
14
14
"github.com/coder/coder/v2/codersdk"
15
+ "github.com/coder/coder/v2/enterprise/coderd"
15
16
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
16
17
"github.com/coder/coder/v2/enterprise/coderd/license"
17
18
"github.com/coder/coder/v2/testutil"
18
19
)
19
20
21
+ const TimeFormatHHMM = coderd .TimeFormatHHMM
22
+
20
23
func TestUserQuietHours (t * testing.T ) {
21
24
t .Parallel ()
22
25
@@ -42,15 +45,17 @@ func TestUserQuietHours(t *testing.T) {
42
45
43
46
t .Run ("OK" ,func (t * testing.T ) {
44
47
t .Parallel ()
45
-
46
- defaultQuietHoursSchedule := "CRON_TZ=America/Chicago 0 1 * * *"
48
+ // Using 10 for minutes lets us test a format bug in which values greater
49
+ // than 5 were causing the API to explode because the time was returned
50
+ // incorrectly
51
+ defaultQuietHoursSchedule := "CRON_TZ=America/Chicago 10 1 * * *"
47
52
defaultScheduleParsed ,err := cron .Daily (defaultQuietHoursSchedule )
48
53
require .NoError (t ,err )
49
54
nextTime := defaultScheduleParsed .Next (time .Now ().In (defaultScheduleParsed .Location ()))
50
55
if time .Until (nextTime )< time .Hour {
51
56
// Use a different default schedule instead, because we want to avoid
52
57
// the schedule "ticking over" during this test run.
53
- defaultQuietHoursSchedule = "CRON_TZ=America/Chicago0 13 * * *"
58
+ defaultQuietHoursSchedule = "CRON_TZ=America/Chicago10 13 * * *"
54
59
defaultScheduleParsed ,err = cron .Daily (defaultQuietHoursSchedule )
55
60
require .NoError (t ,err )
56
61
}
@@ -79,7 +84,7 @@ func TestUserQuietHours(t *testing.T) {
79
84
require .NoError (t ,err )
80
85
require .Equal (t ,defaultScheduleParsed .String (),sched1 .RawSchedule )
81
86
require .False (t ,sched1 .UserSet )
82
- require .Equal (t ,defaultScheduleParsed .TimeParsed ().Format ("15:40" ),sched1 .Time )
87
+ require .Equal (t ,defaultScheduleParsed .TimeParsed ().Format (TimeFormatHHMM ),sched1 .Time )
83
88
require .Equal (t ,defaultScheduleParsed .Location ().String (),sched1 .Timezone )
84
89
require .WithinDuration (t ,defaultScheduleParsed .Next (time .Now ()),sched1 .Next ,15 * time .Second )
85
90
@@ -102,7 +107,7 @@ func TestUserQuietHours(t *testing.T) {
102
107
require .NoError (t ,err )
103
108
require .Equal (t ,customScheduleParsed .String (),sched2 .RawSchedule )
104
109
require .True (t ,sched2 .UserSet )
105
- require .Equal (t ,customScheduleParsed .TimeParsed ().Format ("15:40" ),sched2 .Time )
110
+ require .Equal (t ,customScheduleParsed .TimeParsed ().Format (TimeFormatHHMM ),sched2 .Time )
106
111
require .Equal (t ,customScheduleParsed .Location ().String (),sched2 .Timezone )
107
112
require .WithinDuration (t ,customScheduleParsed .Next (time .Now ()),sched2 .Next ,15 * time .Second )
108
113
@@ -111,7 +116,7 @@ func TestUserQuietHours(t *testing.T) {
111
116
require .NoError (t ,err )
112
117
require .Equal (t ,customScheduleParsed .String (),sched3 .RawSchedule )
113
118
require .True (t ,sched3 .UserSet )
114
- require .Equal (t ,customScheduleParsed .TimeParsed ().Format ("15:40" ),sched3 .Time )
119
+ require .Equal (t ,customScheduleParsed .TimeParsed ().Format (TimeFormatHHMM ),sched3 .Time )
115
120
require .Equal (t ,customScheduleParsed .Location ().String (),sched3 .Timezone )
116
121
require .WithinDuration (t ,customScheduleParsed .Next (time .Now ()),sched3 .Next ,15 * time .Second )
117
122