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)
 | |
| }
 |