github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/command/plugin_status_test.go (about) 1 package command 2 3 import ( 4 "testing" 5 6 "github.com/hashicorp/go-memdb" 7 "github.com/hashicorp/nomad/nomad/state" 8 "github.com/mitchellh/cli" 9 "github.com/posener/complete" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestPluginStatusCommand_Implements(t *testing.T) { 14 t.Parallel() 15 var _ cli.Command = &PluginStatusCommand{} 16 } 17 18 func TestPluginStatusCommand_Fails(t *testing.T) { 19 t.Parallel() 20 ui := cli.NewMockUi() 21 cmd := &PluginStatusCommand{Meta: Meta{Ui: ui}} 22 23 // Fails on misuse 24 code := cmd.Run([]string{"some", "bad", "args"}) 25 require.Equal(t, 1, code) 26 27 out := ui.ErrorWriter.String() 28 require.Contains(t, out, commandErrorText(cmd)) 29 ui.ErrorWriter.Reset() 30 } 31 32 func TestPluginStatusCommand_AutocompleteArgs(t *testing.T) { 33 t.Parallel() 34 35 srv, _, url := testServer(t, true, nil) 36 defer srv.Shutdown() 37 38 ui := cli.NewMockUi() 39 cmd := &PluginStatusCommand{Meta: Meta{Ui: ui, flagAddress: url}} 40 41 // Create a plugin 42 id := "long-plugin-id" 43 s := srv.Agent.Server().State() 44 cleanup := state.CreateTestCSIPlugin(s, id) 45 defer cleanup() 46 ws := memdb.NewWatchSet() 47 plug, err := s.CSIPluginByID(ws, id) 48 require.NoError(t, err) 49 50 prefix := plug.ID[:len(plug.ID)-5] 51 args := complete.Args{Last: prefix} 52 predictor := cmd.AutocompleteArgs() 53 54 res := predictor.Predict(args) 55 require.Equal(t, 1, len(res)) 56 require.Equal(t, plug.ID, res[0]) 57 }