@@ -28,11 +28,13 @@ const (
28
28
fakeOldVersion = "1.22.4-rc.5+678-gabcdef-12345678"
29
29
fakeReleaseURLLinux = "https://github.com/cdr/coder-cli/releases/download/v1.23.4-rc.5/coder-cli-linux-amd64.tar.gz"
30
30
fakeReleaseURLWindows = "https://github.com/cdr/coder-cli/releases/download/v1.23.4-rc.5/coder-cli-windows-amd64.zip"
31
+ goosWindows = "windows"
32
+ goosLinux = "linux"
31
33
)
32
34
33
35
var (
34
36
apiPrivateVersionURL = fakeCoderURL + "/api/private/version"
35
- fakeNewVersionJson = fmt .Sprintf (`{"version":%q}` , fakeNewVersion )
37
+ fakeNewVersionJSON = fmt .Sprintf (`{"version":%q}` , fakeNewVersion )
36
38
)
37
39
38
40
func Test_updater_run (t * testing.T ) {
@@ -45,7 +47,7 @@ func Test_updater_run(t *testing.T) {
45
47
Execer * fakeExecer
46
48
ExecutablePath string
47
49
Fakefs afero.Fs
48
- HttpClient * fakeGetter
50
+ HTTPClient * fakeGetter
49
51
OsF func () string
50
52
VersionF func () string
51
53
}
@@ -57,7 +59,7 @@ func Test_updater_run(t *testing.T) {
57
59
execF : p .Execer .ExecF ,
58
60
executablePath : p .ExecutablePath ,
59
61
fs : p .Fakefs ,
60
- httpClient : p .HttpClient ,
62
+ httpClient : p .HTTPClient ,
61
63
osF : p .OsF ,
62
64
versionF : p .VersionF ,
63
65
}
@@ -80,9 +82,9 @@ func Test_updater_run(t *testing.T) {
80
82
Ctx : ctx ,
81
83
ExecutablePath : fakeExePathLinux ,
82
84
Fakefs : fakefs ,
83
- HttpClient : newFakeGetter (t ),
85
+ HTTPClient : newFakeGetter (t ),
84
86
// Default to GOOS=linux
85
- OsF : func () string { return "linux" },
87
+ OsF : func () string { return goosLinux },
86
88
// This must be overridden inside run()
87
89
VersionF : func () string {
88
90
t .Errorf ("unhandled VersionF" )
@@ -96,7 +98,7 @@ func Test_updater_run(t *testing.T) {
96
98
97
99
run (t , "update coder - noop" , func (t * testing.T , p * params ) {
98
100
fakeFile (t , p .Fakefs , fakeExePathLinux , 0755 , fakeNewVersion )
99
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
101
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
100
102
p .VersionF = func () string { return fakeNewVersion }
101
103
u := fromParams (p )
102
104
assertFileContent (t , p .Fakefs , fakeExePathLinux , fakeNewVersion )
@@ -107,8 +109,8 @@ func Test_updater_run(t *testing.T) {
107
109
108
110
run (t , "update coder - old to new" , func (t * testing.T , p * params ) {
109
111
fakeFile (t , p .Fakefs , fakeExePathLinux , 0755 , fakeOldVersion )
110
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
111
- p .HttpClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse (fakeValidTgzBytes , 200 , variadicS (), nil )
112
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
113
+ p .HTTPClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse (fakeValidTgzBytes , 200 , variadicS (), nil )
112
114
p .VersionF = func () string { return fakeOldVersion }
113
115
p .ConfirmF = fakeConfirmYes
114
116
u := fromParams (p )
@@ -121,8 +123,8 @@ func Test_updater_run(t *testing.T) {
121
123
run (t , "update coder - old to new - binary renamed" , func (t * testing.T , p * params ) {
122
124
p .ExecutablePath = "/home/user/bin/coder-cli"
123
125
fakeFile (t , p .Fakefs , p .ExecutablePath , 0755 , fakeOldVersion )
124
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
125
- p .HttpClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse (fakeValidTgzBytes , 200 , variadicS (), nil )
126
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
127
+ p .HTTPClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse (fakeValidTgzBytes , 200 , variadicS (), nil )
126
128
p .VersionF = func () string { return fakeOldVersion }
127
129
p .ConfirmF = fakeConfirmYes
128
130
u := fromParams (p )
@@ -133,11 +135,11 @@ func Test_updater_run(t *testing.T) {
133
135
})
134
136
135
137
run (t , "update coder - old to new - windows" , func (t * testing.T , p * params ) {
136
- p .OsF = func () string { return "windows" }
138
+ p .OsF = func () string { return goosWindows }
137
139
p .ExecutablePath = fakeExePathWindows
138
140
fakeFile (t , p .Fakefs , fakeExePathWindows , 0755 , fakeOldVersion )
139
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
140
- p .HttpClient .M [fakeReleaseURLWindows ] = newFakeGetterResponse (fakeValidZipBytes , 200 , variadicS (), nil )
141
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
142
+ p .HTTPClient .M [fakeReleaseURLWindows ] = newFakeGetterResponse (fakeValidZipBytes , 200 , variadicS (), nil )
141
143
p .VersionF = func () string { return fakeOldVersion }
142
144
p .ConfirmF = fakeConfirmYes
143
145
u := fromParams (p )
@@ -149,8 +151,8 @@ func Test_updater_run(t *testing.T) {
149
151
150
152
run (t , "update coder - old to new forced" , func (t * testing.T , p * params ) {
151
153
fakeFile (t , p .Fakefs , fakeExePathLinux , 0755 , fakeOldVersion )
152
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
153
- p .HttpClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse (fakeValidTgzBytes , 200 , variadicS (), nil )
154
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
155
+ p .HTTPClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse (fakeValidTgzBytes , 200 , variadicS (), nil )
154
156
p .VersionF = func () string { return fakeOldVersion }
155
157
u := fromParams (p )
156
158
assertFileContent (t , p .Fakefs , fakeExePathLinux , fakeOldVersion )
@@ -161,7 +163,7 @@ func Test_updater_run(t *testing.T) {
161
163
162
164
run (t , "update coder - user cancelled" , func (t * testing.T , p * params ) {
163
165
fakeFile (t , p .Fakefs , fakeExePathLinux , 0755 , fakeOldVersion )
164
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
166
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
165
167
p .VersionF = func () string { return fakeOldVersion }
166
168
p .ConfirmF = fakeConfirmNo
167
169
u := fromParams (p )
@@ -198,7 +200,7 @@ func Test_updater_run(t *testing.T) {
198
200
199
201
run (t , "update coder - fetch api version failure" , func (t * testing.T , p * params ) {
200
202
fakeFile (t , p .Fakefs , fakeExePathLinux , 0755 , fakeOldVersion )
201
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte {}, 401 , variadicS (), net .ErrClosed )
203
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte {}, 401 , variadicS (), net .ErrClosed )
202
204
p .VersionF = func () string { return fakeOldVersion }
203
205
u := fromParams (p )
204
206
assertFileContent (t , p .Fakefs , fakeExePathLinux , fakeOldVersion )
@@ -209,8 +211,8 @@ func Test_updater_run(t *testing.T) {
209
211
210
212
run (t , "update coder - failed to fetch URL" , func (t * testing.T , p * params ) {
211
213
fakeFile (t , p .Fakefs , fakeExePathLinux , 0755 , fakeOldVersion )
212
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
213
- p .HttpClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse ([]byte {}, 0 , variadicS (), net .ErrClosed )
214
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
215
+ p .HTTPClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse ([]byte {}, 0 , variadicS (), net .ErrClosed )
214
216
p .VersionF = func () string { return fakeOldVersion }
215
217
p .ConfirmF = fakeConfirmYes
216
218
u := fromParams (p )
@@ -222,8 +224,8 @@ func Test_updater_run(t *testing.T) {
222
224
223
225
run (t , "update coder - release URL 404" , func (t * testing.T , p * params ) {
224
226
fakeFile (t , p .Fakefs , fakeExePathLinux , 0755 , fakeOldVersion )
225
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
226
- p .HttpClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse ([]byte {}, 404 , variadicS (), nil )
227
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
228
+ p .HTTPClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse ([]byte {}, 404 , variadicS (), nil )
227
229
p .VersionF = func () string { return fakeOldVersion }
228
230
p .ConfirmF = fakeConfirmYes
229
231
u := fromParams (p )
@@ -235,8 +237,8 @@ func Test_updater_run(t *testing.T) {
235
237
236
238
run (t , "update coder - invalid tgz archive" , func (t * testing.T , p * params ) {
237
239
fakeFile (t , p .Fakefs , fakeExePathLinux , 0755 , fakeOldVersion )
238
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
239
- p .HttpClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse ([]byte {}, 200 , variadicS (), nil )
240
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
241
+ p .HTTPClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse ([]byte {}, 200 , variadicS (), nil )
240
242
p .VersionF = func () string { return fakeOldVersion }
241
243
p .ConfirmF = fakeConfirmYes
242
244
u := fromParams (p )
@@ -247,11 +249,11 @@ func Test_updater_run(t *testing.T) {
247
249
})
248
250
249
251
run (t , "update coder - invalid zip archive" , func (t * testing.T , p * params ) {
250
- p .OsF = func () string { return "windows" }
252
+ p .OsF = func () string { return goosWindows }
251
253
p .ExecutablePath = fakeExePathWindows
252
254
fakeFile (t , p .Fakefs , fakeExePathWindows , 0755 , fakeOldVersion )
253
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
254
- p .HttpClient .M [fakeReleaseURLWindows ] = newFakeGetterResponse ([]byte {}, 200 , variadicS (), nil )
255
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
256
+ p .HTTPClient .M [fakeReleaseURLWindows ] = newFakeGetterResponse ([]byte {}, 200 , variadicS (), nil )
255
257
p .VersionF = func () string { return fakeOldVersion }
256
258
p .ConfirmF = fakeConfirmYes
257
259
u := fromParams (p )
@@ -265,8 +267,8 @@ func Test_updater_run(t *testing.T) {
265
267
rwfs := p .Fakefs
266
268
p .Fakefs = afero .NewReadOnlyFs (rwfs )
267
269
fakeFile (t , rwfs , fakeExePathLinux , 0755 , fakeOldVersion )
268
- p .HttpClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJson ), 200 , variadicS (), nil )
269
- p .HttpClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse (fakeValidTgzBytes , 200 , variadicS (), nil )
270
+ p .HTTPClient .M [apiPrivateVersionURL ] = newFakeGetterResponse ([]byte (fakeNewVersionJSON ), 200 , variadicS (), nil )
271
+ p .HTTPClient .M [fakeReleaseURLLinux ] = newFakeGetterResponse (fakeValidTgzBytes , 200 , variadicS (), nil )
270
272
p .VersionF = func () string { return fakeOldVersion }
271
273
p .ConfirmF = fakeConfirmYes
272
274
u := fromParams (p )
@@ -276,7 +278,7 @@ func Test_updater_run(t *testing.T) {
276
278
assertFileContent (t , p .Fakefs , fakeExePathLinux , fakeOldVersion )
277
279
})
278
280
279
- if runtime .GOOS == "windows" {
281
+ if runtime .GOOS == goosWindows {
280
282
run (t , "update coder - path blocklist - windows" , func (t * testing.T , p * params ) {
281
283
p .ExecutablePath = `C:\Windows\system32\coder.exe`
282
284
u := fromParams (p )
@@ -314,7 +316,7 @@ func Test_updater_run(t *testing.T) {
314
316
}
315
317
}
316
318
317
- // fakeGetter mocks HTTP requests
319
+ // fakeGetter mocks HTTP requests.
318
320
type fakeGetter struct {
319
321
M map [string ]* fakeGetterResponse
320
322
T * testing.T
@@ -344,7 +346,7 @@ type fakeGetterResponse struct {
344
346
Err error
345
347
}
346
348
347
- // newFakeGetterResponse is a convenience function for mocking HTTP requests
349
+ // newFakeGetterResponse is a convenience function for mocking HTTP requests.
348
350
func newFakeGetterResponse (body []byte , code int , headers []string , err error ) * fakeGetterResponse {
349
351
resp := & http.Response {}
350
352
resp .Body = ioutil .NopCloser (bytes .NewReader (body ))
@@ -376,7 +378,6 @@ func fakeConfirmNo(_ string) (string, error) {
376
378
return "" , promptui .ErrAbort
377
379
}
378
380
379
- //nolint:unparam
380
381
func fakeFile (t * testing.T , fs afero.Fs , name string , perm fs.FileMode , content string ) {
381
382
t .Helper ()
382
383
err := fs .MkdirAll (filepath .Dir (name ), 0750 )
@@ -395,7 +396,6 @@ func fakeFile(t *testing.T, fs afero.Fs, name string, perm fs.FileMode, content
395
396
}
396
397
}
397
398
398
- //nolint:unparam
399
399
func assertFileContent (t * testing.T , fs afero.Fs , name string , content string ) {
400
400
t .Helper ()
401
401
f , err := fs .OpenFile (name , os .O_RDONLY , 0 )
0 commit comments