Skip to content

Commit be7b7c7

Browse files
author
Dalton
committed
AUTH-2993 cleaned up worker service tests
1 parent 03d7320 commit be7b7c7

File tree

1 file changed

+68
-58
lines changed

1 file changed

+68
-58
lines changed

cmd/cloudflared/updater/workers_service_test.go

Lines changed: 68 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ import (
1010
"io/ioutil"
1111
"log"
1212
"net/http"
13+
"net/http/httptest"
1314
"os"
1415
"runtime"
1516
"testing"
1617

17-
"github.com/stretchr/testify/assert"
18+
"github.com/stretchr/testify/require"
1819
)
1920

2021
func respondWithJSON(w http.ResponseWriter, v interface{}, status int) {
@@ -33,7 +34,7 @@ func respondWithData(w http.ResponseWriter, b []byte, status int) {
3334

3435
func updateHandler(w http.ResponseWriter, r *http.Request) {
3536
version := "2020.08.05"
36-
host := "http://localhost:8090"
37+
host := fmt.Sprintf("http://%s", r.Host)
3738
url := host + "/download"
3839

3940
query := r.URL.Query()
@@ -69,7 +70,8 @@ func gzipUpdateHandler(w http.ResponseWriter, r *http.Request) {
6970
fmt.Fprint(h, version)
7071
checksum := fmt.Sprintf("%x", h.Sum(nil))
7172

72-
v := VersionResponse{URL: "http://localhost:8090/gzip-download.tgz", Version: version, Checksum: checksum}
73+
url := fmt.Sprintf("http://%s/gzip-download.tgz", r.Host)
74+
v := VersionResponse{URL: url, Version: version, Checksum: checksum}
7375
respondWithJSON(w, v, http.StatusOK)
7476
}
7577

@@ -110,154 +112,162 @@ func failureHandler(w http.ResponseWriter, r *http.Request) {
110112
respondWithJSON(w, VersionResponse{Error: "unsupported os and architecture"}, http.StatusBadRequest)
111113
}
112114

113-
func startServer() {
115+
func createServer() *httptest.Server {
114116
mux := http.NewServeMux()
115117
mux.HandleFunc("/updater", updateHandler)
116118
mux.HandleFunc("/download", downloadHandler)
117119
mux.HandleFunc("/beta", betaHandler)
118120
mux.HandleFunc("/fail", failureHandler)
119121
mux.HandleFunc("/compressed", gzipUpdateHandler)
120122
mux.HandleFunc("/gzip-download.tgz", compressedDownloadHandler)
121-
http.ListenAndServe(":8090", mux)
123+
return httptest.NewServer(mux)
122124
}
123125

124126
func createTestFile(t *testing.T, path string) {
125127
f, err := os.Create("tmpfile")
126-
assert.NoError(t, err)
128+
require.NoError(t, err)
127129
fmt.Fprint(f, "2020.08.04")
128130
f.Close()
129131
}
130132

131133
func TestUpdateService(t *testing.T) {
132-
go startServer()
134+
ts := createServer()
135+
defer ts.Close()
133136

134137
testFilePath := "tmpfile"
135138
createTestFile(t, testFilePath)
136139
defer os.Remove(testFilePath)
140+
log.Println("server url: ", ts.URL)
137141

138-
s := NewWorkersService("2020.8.2", "http://localhost:8090/updater", testFilePath, Options{})
142+
s := NewWorkersService("2020.8.2", fmt.Sprintf("%s/updater", ts.URL), testFilePath, Options{})
139143
v, err := s.Check()
140-
assert.NoError(t, err)
141-
assert.Equal(t, v.String(), "2020.08.05")
144+
require.NoError(t, err)
145+
require.Equal(t, v.String(), "2020.08.05")
142146

143-
assert.NoError(t, v.Apply())
147+
require.NoError(t, v.Apply())
144148
dat, err := ioutil.ReadFile(testFilePath)
145-
assert.NoError(t, err)
149+
require.NoError(t, err)
146150

147-
assert.Equal(t, string(dat), "2020.08.05")
151+
require.Equal(t, string(dat), "2020.08.05")
148152
}
149153

150154
func TestBetaUpdateService(t *testing.T) {
151-
go startServer()
155+
ts := createServer()
156+
defer ts.Close()
152157

153158
testFilePath := "tmpfile"
154159
createTestFile(t, testFilePath)
155160
defer os.Remove(testFilePath)
156161

157-
s := NewWorkersService("2020.8.2", "http://localhost:8090/updater", testFilePath, Options{IsBeta: true})
162+
s := NewWorkersService("2020.8.2", fmt.Sprintf("%s/updater", ts.URL), testFilePath, Options{IsBeta: true})
158163
v, err := s.Check()
159-
assert.NoError(t, err)
160-
assert.Equal(t, v.String(), "2020.08.06")
164+
require.NoError(t, err)
165+
require.Equal(t, v.String(), "2020.08.06")
161166

162-
assert.NoError(t, v.Apply())
167+
require.NoError(t, v.Apply())
163168
dat, err := ioutil.ReadFile(testFilePath)
164-
assert.NoError(t, err)
169+
require.NoError(t, err)
165170

166-
assert.Equal(t, string(dat), "2020.08.06")
171+
require.Equal(t, string(dat), "2020.08.06")
167172
}
168173

169174
func TestFailUpdateService(t *testing.T) {
170-
go startServer()
175+
ts := createServer()
176+
defer ts.Close()
171177

172178
testFilePath := "tmpfile"
173179
createTestFile(t, testFilePath)
174180
defer os.Remove(testFilePath)
175181

176-
s := NewWorkersService("2020.8.2", "http://localhost:8090/fail", testFilePath, Options{})
182+
s := NewWorkersService("2020.8.2", fmt.Sprintf("%s/fail", ts.URL), testFilePath, Options{})
177183
v, err := s.Check()
178-
assert.Error(t, err)
179-
assert.Nil(t, v)
184+
require.Error(t, err)
185+
require.Nil(t, v)
180186
}
181187

182188
func TestNoUpdateService(t *testing.T) {
183-
go startServer()
189+
ts := createServer()
190+
defer ts.Close()
184191

185192
testFilePath := "tmpfile"
186193
createTestFile(t, testFilePath)
187194
defer os.Remove(testFilePath)
188195

189-
s := NewWorkersService("2020.8.5", "http://localhost:8090/updater", testFilePath, Options{})
196+
s := NewWorkersService("2020.8.5", fmt.Sprintf("%s/updater", ts.URL), testFilePath, Options{})
190197
v, err := s.Check()
191-
assert.NoError(t, err)
192-
assert.Nil(t, v)
198+
require.NoError(t, err)
199+
require.Nil(t, v)
193200
}
194201

195202
func TestForcedUpdateService(t *testing.T) {
196-
go startServer()
203+
ts := createServer()
204+
defer ts.Close()
197205

198206
testFilePath := "tmpfile"
199207
createTestFile(t, testFilePath)
200208
defer os.Remove(testFilePath)
201209

202-
s := NewWorkersService("2020.8.5", "http://localhost:8090/updater", testFilePath, Options{IsForced: true})
210+
s := NewWorkersService("2020.8.5", fmt.Sprintf("%s/updater", ts.URL), testFilePath, Options{IsForced: true})
203211
v, err := s.Check()
204-
assert.NoError(t, err)
205-
assert.Equal(t, v.String(), "2020.08.05")
212+
require.NoError(t, err)
213+
require.Equal(t, v.String(), "2020.08.05")
206214

207-
assert.NoError(t, v.Apply())
215+
require.NoError(t, v.Apply())
208216
dat, err := ioutil.ReadFile(testFilePath)
209-
assert.NoError(t, err)
217+
require.NoError(t, err)
210218

211-
assert.Equal(t, string(dat), "2020.08.05")
219+
require.Equal(t, string(dat), "2020.08.05")
212220
}
213221

214222
func TestUpdateSpecificVersionService(t *testing.T) {
215-
go startServer()
223+
ts := createServer()
224+
defer ts.Close()
216225

217226
testFilePath := "tmpfile"
218227
createTestFile(t, testFilePath)
219228
defer os.Remove(testFilePath)
220229
reqVersion := "2020.9.1"
221230

222-
s := NewWorkersService("2020.8.2", "http://localhost:8090/updater", testFilePath, Options{RequestedVersion: reqVersion})
231+
s := NewWorkersService("2020.8.2", fmt.Sprintf("%s/updater", ts.URL), testFilePath, Options{RequestedVersion: reqVersion})
223232
v, err := s.Check()
224-
assert.NoError(t, err)
225-
assert.Equal(t, reqVersion, v.String())
233+
require.NoError(t, err)
234+
require.Equal(t, reqVersion, v.String())
226235

227-
assert.NoError(t, v.Apply())
236+
require.NoError(t, v.Apply())
228237
dat, err := ioutil.ReadFile(testFilePath)
229-
assert.NoError(t, err)
238+
require.NoError(t, err)
230239

231-
assert.Equal(t, reqVersion, string(dat))
240+
require.Equal(t, reqVersion, string(dat))
232241
}
233242

234243
func TestCompressedUpdateService(t *testing.T) {
235-
go startServer()
244+
ts := createServer()
245+
defer ts.Close()
236246

237247
testFilePath := "tmpfile"
238248
createTestFile(t, testFilePath)
239249
defer os.Remove(testFilePath)
240250

241-
s := NewWorkersService("2020.8.2", "http://localhost:8090/compressed", testFilePath, Options{})
251+
s := NewWorkersService("2020.8.2", fmt.Sprintf("%s/compressed", ts.URL), testFilePath, Options{})
242252
v, err := s.Check()
243-
assert.NoError(t, err)
244-
assert.Equal(t, "2020.09.02", v.String())
253+
require.NoError(t, err)
254+
require.Equal(t, "2020.09.02", v.String())
245255

246-
assert.NoError(t, v.Apply())
256+
require.NoError(t, v.Apply())
247257
dat, err := ioutil.ReadFile(testFilePath)
248-
assert.NoError(t, err)
258+
require.NoError(t, err)
249259

250-
assert.Equal(t, "2020.09.02", string(dat))
260+
require.Equal(t, "2020.09.02", string(dat))
251261
}
252262

253263
func TestVersionParsing(t *testing.T) {
254-
assert.False(t, IsNewerVersion("2020.8.2", "2020.8.2"))
255-
assert.True(t, IsNewerVersion("2020.8.2", "2020.8.3"))
256-
assert.True(t, IsNewerVersion("2020.8.2", "2021.1.2"))
257-
assert.True(t, IsNewerVersion("2020.8.2", "2020.9.1"))
258-
assert.True(t, IsNewerVersion("2020.8.2", "2020.12.45"))
259-
assert.False(t, IsNewerVersion("2020.8.2", "2020.6.3"))
260-
assert.False(t, IsNewerVersion("DEV", "2020.8.5"))
261-
assert.False(t, IsNewerVersion("2020.8.2", "asdlkfjasdf"))
262-
assert.True(t, IsNewerVersion("3.0.1", "4.2.1"))
264+
require.False(t, IsNewerVersion("2020.8.2", "2020.8.2"))
265+
require.True(t, IsNewerVersion("2020.8.2", "2020.8.3"))
266+
require.True(t, IsNewerVersion("2020.8.2", "2021.1.2"))
267+
require.True(t, IsNewerVersion("2020.8.2", "2020.9.1"))
268+
require.True(t, IsNewerVersion("2020.8.2", "2020.12.45"))
269+
require.False(t, IsNewerVersion("2020.8.2", "2020.6.3"))
270+
require.False(t, IsNewerVersion("DEV", "2020.8.5"))
271+
require.False(t, IsNewerVersion("2020.8.2", "asdlkfjasdf"))
272+
require.True(t, IsNewerVersion("3.0.1", "4.2.1"))
263273
}

0 commit comments

Comments
 (0)