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  }