github.com/grahambrereton-form3/tilt@v0.10.18/internal/k8s/registry_test.go (about) 1 package k8s 2 3 import ( 4 "bytes" 5 "context" 6 goruntime "runtime" 7 "testing" 8 9 "github.com/windmilleng/tilt/internal/container" 10 "github.com/windmilleng/tilt/pkg/logger" 11 12 "github.com/stretchr/testify/assert" 13 v1 "k8s.io/api/core/v1" 14 "k8s.io/apimachinery/pkg/api/errors" 15 "k8s.io/apimachinery/pkg/runtime" 16 "k8s.io/apimachinery/pkg/runtime/schema" 17 "k8s.io/client-go/kubernetes/fake" 18 ktesting "k8s.io/client-go/testing" 19 ) 20 21 func TestRegistryFound(t *testing.T) { 22 // microk8s is linux-only 23 if goruntime.GOOS != "linux" { 24 t.SkipNow() 25 } 26 27 cs := &fake.Clientset{} 28 cs.AddReactor("*", "*", func(action ktesting.Action) (handled bool, ret runtime.Object, err error) { 29 return true, &v1.Service{ 30 Spec: v1.ServiceSpec{ 31 Ports: []v1.ServicePort{ 32 v1.ServicePort{NodePort: 32000}, 33 }, 34 }, 35 }, nil 36 }) 37 38 core := cs.CoreV1() 39 registryAsync := newRegistryAsync(EnvMicroK8s, core, NewNaiveRuntimeSource(container.RuntimeContainerd)) 40 41 out := &bytes.Buffer{} 42 l := logger.NewLogger(logger.InfoLvl, out) 43 ctx := logger.WithLogger(context.Background(), l) 44 registry := registryAsync.Registry(ctx) 45 assert.Equal(t, "localhost:32000", string(registry)) 46 } 47 48 func TestRegistryNotFound(t *testing.T) { 49 // microk8s is linux-only 50 if goruntime.GOOS != "linux" { 51 t.SkipNow() 52 } 53 54 cs := &fake.Clientset{} 55 cs.AddReactor("*", "*", func(action ktesting.Action) (handled bool, ret runtime.Object, err error) { 56 return true, nil, errors.NewNotFound(schema.GroupResource{Group: "core/v1", Resource: "service"}, "registry") 57 }) 58 59 core := cs.CoreV1() 60 registryAsync := newRegistryAsync(EnvMicroK8s, core, NewNaiveRuntimeSource(container.RuntimeContainerd)) 61 62 out := &bytes.Buffer{} 63 l := logger.NewLogger(logger.InfoLvl, out) 64 ctx := logger.WithLogger(context.Background(), l) 65 registry := registryAsync.Registry(ctx) 66 assert.Equal(t, "", string(registry)) 67 assert.Contains(t, out.String(), "microk8s.enable registry") 68 }