Skip to content

Commit 4cc9fef

Browse files
authored
Add missing tests (#132)
1 parent 6192015 commit 4cc9fef

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

internal/client/client.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import (
1111
)
1212

1313
const (
14-
nextcloudTokenHeader = "NC-Token"
14+
nextcloudTokenHeader = "NC-Token"
15+
maintenanceModeHeader = "X-Nextcloud-Maintenance-Mode"
1516
)
1617

1718
var (
@@ -62,7 +63,7 @@ func New(infoURL, username, password, authToken string, timeout time.Duration, u
6263
case http.StatusTooManyRequests:
6364
return nil, ErrRatelimit
6465
case http.StatusServiceUnavailable:
65-
if res.Header.Get("X-Nextcloud-Maintenance-Mode") != "" {
66+
if res.Header.Get(maintenanceModeHeader) != "" {
6667
return nil, ErrMaintenanceMode
6768
}
6869

internal/client/client_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"time"
1010

1111
"github.com/google/go-cmp/cmp"
12+
1213
"github.com/xperimental/nextcloud-exporter/internal/testutil"
1314
"github.com/xperimental/nextcloud-exporter/serverinfo"
1415
)
@@ -134,6 +135,25 @@ func TestClient(t *testing.T) {
134135
},
135136
wantErr: ErrRatelimit,
136137
},
138+
{
139+
desc: "unavailable",
140+
handler: func(t *testing.T) http.Handler {
141+
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
142+
w.WriteHeader(http.StatusServiceUnavailable)
143+
})
144+
},
145+
wantErr: ErrUnavailable,
146+
},
147+
{
148+
desc: "maintenance",
149+
handler: func(t *testing.T) http.Handler {
150+
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
151+
w.Header().Set(maintenanceModeHeader, "1")
152+
w.WriteHeader(http.StatusServiceUnavailable)
153+
})
154+
},
155+
wantErr: ErrMaintenanceMode,
156+
},
137157
}
138158

139159
for _, tc := range tt {

0 commit comments

Comments
 (0)