github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/k8s/portforward_test.go (about) 1 package k8s 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 "k8s.io/apimachinery/pkg/util/httpstream" 9 ) 10 11 type fakeDialer struct { 12 dialed bool 13 conn httpstream.Connection 14 err error 15 negotiatedProtocol string 16 } 17 18 func (d *fakeDialer) Dial(protocols ...string) (httpstream.Connection, string, error) { 19 d.dialed = true 20 return d.conn, d.negotiatedProtocol, d.err 21 } 22 23 var fakeNewPodDialer = newPodDialerFn(func(namespace Namespace, podID PodID) (httpstream.Dialer, error) { 24 return &fakeDialer{}, nil 25 }) 26 27 func TestPortForwardEmptyHost(t *testing.T) { 28 client := portForwardClient{newPodDialer: fakeNewPodDialer} 29 pf, err := client.CreatePortForwarder(context.Background(), "default", "podid", 8080, 8080, "") 30 assert.NoError(t, err) 31 assert.Equal(t, []string{"127.0.0.1", "::1"}, pf.Addresses()) 32 } 33 34 func TestPortForwardLocalhost(t *testing.T) { 35 client := portForwardClient{newPodDialer: fakeNewPodDialer} 36 pf, err := client.CreatePortForwarder(context.Background(), "default", "podid", 8080, 8080, "localhost") 37 assert.NoError(t, err) 38 assert.Equal(t, []string{"127.0.0.1", "::1"}, pf.Addresses()) 39 } 40 41 func TestPortForwardInvalidDomain(t *testing.T) { 42 client := portForwardClient{newPodDialer: fakeNewPodDialer} 43 _, err := client.CreatePortForwarder(context.Background(), "default", "podid", 8080, 8080, "domain.invalid") 44 if assert.Error(t, err) { 45 assert.Contains(t, err.Error(), "failed to look up address for domain.invalid") 46 } 47 } 48 49 func TestPortForwardAllHosts(t *testing.T) { 50 client := portForwardClient{newPodDialer: fakeNewPodDialer} 51 pf, err := client.CreatePortForwarder(context.Background(), "default", "podid", 8080, 8080, "0.0.0.0") 52 assert.NoError(t, err) 53 assert.Equal(t, []string{"0.0.0.0"}, pf.Addresses()) 54 }