From 3e034f4386514717aabf980b608e7d5479001d9d Mon Sep 17 00:00:00 2001 From: Colin Adler Date: Thu, 15 Feb 2024 21:08:10 +0000 Subject: [PATCH] fix(cli): avoid panic when external auth name isn't provided --- cli/externalauth.go | 3 +++ cli/externalauth_test.go | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/cli/externalauth.go b/cli/externalauth.go index 7230db894ac4e..675d795491346 100644 --- a/cli/externalauth.go +++ b/cli/externalauth.go @@ -52,6 +52,9 @@ fi Command: "coder external-auth access-token slack --extra \"authed_user.id\"", }, ), + Middleware: clibase.Chain( + clibase.RequireNArgs(1), + ), Options: clibase.OptionSet{{ Name: "Extra", Flag: "extra", diff --git a/cli/externalauth_test.go b/cli/externalauth_test.go index 63b058c3fd764..3a4aa0721e3a4 100644 --- a/cli/externalauth_test.go +++ b/cli/externalauth_test.go @@ -46,6 +46,19 @@ func TestExternalAuth(t *testing.T) { clitest.Start(t, inv) pty.ExpectMatch("bananas") }) + t.Run("NoArgs", func(t *testing.T) { + t.Parallel() + srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + httpapi.Write(context.Background(), w, http.StatusOK, agentsdk.ExternalAuthResponse{ + AccessToken: "bananas", + }) + })) + t.Cleanup(srv.Close) + url := srv.URL + inv, _ := clitest.New(t, "--agent-url", url, "external-auth", "access-token") + watier := clitest.StartWithWaiter(t, inv) + watier.RequireContains("wanted 1 args but got 0") + }) t.Run("SuccessWithExtra", func(t *testing.T) { t.Parallel() srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {