github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/command/deployment_status_test.go (about) 1 package command 2 3 import ( 4 "testing" 5 6 "github.com/hashicorp/nomad/ci" 7 "github.com/hashicorp/nomad/nomad/mock" 8 "github.com/mitchellh/cli" 9 "github.com/posener/complete" 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestDeploymentStatusCommand_Implements(t *testing.T) { 15 ci.Parallel(t) 16 var _ cli.Command = &DeploymentStatusCommand{} 17 } 18 19 func TestDeploymentStatusCommand_Fails(t *testing.T) { 20 ci.Parallel(t) 21 ui := cli.NewMockUi() 22 cmd := &DeploymentStatusCommand{Meta: Meta{Ui: ui}} 23 24 // Fails on misuse 25 code := cmd.Run([]string{"some", "bad", "args"}) 26 require.Equal(t, 1, code) 27 out := ui.ErrorWriter.String() 28 require.Contains(t, out, commandErrorText(cmd)) 29 ui.ErrorWriter.Reset() 30 31 code = cmd.Run([]string{"-address=nope", "12"}) 32 require.Equal(t, 1, code) 33 out = ui.ErrorWriter.String() 34 require.Contains(t, out, "Error retrieving deployment") 35 ui.ErrorWriter.Reset() 36 37 code = cmd.Run([]string{"-address=nope"}) 38 require.Equal(t, 1, code) 39 out = ui.ErrorWriter.String() 40 // "deployments" indicates that we attempted to list all deployments 41 require.Contains(t, out, "Error retrieving deployments") 42 ui.ErrorWriter.Reset() 43 44 // Fails if monitor passed with json or tmpl flags 45 for _, flag := range []string{"-json", "-t"} { 46 code = cmd.Run([]string{"-monitor", flag, "12"}) 47 require.Equal(t, 1, code) 48 out = ui.ErrorWriter.String() 49 require.Contains(t, out, "The monitor flag cannot be used with the '-json' or '-t' flags") 50 ui.ErrorWriter.Reset() 51 } 52 } 53 54 func TestDeploymentStatusCommand_AutocompleteArgs(t *testing.T) { 55 ci.Parallel(t) 56 assert := assert.New(t) 57 58 srv, _, url := testServer(t, true, nil) 59 defer srv.Shutdown() 60 61 ui := cli.NewMockUi() 62 cmd := &DeploymentStatusCommand{Meta: Meta{Ui: ui, flagAddress: url}} 63 64 // Create a fake deployment 65 state := srv.Agent.Server().State() 66 d := mock.Deployment() 67 assert.Nil(state.UpsertDeployment(1000, d)) 68 69 prefix := d.ID[:5] 70 args := complete.Args{Last: prefix} 71 predictor := cmd.AutocompleteArgs() 72 73 res := predictor.Predict(args) 74 assert.Equal(1, len(res)) 75 assert.Equal(d.ID, res[0]) 76 }