github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/internal/plugins/golang/mainfix/cmd_test.go (about) 1 package mainfix 2 3 import ( 4 "context" 5 "io/ioutil" 6 "os" 7 "path/filepath" 8 "testing" 9 10 "github.com/stretchr/testify/require" 11 ) 12 13 func Test_Cmd_Fix(t *testing.T) { 14 r := require.New(t) 15 16 dir, err := ioutil.TempDir("", "") 17 r.NoError(err) 18 19 f, err := os.Create(filepath.Join(dir, "main.go")) 20 r.NoError(err) 21 f.WriteString(`package main 22 func main() { 23 24 } 25 `) 26 r.NoError(f.Close()) 27 28 f, err = os.Create(filepath.Join(dir, "go.mod")) 29 r.NoError(err) 30 f.WriteString("module coke") 31 r.NoError(f.Close()) 32 33 ctx := context.Background() 34 var args []string 35 36 fixer := &Cmd{} 37 err = fixer.Fix(ctx, dir, args) 38 r.NoError(err) 39 40 mainFolder := filepath.Join(dir, "cmd", "coke") 41 42 _, err = os.Stat(mainFolder) 43 r.NoError(err) 44 45 fp := filepath.Join(mainFolder, "main.go") 46 b, err := ioutil.ReadFile(fp) 47 r.NoError(err) 48 r.Contains(string(b), `package `) 49 } 50 51 func Test_Cmd_NoMain(t *testing.T) { 52 r := require.New(t) 53 54 dir, err := ioutil.TempDir("", "") 55 r.NoError(err) 56 57 f, err := os.Create(filepath.Join(dir, "go.mod")) 58 r.NoError(err) 59 f.WriteString("module coke") 60 r.NoError(f.Close()) 61 62 fixer := &Cmd{} 63 r.NoError(fixer.Fix(context.Background(), dir, []string{})) 64 } 65 66 func Test_Cmd_Exists(t *testing.T) { 67 r := require.New(t) 68 69 dir, err := ioutil.TempDir("", "") 70 r.NoError(err) 71 72 f, err := os.Create(filepath.Join(dir, "go.mod")) 73 r.NoError(err) 74 f.WriteString("module coke") 75 r.NoError(f.Close()) 76 77 r.NoError(os.MkdirAll(filepath.Join(dir, "cmd", "coke"), 0755)) 78 f, err = os.Create(filepath.Join(dir, "cmd", "coke", "main.go")) 79 r.NoError(err) 80 f.WriteString(`package main 81 func main() { 82 83 } 84 `) 85 r.NoError(f.Close()) 86 87 fixer := &Cmd{} 88 r.NoError(fixer.Fix(context.Background(), dir, []string{})) 89 }