diff --git a/command/token_revoke_test.go b/command/token_revoke_test.go index 02e14e69b2..be757379fe 100644 --- a/command/token_revoke_test.go +++ b/command/token_revoke_test.go @@ -8,6 +8,61 @@ import ( "github.com/mitchellh/cli" ) +func TestTokenRevokeAccessor(t *testing.T) { + core, _, token := vault.TestCoreUnsealed(t) + ln, addr := http.TestServer(t, core) + defer ln.Close() + + ui := new(cli.MockUi) + c := &TokenRevokeCommand{ + Meta: Meta{ + ClientToken: token, + Ui: ui, + }, + } + + args := []string{ + "-address", addr, + } + + // Run it once for client + c.Run(args) + + // Create a token + client, err := c.Client() + if err != nil { + t.Fatalf("err: %s", err) + } + resp, err := client.Auth().Token().Create(nil) + if err != nil { + t.Fatalf("err: %s", err) + } + + // Treat the argument as accessor + args = append(args, "-accessor") + if code := c.Run(args); code == 0 { + t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) + } + + // Verify it worked with proper accessor + args1 := append(args, resp.Auth.Accessor) + if code := c.Run(args1); code != 0 { + t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) + } + + // Fail if mode is set to 'orphan' when accessor is set + args2 := append(args, "-mode=\"orphan\"") + if code := c.Run(args2); code == 0 { + t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) + } + + // Fail if mode is set to 'path' when accessor is set + args3 := append(args, "-mode=\"path\"") + if code := c.Run(args3); code == 0 { + t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) + } +} + func TestTokenRevoke(t *testing.T) { core, _, token := vault.TestCoreUnsealed(t) ln, addr := http.TestServer(t, core)