github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/command/acl_token_delete_test.go (about) 1 package command 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/nomad/acl" 8 "github.com/hashicorp/nomad/ci" 9 "github.com/hashicorp/nomad/command/agent" 10 "github.com/hashicorp/nomad/nomad/mock" 11 "github.com/hashicorp/nomad/nomad/structs" 12 "github.com/mitchellh/cli" 13 "github.com/shoenig/test/must" 14 ) 15 16 func TestACLTokenDeleteCommand_ViaEnvVariable(t *testing.T) { 17 ci.Parallel(t) 18 19 config := func(c *agent.Config) { 20 c.ACL.Enabled = true 21 } 22 23 srv, _, url := testServer(t, true, config) 24 defer stopTestAgent(srv) 25 26 // Bootstrap an initial ACL token 27 token := srv.RootToken 28 must.NotNil(t, token) 29 30 ui := cli.NewMockUi() 31 cmd := &ACLTokenDeleteCommand{Meta: Meta{Ui: ui, flagAddress: url}} 32 state := srv.Agent.Server().State() 33 34 // Create a valid token 35 mockToken := mock.ACLToken() 36 mockToken.Policies = []string{acl.PolicyWrite} 37 mockToken.SetHash() 38 must.NoError(t, state.UpsertACLTokens(structs.MsgTypeTestSetup, 1000, []*structs.ACLToken{mockToken})) 39 40 // Attempt to delete a token without providing a valid token with delete 41 // permissions 42 code := cmd.Run([]string{"-address=" + url, "-token=foo", mockToken.AccessorID}) 43 must.One(t, code) 44 45 // Delete a token using a valid management token set via an environment 46 // variable 47 code = cmd.Run([]string{"-address=" + url, "-token=" + token.SecretID, mockToken.AccessorID}) 48 must.Zero(t, code) 49 50 // Check the output 51 out := ui.OutputWriter.String() 52 must.StrContains(t, out, fmt.Sprintf("Token %s successfully deleted", mockToken.AccessorID)) 53 }