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  }