| 156 | } |
| 157 | |
| 158 | func TestExternalAuthRequestQuery(t *testing.T) { |
| 159 | t.Parallel() |
| 160 | |
| 161 | t.Run("IncludesGitRefFieldsAndOmitsWorkdir", func(t *testing.T) { |
| 162 | t.Parallel() |
| 163 | |
| 164 | srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 165 | require.Equal(t, "/api/v2/workspaceagents/me/external-auth", r.URL.Path) |
| 166 | require.Equal(t, "true", r.URL.Query().Get("listen")) |
| 167 | require.Equal(t, "main", r.URL.Query().Get("git_branch")) |
| 168 | require.Equal(t, "https://github.com/coder/coder.git", r.URL.Query().Get("git_remote_origin")) |
| 169 | require.Equal(t, "test-chat-id", r.URL.Query().Get("chat_id")) |
| 170 | require.False(t, r.URL.Query().Has("workdir")) |
| 171 | _, _ = w.Write([]byte(`{"type":"github","access_token":"token"}`)) |
| 172 | })) |
| 173 | defer srv.Close() |
| 174 | |
| 175 | parsedURL, err := url.Parse(srv.URL) |
| 176 | require.NoError(t, err) |
| 177 | |
| 178 | client := agentsdk.New(parsedURL, agentsdk.WithFixedToken("token")) |
| 179 | _, err = client.ExternalAuth(testutil.Context(t, testutil.WaitShort), agentsdk.ExternalAuthRequest{ |
| 180 | Match: "github.com", |
| 181 | Listen: true, |
| 182 | GitBranch: "main", |
| 183 | GitRemoteOrigin: "https://github.com/coder/coder.git", |
| 184 | ChatID: "test-chat-id", |
| 185 | }) |
| 186 | require.NoError(t, err) |
| 187 | }) |
| 188 | } |