github.com/adevinta/lava@v0.7.2/cmd/lava/internal/initialize/initialize_test.go (about) 1 // Copyright 2023 Adevinta 2 3 package initialize 4 5 import ( 6 "errors" 7 "io/fs" 8 "os" 9 "path/filepath" 10 "slices" 11 "testing" 12 ) 13 14 func TestRunInit(t *testing.T) { 15 oldInitC := initC 16 defer func() { initC = oldInitC }() 17 18 tmpPath, err := os.MkdirTemp("", "") 19 if err != nil { 20 t.Fatalf("error creating temp dir: %v", err) 21 } 22 defer os.RemoveAll(tmpPath) 23 24 initC = filepath.Join(tmpPath, "lava.yaml") 25 26 if err := runInit(nil); err != nil { 27 t.Fatalf("run error: %v", err) 28 } 29 30 data, err := os.ReadFile(initC) 31 if err != nil { 32 t.Fatalf("error reading file: %v", err) 33 } 34 35 if slices.Compare(data, defaultConfig) != 0 { 36 t.Errorf("unexpected data:\ngot:\n%s\nwant:\n%s", data, defaultConfig) 37 } 38 } 39 40 func TestRunInit_force(t *testing.T) { 41 oldInitC := initC 42 oldInitF := initF 43 defer func() { 44 initC = oldInitC 45 initF = oldInitF 46 }() 47 48 tmpPath, err := os.MkdirTemp("", "") 49 if err != nil { 50 t.Fatalf("error creating temp dir: %v", err) 51 } 52 defer os.RemoveAll(tmpPath) 53 54 initC = filepath.Join(tmpPath, "lava.yaml") 55 56 if err := os.WriteFile(initC, []byte("test"), 0644); err != nil { 57 t.Fatalf("error writing file: %v", err) 58 } 59 60 initF = true 61 if err := runInit(nil); err != nil { 62 t.Fatalf("unexpected error: %v", err) 63 } 64 65 data, err := os.ReadFile(initC) 66 if err != nil { 67 t.Fatalf("error reading file: %v", err) 68 } 69 70 if slices.Compare(data, defaultConfig) != 0 { 71 t.Errorf("unexpected data:\ngot:\n%s\nwant:\n%s", data, defaultConfig) 72 } 73 } 74 75 func TestRunInit_file_exists(t *testing.T) { 76 oldInitC := initC 77 defer func() { initC = oldInitC }() 78 79 tmpPath, err := os.MkdirTemp("", "") 80 if err != nil { 81 t.Fatalf("error creating temp dir: %v", err) 82 } 83 defer os.RemoveAll(tmpPath) 84 85 initC = filepath.Join(tmpPath, "lava.yaml") 86 87 if err := os.WriteFile(initC, []byte("test"), 0644); err != nil { 88 t.Fatalf("error writing file: %v", err) 89 } 90 91 if err := runInit(nil); !errors.Is(err, fs.ErrExist) { 92 t.Errorf("unexpected error: %v", err) 93 } 94 }