diff --git a/internal/plugin/discover_test.go b/internal/plugin/discover_test.go deleted file mode 100644 index 9208246a9..000000000 --- a/internal/plugin/discover_test.go +++ /dev/null @@ -1,128 +0,0 @@ -package plugin - -import ( - "os/exec" - "path/filepath" - "testing" - - "github.com/stretchr/testify/require" - - "github.com/hashicorp/vagrant/internal/config" -) - -func TestDiscover(t *testing.T) { - cases := []struct { - Name string - Paths []string - Plugin *config.Plugin - Err string - Result *exec.Cmd - }{ - { - "No paths", - nil, - &config.Plugin{Name: "foo"}, - "", - nil, - }, - - { - "Does not exist", - []string{ - filepath.Join("testdata", "pathA"), - filepath.Join("testdata", "pathB"), - }, - &config.Plugin{Name: "foo"}, - "", - nil, - }, - - { - "In one path", - []string{ - filepath.Join("testdata", "pathA"), - filepath.Join("testdata", "pathB"), - }, - &config.Plugin{Name: "b"}, - "", - &exec.Cmd{ - Path: filepath.Join("testdata", "pathB", "vagrant-plugin-b"), - Args: []string{filepath.Join("testdata", "pathB", "vagrant-plugin-b")}, - }, - }, - - { - "In two paths", - []string{ - filepath.Join("testdata", "pathA"), - filepath.Join("testdata", "pathB"), - }, - &config.Plugin{Name: "a"}, - "", - &exec.Cmd{ - Path: filepath.Join("testdata", "pathA", "vagrant-plugin-a"), - Args: []string{filepath.Join("testdata", "pathA", "vagrant-plugin-a")}, - }, - }, - - { - "Matching checksum", - []string{ - filepath.Join("testdata", "pathA"), - filepath.Join("testdata", "pathB"), - }, - &config.Plugin{ - Name: "b", - Checksum: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - }, - "", - &exec.Cmd{ - Path: filepath.Join("testdata", "pathB", "vagrant-plugin-b"), - Args: []string{filepath.Join("testdata", "pathB", "vagrant-plugin-b")}, - }, - }, - - { - "Checksum mismatch", - []string{ - filepath.Join("testdata", "pathA"), - filepath.Join("testdata", "pathB"), - }, - &config.Plugin{ - Name: "b", - Checksum: "f3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - }, - "checksum", - nil, - }, - } - - for _, tt := range cases { - t.Run(tt.Name, func(t *testing.T) { - require := require.New(t) - - result, err := Discover(tt.Plugin, tt.Paths) - if tt.Err != "" { - require.Error(err) - require.Contains(err.Error(), tt.Err) - return - } - require.NoError(err) - - if tt.Result == nil { - require.Nil(result) - return - } - - // Things to compare - result = &exec.Cmd{ - Path: result.Path, - Args: result.Args, - Env: result.Env, - Dir: result.Dir, - } - - require.Equal(tt.Result, result) - }) - } -}