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