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 }