@@ -16,13 +16,11 @@ package config
1616
1717import (
1818 "errors"
19- "fmt"
2019 "os"
2120 "os/user"
2221 "path/filepath"
2322 "strings"
2423 "testing"
25- "time"
2624
2725 "github.com/google/go-cmp/cmp"
2826)
@@ -253,23 +251,17 @@ func TestIsValid(t *testing.T) {
253251}
254252
255253func TestCreateWorkRoot (t * testing.T ) {
256- timestamp := time .Now ()
257254 localTempDir := t .TempDir ()
258- now = func () time.Time {
259- return timestamp
260- }
261255 tempDir = func () string {
262256 return localTempDir
263257 }
264- defer func () {
265- now = time .Now
258+ t .Cleanup (func () {
266259 tempDir = os .TempDir
267- }( )
260+ })
268261 for _ , test := range []struct {
269262 name string
270263 config * Config
271264 setup func (t * testing.T ) (string , func ())
272- errMsg string
273265 }{
274266 {
275267 name : "configured root" ,
@@ -294,53 +286,44 @@ func TestCreateWorkRoot(t *testing.T) {
294286 name : "without override, new dir" ,
295287 config : & Config {},
296288 setup : func (t * testing.T ) (string , func ()) {
297- expectedPath := filepath .Join (localTempDir , fmt . Sprintf ( "librarian-%s" , formatTimestamp ( timestamp )) )
289+ expectedPath := filepath .Join (localTempDir , "librarian-" )
298290 return expectedPath , func () {
299291 if err := os .RemoveAll (expectedPath ); err != nil {
300292 t .Errorf ("os.RemoveAll(%q) = %v; want nil" , expectedPath , err )
301293 }
302294 }
303295 },
304296 },
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- },
321297 } {
322298 t .Run (test .name , func (t * testing.T ) {
323299 want , cleanup := test .setup (t )
324300 defer cleanup ()
325301
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 {
333303 t .Errorf ("createWorkRoot() got unexpected error: %v" , err )
334304 return
335305 }
336306
337- if test .config .WorkRoot != want {
307+ if ! strings . HasPrefix ( test .config .WorkRoot , want ) {
338308 t .Errorf ("createWorkRoot() = %v, want %v" , test .config .WorkRoot , want )
339309 }
340310 })
341311 }
342312}
343313
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+
344327func TestDeriveRepo (t * testing.T ) {
345328 for _ , test := range []struct {
346329 name string
@@ -417,12 +400,7 @@ func TestSetDefaults(t *testing.T) {
417400 }, nil
418401 }
419402
420- timestamp := time .Now ()
421- now = func () time.Time {
422- return timestamp
423- }
424403 t .Cleanup (func () {
425- now = time .Now
426404 currentUser = user .Current
427405 })
428406 for _ , test := range []struct {
0 commit comments