40 lines
961 B
Go
40 lines
961 B
Go
package actions_test
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"testing"
|
|
|
|
"github.com/actions/actions-runner-controller/github/actions"
|
|
"github.com/actions/actions-runner-controller/github/actions/testserver"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
"golang.org/x/net/http/httpproxy"
|
|
)
|
|
|
|
func TestClientProxy(t *testing.T) {
|
|
serverCalled := false
|
|
|
|
proxy := testserver.New(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
serverCalled = true
|
|
}))
|
|
|
|
proxyConfig := &httpproxy.Config{
|
|
HTTPProxy: proxy.URL,
|
|
}
|
|
proxyFunc := func(req *http.Request) (*url.URL, error) {
|
|
return proxyConfig.ProxyFunc()(req.URL)
|
|
}
|
|
|
|
c, err := actions.NewClient("http://github.com/org/repo", nil, actions.WithProxy(proxyFunc))
|
|
require.NoError(t, err)
|
|
|
|
req, err := http.NewRequest(http.MethodGet, "http://example.com", nil)
|
|
require.NoError(t, err)
|
|
|
|
_, err = c.Do(req)
|
|
require.NoError(t, err)
|
|
|
|
assert.True(t, serverCalled)
|
|
}
|