github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/plugins/plugdeps/plugdeps_test.go (about) 1 package plugdeps 2 3 import ( 4 "errors" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/gobuffalo/meta" 10 "github.com/stretchr/testify/require" 11 ) 12 13 var pop = Plugin{ 14 Binary: "buffalo-pop", 15 GoGet: "github.com/gobuffalo/buffalo-pop/v3@latest", 16 } 17 18 var heroku = Plugin{ 19 Binary: "buffalo-heroku", 20 GoGet: "github.com/gobuffalo/buffalo-heroku@latest", 21 Commands: []Command{ 22 {Name: "deploy", Flags: []string{"-v"}}, 23 }, 24 Tags: []string{"foo", "bar"}, 25 } 26 27 var local = Plugin{ 28 Binary: "buffalo-hello.rb", 29 Local: "./plugins/buffalo-hello.rb", 30 } 31 32 func Test_ConfigPath(t *testing.T) { 33 r := require.New(t) 34 35 x := ConfigPath(meta.App{Root: "foo"}) 36 r.Equal(x, filepath.Join("foo", "config", "buffalo-plugins.toml")) 37 } 38 39 func Test_List_Off(t *testing.T) { 40 r := require.New(t) 41 42 app := meta.App{} 43 plugs, err := List(app) 44 r.Error(err) 45 r.True(errors.Is(err, ErrMissingConfig)) 46 r.Len(plugs.List(), 0) 47 } 48 49 func Test_List_On(t *testing.T) { 50 r := require.New(t) 51 52 app := meta.New(os.TempDir()) 53 54 p := ConfigPath(app) 55 r.NoError(os.MkdirAll(filepath.Dir(p), 0o755)) 56 f, err := os.Create(p) 57 r.NoError(err) 58 _, err = f.WriteString(eToml) 59 r.NoError(err) 60 r.NoError(f.Close()) 61 62 plugs, err := List(app) 63 r.NoError(err) 64 r.Len(plugs.List(), 3) 65 } 66 67 const eToml = `[[plugin]] 68 binary = "buffalo-hello.rb" 69 local = "./plugins/buffalo-hello.rb" 70 71 [[plugin]] 72 binary = "buffalo-heroku" 73 go_get = "github.com/gobuffalo/buffalo-heroku@latest" 74 tags = ["foo", "bar"] 75 76 [[plugin.command]] 77 name = "deploy" 78 flags = ["-v"] 79 80 [[plugin]] 81 binary = "buffalo-pop" 82 go_get = "github.com/gobuffalo/buffalo-pop/v3@latest" 83 `