Skip to content

Commit 6ce2d00

Browse files
committed
unit tests
1 parent b8f6556 commit 6ce2d00

File tree

7 files changed

+72
-4
lines changed

7 files changed

+72
-4
lines changed

coderd/coderd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ func New(options *Options) *API {
408408

409409
if options.HealthcheckFunc == nil {
410410
options.HealthcheckFunc = func(ctx context.Context, apiKey string) *healthcheck.Report {
411-
dismissedHealthchecks := loadDismissedHealthcheck(ctx, options.Database, options.Logger)
411+
dismissedHealthchecks := loadDismissedHealthchecks(ctx, options.Database, options.Logger)
412412
return healthcheck.Run(ctx, &healthcheck.ReportOptions{
413413
Database: healthcheck.DatabaseReportOptions{
414414
DB: options.Database,

coderd/debug.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@ import (
88
"net/http"
99
"time"
1010

11+
"github.com/google/uuid"
1112
"golang.org/x/exp/slices"
1213
"golang.org/x/xerrors"
1314

1415
"cdr.dev/slog"
1516

16-
"github.com/google/uuid"
17-
1817
"github.com/coder/coder/v2/coderd/audit"
1918
"github.com/coder/coder/v2/coderd/database"
2019
"github.com/coder/coder/v2/coderd/healthcheck"
@@ -256,7 +255,7 @@ func validateHealthSettings(settings codersdk.HealthSettings) error {
256255
// @x-apidocgen {"skip": true}
257256
func _debugws(http.ResponseWriter, *http.Request) {} //nolint:unused
258257

259-
func loadDismissedHealthcheck(ctx context.Context, db database.Store, logger slog.Logger) []string {
258+
func loadDismissedHealthchecks(ctx context.Context, db database.Store, logger slog.Logger) []string {
260259
dismissedHealthchecks := []string{}
261260
settingsJSON, err := db.GetHealthSettings(ctx)
262261
if err == nil {

coderd/healthcheck/accessurl_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,23 @@ func TestAccessURL(t *testing.T) {
109109
require.NotNil(t, report.Error)
110110
assert.Contains(t, *report.Error, expErr.Error())
111111
})
112+
113+
t.Run("DismissedError", func(t *testing.T) {
114+
t.Parallel()
115+
116+
var (
117+
ctx, cancel = context.WithCancel(context.Background())
118+
report healthcheck.AccessURLReport
119+
)
120+
defer cancel()
121+
122+
report.Run(ctx, &healthcheck.AccessURLReportOptions{
123+
Dismissed: true,
124+
})
125+
126+
assert.True(t, report.Dismissed)
127+
assert.Equal(t, health.SeverityError, report.Severity)
128+
})
112129
}
113130

114131
type roundTripFunc func(r *http.Request) (*http.Response, error)

coderd/healthcheck/database_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,26 @@ func TestDatabase(t *testing.T) {
6767
assert.Contains(t, *report.Error, err.Error())
6868
})
6969

70+
t.Run("DismissedError", func(t *testing.T) {
71+
t.Parallel()
72+
73+
var (
74+
ctx, cancel = context.WithTimeout(context.Background(), testutil.WaitShort)
75+
report = healthcheck.DatabaseReport{}
76+
db = dbmock.NewMockStore(gomock.NewController(t))
77+
err = xerrors.New("ping error")
78+
)
79+
defer cancel()
80+
81+
db.EXPECT().Ping(gomock.Any()).Return(time.Duration(0), err)
82+
83+
report.Run(ctx, &healthcheck.DatabaseReportOptions{DB: db, Dismissed: true})
84+
85+
assert.Equal(t, health.SeverityError, report.Severity)
86+
assert.True(t, report.Dismissed)
87+
require.NotNil(t, report.Error)
88+
})
89+
7090
t.Run("Median", func(t *testing.T) {
7191
t.Parallel()
7292

coderd/healthcheck/derphealth/derp_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,15 @@ func TestDERP(t *testing.T) {
120120
}},
121121
},
122122
}},
123+
Dismissed: true, // Let's sneak an extra unit test
123124
}
124125
)
125126

126127
report.Run(ctx, opts)
127128

128129
assert.True(t, report.Healthy)
129130
assert.Equal(t, health.SeverityWarning, report.Severity)
131+
assert.True(t, report.Dismissed)
130132
for _, region := range report.Regions {
131133
assert.True(t, region.Healthy)
132134
assert.True(t, region.NodeReports[0].Healthy)

coderd/healthcheck/websocket_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,22 @@ func TestWebsocket(t *testing.T) {
6868
assert.Equal(t, wsReport.Body, "test error")
6969
assert.Equal(t, wsReport.Code, http.StatusBadRequest)
7070
})
71+
72+
t.Run("DismissedError", func(t *testing.T) {
73+
t.Parallel()
74+
75+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
76+
defer cancel()
77+
78+
wsReport := healthcheck.WebsocketReport{}
79+
wsReport.Run(ctx, &healthcheck.WebsocketReportOptions{
80+
AccessURL: &url.URL{Host: "fake"},
81+
Dismissed: true,
82+
})
83+
84+
require.True(t, wsReport.Dismissed)
85+
require.Equal(t, health.SeverityError, wsReport.Severity)
86+
require.NotNil(t, wsReport.Error)
87+
require.Equal(t, health.SeverityError, wsReport.Severity)
88+
})
7189
}

coderd/healthcheck/workspaceproxy_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,3 +236,15 @@ func fakeUpdateProxyHealth(err error) func(context.Context) error {
236236
return err
237237
}
238238
}
239+
240+
func TestWorkspaceProxy_Dismissed(t *testing.T) {
241+
t.Parallel()
242+
243+
var report healthcheck.WorkspaceProxyReport
244+
report.Run(context.Background(), &healthcheck.WorkspaceProxyReportOptions{
245+
Dismissed: true,
246+
})
247+
248+
assert.True(t, report.Dismissed)
249+
assert.Equal(t, health.SeverityOK, report.Severity)
250+
}

0 commit comments

Comments
 (0)