@@ -16,13 +16,11 @@ package config
16
16
17
17
import (
18
18
"errors"
19
- "fmt"
20
19
"os"
21
20
"os/user"
22
21
"path/filepath"
23
22
"strings"
24
23
"testing"
25
- "time"
26
24
27
25
"github.com/google/go-cmp/cmp"
28
26
)
@@ -253,23 +251,17 @@ func TestIsValid(t *testing.T) {
253
251
}
254
252
255
253
func TestCreateWorkRoot (t * testing.T ) {
256
- timestamp := time .Now ()
257
254
localTempDir := t .TempDir ()
258
- now = func () time.Time {
259
- return timestamp
260
- }
261
255
tempDir = func () string {
262
256
return localTempDir
263
257
}
264
- defer func () {
265
- now = time .Now
258
+ t .Cleanup (func () {
266
259
tempDir = os .TempDir
267
- }( )
260
+ })
268
261
for _ , test := range []struct {
269
262
name string
270
263
config * Config
271
264
setup func (t * testing.T ) (string , func ())
272
- errMsg string
273
265
}{
274
266
{
275
267
name : "configured root" ,
@@ -294,53 +286,44 @@ func TestCreateWorkRoot(t *testing.T) {
294
286
name : "without override, new dir" ,
295
287
config : & Config {},
296
288
setup : func (t * testing.T ) (string , func ()) {
297
- expectedPath := filepath .Join (localTempDir , fmt . Sprintf ( "librarian-%s" , formatTimestamp ( timestamp )) )
289
+ expectedPath := filepath .Join (localTempDir , "librarian-" )
298
290
return expectedPath , func () {
299
291
if err := os .RemoveAll (expectedPath ); err != nil {
300
292
t .Errorf ("os.RemoveAll(%q) = %v; want nil" , expectedPath , err )
301
293
}
302
294
}
303
295
},
304
296
},
305
- {
306
- name : "without override, dir exists" ,
307
- config : & Config {},
308
- setup : func (t * testing.T ) (string , func ()) {
309
- expectedPath := filepath .Join (localTempDir , fmt .Sprintf ("librarian-%s" , formatTimestamp (timestamp )))
310
- if err := os .Mkdir (expectedPath , 0755 ); err != nil {
311
- t .Fatalf ("failed to create test dir: %v" , err )
312
- }
313
- return expectedPath , func () {
314
- if err := os .RemoveAll (expectedPath ); err != nil {
315
- t .Errorf ("os.RemoveAll(%q) = %v; want nil" , expectedPath , err )
316
- }
317
- }
318
- },
319
- errMsg : "working directory already exists" ,
320
- },
321
297
} {
322
298
t .Run (test .name , func (t * testing.T ) {
323
299
want , cleanup := test .setup (t )
324
300
defer cleanup ()
325
301
326
- err := test .config .createWorkRoot ()
327
- if test .errMsg != "" {
328
- if ! strings .Contains (err .Error (), test .errMsg ) {
329
- t .Errorf ("createWorkRoot() = %q, want contains %q" , err , test .errMsg )
330
- }
331
- return
332
- } else if err != nil {
302
+ if err := test .config .createWorkRoot (); err != nil {
333
303
t .Errorf ("createWorkRoot() got unexpected error: %v" , err )
334
304
return
335
305
}
336
306
337
- if test .config .WorkRoot != want {
307
+ if ! strings . HasPrefix ( test .config .WorkRoot , want ) {
338
308
t .Errorf ("createWorkRoot() = %v, want %v" , test .config .WorkRoot , want )
339
309
}
340
310
})
341
311
}
342
312
}
343
313
314
+ func TestCreateWorkRootError (t * testing.T ) {
315
+ tempDir = func () string {
316
+ return filepath .Join ("--invalid--" , "--not-a-directory--" )
317
+ }
318
+ t .Cleanup (func () {
319
+ tempDir = os .TempDir
320
+ })
321
+ config := & Config {}
322
+ if err := config .createWorkRoot (); err == nil {
323
+ t .Errorf ("createWorkRoot() expected an error got: %v" , config .WorkRoot )
324
+ }
325
+ }
326
+
344
327
func TestDeriveRepo (t * testing.T ) {
345
328
for _ , test := range []struct {
346
329
name string
@@ -417,12 +400,7 @@ func TestSetDefaults(t *testing.T) {
417
400
}, nil
418
401
}
419
402
420
- timestamp := time .Now ()
421
- now = func () time.Time {
422
- return timestamp
423
- }
424
403
t .Cleanup (func () {
425
- now = time .Now
426
404
currentUser = user .Current
427
405
})
428
406
for _ , test := range []struct {
0 commit comments