github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/genny/fix/imports_test.go (about)

     1  package fix
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  	"strconv"
     7  	"strings"
     8  	"testing"
     9  
    10  	"github.com/gobuffalo/genny/v2/gentest"
    11  	"github.com/gobuffalo/meta"
    12  	"github.com/gobuffalo/packd"
    13  	"github.com/stretchr/testify/require"
    14  )
    15  
    16  func Test_Imports(t *testing.T) {
    17  	r := require.New(t)
    18  
    19  	tt := []struct {
    20  		Name string
    21  	}{
    22  		{"buffalo0_11"},
    23  		{"buffaloPre0_18api"},
    24  		{"buffaloPre0_18web"},
    25  	}
    26  
    27  	for _, tc := range tt {
    28  		t.Run(tc.Name, func(t *testing.T) {
    29  			run := gentest.NewRunner()
    30  
    31  			err := run.Disk.AddFS(os.DirFS(filepath.Join("_fixtures", tc.Name)))
    32  			r.NoError(err)
    33  
    34  			opts := &Options{
    35  				App: meta.Named("coke", "."),
    36  			}
    37  			g := RewriteImports(opts)
    38  			run.WithRun(g)
    39  
    40  			r.NoError(run.Run())
    41  			results := run.Results()
    42  
    43  			for _, f := range results.Files {
    44  				if filepath.Ext(f.Name()) != ".go" {
    45  					continue
    46  				}
    47  
    48  				if f.Name() == "vendor/models_test.go" {
    49  					r.Contains(f.String(), strconv.Quote("github.com/gobuffalo/suite"), "files in vendor directory should not be changed")
    50  					continue
    51  				}
    52  
    53  				for k := range replace {
    54  					r.NotContainsf(f.String(), strconv.Quote(k), "%s should not have %s", f.Name(), k)
    55  				}
    56  			}
    57  		})
    58  	}
    59  }
    60  
    61  func TestRewriteFile_Simple(t *testing.T) {
    62  	r := require.New(t)
    63  	r.Nil(nil)
    64  
    65  	data := `package main
    66  
    67  import "github.com/markbates/grift"
    68  `
    69  	file, err := packd.NewFile("test.go", strings.NewReader(data))
    70  	r.NoError(err)
    71  	r.NotNil(file)
    72  
    73  	err = rewriteImports(file)
    74  	r.NoError(err)
    75  	r.Equal(`package main
    76  
    77  import "github.com/gobuffalo/grift"
    78  `, file.String())
    79  }
    80  
    81  func TestRewriteFile_Named(t *testing.T) {
    82  	r := require.New(t)
    83  	r.Nil(nil)
    84  
    85  	data := `package main
    86  
    87  import gr "github.com/markbates/grift"
    88  `
    89  	file, err := packd.NewFile("test.go", strings.NewReader(data))
    90  	r.NoError(err)
    91  	r.NotNil(file)
    92  
    93  	err = rewriteImports(file)
    94  	r.NoError(err)
    95  	r.Equal(`package main
    96  
    97  import gr "github.com/gobuffalo/grift"
    98  `, file.String())
    99  }
   100  
   101  func TestRewriteFile_DotAlso(t *testing.T) {
   102  	r := require.New(t)
   103  	r.Nil(nil)
   104  
   105  	data := `package main
   106  
   107  import . "github.com/markbates/grift"
   108  `
   109  	file, err := packd.NewFile("test.go", strings.NewReader(data))
   110  	r.NoError(err)
   111  	r.NotNil(file)
   112  
   113  	err = rewriteImports(file)
   114  	r.NoError(err)
   115  	r.Equal(`package main
   116  
   117  import . "github.com/gobuffalo/grift"
   118  `, file.String())
   119  }