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  }