Skip to content

Commit eacdfb9

Browse files
authored
fix: change time format string from 15:40 to 15:04 (coder#14033)
* Change string format to constant value
1 parent d8ddce8 commit eacdfb9

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

enterprise/coderd/users.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import (
1414
"github.com/coder/coder/v2/codersdk"
1515
)
1616

17+
const TimeFormatHHMM = "15:04"
18+
1719
func (api *API) autostopRequirementEnabledMW(next http.Handler) http.Handler {
1820
return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
1921
// Entitlement must be enabled.
@@ -66,7 +68,7 @@ func (api *API) userQuietHoursSchedule(rw http.ResponseWriter, r *http.Request)
6668
RawSchedule: opts.Schedule.String(),
6769
UserSet: opts.UserSet,
6870
UserCanSet: opts.UserCanSet,
69-
Time: opts.Schedule.TimeParsed().Format("15:40"),
71+
Time: opts.Schedule.TimeParsed().Format(TimeFormatHHMM),
7072
Timezone: opts.Schedule.Location().String(),
7173
Next: opts.Schedule.Next(time.Now().In(opts.Schedule.Location())),
7274
})
@@ -118,7 +120,7 @@ func (api *API) putUserQuietHoursSchedule(rw http.ResponseWriter, r *http.Reques
118120
RawSchedule: opts.Schedule.String(),
119121
UserSet: opts.UserSet,
120122
UserCanSet: opts.UserCanSet,
121-
Time: opts.Schedule.TimeParsed().Format("15:40"),
123+
Time: opts.Schedule.TimeParsed().Format(TimeFormatHHMM),
122124
Timezone: opts.Schedule.Location().String(),
123125
Next: opts.Schedule.Next(time.Now().In(opts.Schedule.Location())),
124126
})

enterprise/coderd/users_test.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,14 @@ import (
1414
"github.com/coder/coder/v2/coderd/rbac"
1515
"github.com/coder/coder/v2/coderd/schedule/cron"
1616
"github.com/coder/coder/v2/codersdk"
17+
"github.com/coder/coder/v2/enterprise/coderd"
1718
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
1819
"github.com/coder/coder/v2/enterprise/coderd/license"
1920
"github.com/coder/coder/v2/testutil"
2021
)
2122

23+
const TimeFormatHHMM = coderd.TimeFormatHHMM
24+
2225
func TestUserQuietHours(t *testing.T) {
2326
t.Parallel()
2427

@@ -44,15 +47,17 @@ func TestUserQuietHours(t *testing.T) {
4447

4548
t.Run("OK", func(t *testing.T) {
4649
t.Parallel()
47-
48-
defaultQuietHoursSchedule := "CRON_TZ=America/Chicago 0 1 * * *"
50+
// Using 10 for minutes lets us test a format bug in which values greater
51+
// than 5 were causing the API to explode because the time was returned
52+
// incorrectly
53+
defaultQuietHoursSchedule := "CRON_TZ=America/Chicago 10 1 * * *"
4954
defaultScheduleParsed, err := cron.Daily(defaultQuietHoursSchedule)
5055
require.NoError(t, err)
5156
nextTime := defaultScheduleParsed.Next(time.Now().In(defaultScheduleParsed.Location()))
5257
if time.Until(nextTime) < time.Hour {
5358
// Use a different default schedule instead, because we want to avoid
5459
// the schedule "ticking over" during this test run.
55-
defaultQuietHoursSchedule = "CRON_TZ=America/Chicago 0 13 * * *"
60+
defaultQuietHoursSchedule = "CRON_TZ=America/Chicago 10 13 * * *"
5661
defaultScheduleParsed, err = cron.Daily(defaultQuietHoursSchedule)
5762
require.NoError(t, err)
5863
}
@@ -81,7 +86,7 @@ func TestUserQuietHours(t *testing.T) {
8186
require.NoError(t, err)
8287
require.Equal(t, defaultScheduleParsed.String(), sched1.RawSchedule)
8388
require.False(t, sched1.UserSet)
84-
require.Equal(t, defaultScheduleParsed.TimeParsed().Format("15:40"), sched1.Time)
89+
require.Equal(t, defaultScheduleParsed.TimeParsed().Format(TimeFormatHHMM), sched1.Time)
8590
require.Equal(t, defaultScheduleParsed.Location().String(), sched1.Timezone)
8691
require.WithinDuration(t, defaultScheduleParsed.Next(time.Now()), sched1.Next, 15*time.Second)
8792

@@ -104,7 +109,7 @@ func TestUserQuietHours(t *testing.T) {
104109
require.NoError(t, err)
105110
require.Equal(t, customScheduleParsed.String(), sched2.RawSchedule)
106111
require.True(t, sched2.UserSet)
107-
require.Equal(t, customScheduleParsed.TimeParsed().Format("15:40"), sched2.Time)
112+
require.Equal(t, customScheduleParsed.TimeParsed().Format(TimeFormatHHMM), sched2.Time)
108113
require.Equal(t, customScheduleParsed.Location().String(), sched2.Timezone)
109114
require.WithinDuration(t, customScheduleParsed.Next(time.Now()), sched2.Next, 15*time.Second)
110115

@@ -113,7 +118,7 @@ func TestUserQuietHours(t *testing.T) {
113118
require.NoError(t, err)
114119
require.Equal(t, customScheduleParsed.String(), sched3.RawSchedule)
115120
require.True(t, sched3.UserSet)
116-
require.Equal(t, customScheduleParsed.TimeParsed().Format("15:40"), sched3.Time)
121+
require.Equal(t, customScheduleParsed.TimeParsed().Format(TimeFormatHHMM), sched3.Time)
117122
require.Equal(t, customScheduleParsed.Location().String(), sched3.Timezone)
118123
require.WithinDuration(t, customScheduleParsed.Next(time.Now()), sched3.Next, 15*time.Second)
119124

0 commit comments

Comments
 (0)