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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy