mirror of
https://github.com/portainer/portainer.git
synced 2026-08-07 13:14:48 +00:00
91 lines
2.0 KiB
Go
91 lines
2.0 KiB
Go
package proxy
|
|
|
|
import (
|
|
"net/http"
|
|
"strconv"
|
|
"testing"
|
|
|
|
portainer "github.com/portainer/portainer/api"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type stubHandler struct{}
|
|
|
|
func (*stubHandler) ServeHTTP(http.ResponseWriter, *http.Request) {}
|
|
|
|
func TestCreateAndRegisterEndpointProxy_ProxyFactoryNotInitialized(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
manager := NewManager(nil)
|
|
endpoint := &portainer.Endpoint{ID: 1}
|
|
|
|
proxy, err := manager.CreateAndRegisterEndpointProxy(endpoint)
|
|
|
|
require.Error(t, err)
|
|
require.ErrorIs(t, err, ErrProxyFactoryNotInitialized)
|
|
assert.Nil(t, proxy)
|
|
}
|
|
|
|
func TestCreateAgentProxyServer_ProxyFactoryNotInitialized(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
manager := NewManager(nil)
|
|
endpoint := &portainer.Endpoint{ID: 1}
|
|
|
|
proxyServer, err := manager.CreateAgentProxyServer(endpoint)
|
|
|
|
require.Error(t, err)
|
|
require.ErrorIs(t, err, ErrProxyFactoryNotInitialized)
|
|
assert.Nil(t, proxyServer)
|
|
}
|
|
|
|
func TestCreateGitlabProxy_ProxyFactoryNotInitialized(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
manager := NewManager(nil)
|
|
|
|
proxy, err := manager.CreateGitlabProxy("http://gitlab.example.com")
|
|
|
|
require.Error(t, err)
|
|
require.ErrorIs(t, err, ErrProxyFactoryNotInitialized)
|
|
assert.Nil(t, proxy)
|
|
}
|
|
|
|
func TestGetEndpointProxy_NotFound(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
manager := NewManager(nil)
|
|
endpoint := &portainer.Endpoint{ID: 1}
|
|
|
|
proxy := manager.GetEndpointProxy(endpoint)
|
|
|
|
assert.Nil(t, proxy)
|
|
}
|
|
|
|
func TestGetEndpointProxy_Found(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
manager := NewManager(nil)
|
|
endpoint := &portainer.Endpoint{ID: 42}
|
|
handler := &stubHandler{}
|
|
manager.endpointProxies.Store(strconv.Itoa(int(endpoint.ID)), handler)
|
|
|
|
proxy := manager.GetEndpointProxy(endpoint)
|
|
|
|
assert.Same(t, handler, proxy)
|
|
}
|
|
|
|
func TestDeleteEndpointProxy(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
manager := NewManager(nil)
|
|
endpoint := &portainer.Endpoint{ID: 7}
|
|
manager.endpointProxies.Store(strconv.Itoa(int(endpoint.ID)), &stubHandler{})
|
|
|
|
manager.DeleteEndpointProxy(endpoint.ID)
|
|
|
|
proxy := manager.GetEndpointProxy(endpoint)
|
|
assert.Nil(t, proxy)
|
|
}
|