MCPcopy
hub / github.com/cli/cli / TestSSOURL

Function TestSSOURL

pkg/cmd/factory/default_test.go:327–375  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

325}
326
327func TestSSOURL(t *testing.T) {
328 tests := []struct {
329 name string
330 host string
331 sso string
332 wantStderr string
333 wantSSO string
334 }{
335 {
336 name: "SSO challenge in response header",
337 host: "github.com",
338 sso: "required; url=https://github.com/login/sso?return_to=xyz&param=123abc; another",
339 wantStderr: "",
340 wantSSO: "https://github.com/login/sso?return_to=xyz&param=123abc",
341 },
342 }
343
344 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
345 if sso := r.URL.Query().Get("sso"); sso != "" {
346 w.Header().Set("X-GitHub-SSO", sso)
347 }
348 w.WriteHeader(http.StatusNoContent)
349 }))
350 defer ts.Close()
351
352 for _, tt := range tests {
353 t.Run(tt.name, func(t *testing.T) {
354 cfg := config.NewBlankConfig()
355 ios, _, _, stderr := iostreams.Test()
356 client, err := HttpClientFunc(func() (gh.Config, error) { return cfg, nil }, ios, "v1.2.3", "", &telemetry.NoOpService{})()
357 require.NoError(t, err)
358 req, err := http.NewRequest("GET", ts.URL, nil)
359 if tt.sso != "" {
360 q := req.URL.Query()
361 q.Set("sso", tt.sso)
362 req.URL.RawQuery = q.Encode()
363 }
364 req.Host = tt.host
365 require.NoError(t, err)
366
367 res, err := client.Do(req)
368 require.NoError(t, err)
369
370 assert.Equal(t, 204, res.StatusCode)
371 assert.Equal(t, tt.wantStderr, stderr.String())
372 assert.Equal(t, tt.wantSSO, SSOURL())
373 })
374 }
375}
376
377func TestPlainHttpClient(t *testing.T) {
378 var receivedHeaders *http.Header

Callers

nothing calls this directly

Calls 12

NewBlankConfigFunction · 0.92
TestFunction · 0.92
HttpClientFuncFunction · 0.85
SSOURLFunction · 0.85
EqualMethod · 0.80
GetMethod · 0.65
QueryMethod · 0.65
SetMethod · 0.65
CloseMethod · 0.65
RunMethod · 0.65
DoMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected