github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/k8s/pod_template_test.go (about) 1 package k8s 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 v1 "k8s.io/api/apps/v1" 8 9 "github.com/tilt-dev/tilt/internal/k8s/testyaml" 10 ) 11 12 func TestInjectPodTemplateHash(t *testing.T) { 13 entities, err := ParseYAMLFromString(testyaml.SanchoYAML) 14 if err != nil { 15 t.Fatal(err) 16 } 17 18 if len(entities) != 1 { 19 t.Fatalf("Unexpected entities: %+v", entities) 20 } 21 22 orig := entities[0] 23 preInjectOrigYAML, err := SerializeSpecYAML([]K8sEntity{orig}) 24 require.NoError(t, err) 25 26 injected, err := InjectPodTemplateSpecHashes(orig) 27 require.NoError(t, err) 28 29 // make sure we haven't mutated the original object 30 postInjectOrigYAML, err := SerializeSpecYAML([]K8sEntity{orig}) 31 require.NoError(t, err) 32 require.Equal(t, preInjectOrigYAML, postInjectOrigYAML) 33 34 // make sure the label is set and it's some kind of hash 35 dep := injected.Obj.(*v1.Deployment) 36 require.Regexp(t, `^[0-9a-f]{10,}$`, dep.Spec.Template.Labels[TiltPodTemplateHashLabel]) 37 }