github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/tiltfile/k8scontext/k8scontext_test.go (about) 1 package k8scontext 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "github.com/tilt-dev/clusterid" 9 "github.com/tilt-dev/tilt/internal/k8s" 10 "github.com/tilt-dev/tilt/internal/tiltfile/starkit" 11 ) 12 13 func TestK8sNamespaceDefaultNamespace(t *testing.T) { 14 f := NewFixture(t, "gke-blorg", "default", clusterid.ProductGKE) 15 f.File("Tiltfile", ` 16 print(k8s_namespace()) 17 `) 18 _, err := f.ExecFile("Tiltfile") 19 assert.NoError(t, err) 20 21 assert.Equal(t, "default\n", f.PrintOutput()) 22 } 23 24 func TestK8sNamespaceNonStandardNamespace(t *testing.T) { 25 f := NewFixture(t, "gke-blorg", "im-a-teapot", clusterid.ProductGKE) 26 f.File("Tiltfile", ` 27 print(k8s_namespace()) 28 `) 29 _, err := f.ExecFile("Tiltfile") 30 assert.NoError(t, err) 31 32 assert.Equal(t, "im-a-teapot\n", f.PrintOutput()) 33 } 34 35 func TestAllowK8sContext(t *testing.T) { 36 f := NewFixture(t, "gke-blorg", "default", clusterid.ProductGKE) 37 f.File("Tiltfile", ` 38 allow_k8s_contexts('gke-blorg') 39 `) 40 model, err := f.ExecFile("Tiltfile") 41 assert.NoError(t, err) 42 assert.Equal(t, []k8s.KubeContext{"gke-blorg"}, MustState(model).allowed) 43 assert.True(t, MustState(model).IsAllowed(f.Tiltfile())) 44 45 model, err = f.ExecFile("Tiltfile") 46 assert.NoError(t, err) 47 assert.Equal(t, []k8s.KubeContext{"gke-blorg"}, MustState(model).allowed) 48 } 49 50 func TestForbidK8sContext(t *testing.T) { 51 f := NewFixture(t, "gke-blorg", "default", clusterid.ProductGKE) 52 f.File("Tiltfile", ` 53 `) 54 model, err := f.ExecFile("Tiltfile") 55 assert.NoError(t, err) 56 assert.False(t, MustState(model).IsAllowed(f.Tiltfile())) 57 58 // All k8s contexts are allowed in extensions. 59 f.Tiltfile().ObjectMeta.Name = "my-ext" 60 assert.True(t, MustState(model).IsAllowed(f.Tiltfile())) 61 } 62 63 func NewFixture(tb testing.TB, ctx k8s.KubeContext, ns k8s.Namespace, env clusterid.Product) *starkit.Fixture { 64 return starkit.NewFixture(tb, NewPlugin(ctx, ns, env)) 65 }