github.com/grahambrereton-form3/tilt@v0.10.18/internal/synclet/sidecar/sidecar_test.go (about) 1 package sidecar 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 9 "github.com/windmilleng/tilt/internal/container" 10 "github.com/windmilleng/tilt/internal/k8s" 11 "github.com/windmilleng/tilt/internal/k8s/testyaml" 12 ) 13 14 func TestInjectSyncletSidecar(t *testing.T) { 15 entities, err := k8s.ParseYAMLFromString(testyaml.SanchoYAML) 16 if err != nil { 17 t.Fatal(err) 18 } 19 20 syncletRef, _ := syncletImageRefFromName(DefaultSyncletImageName) 21 syncletContainer := ProvideSyncletContainer(syncletRef) 22 23 assert.Equal(t, 1, len(entities)) 24 entity := entities[0] 25 selector := container.MustParseSelector("gcr.io/some-project-162817/sancho") 26 newEntity, replaced, err := InjectSyncletSidecar(entity, selector, syncletContainer) 27 if err != nil { 28 t.Fatal(err) 29 } else if !replaced { 30 t.Errorf("Expected replacement in:\n%s", testyaml.SanchoYAML) 31 } 32 33 result, err := k8s.SerializeSpecYAML([]k8s.K8sEntity{newEntity}) 34 if err != nil { 35 t.Fatal(err) 36 } 37 38 if !strings.Contains(result, DefaultSyncletImageName) { 39 t.Errorf("could not find image in yaml (%s):\n%s", DefaultSyncletImageName, result) 40 } 41 } 42 43 func TestInjectSyncletSidecarMultipleContainers(t *testing.T) { 44 entities, err := k8s.ParseYAMLFromString(testyaml.MultipleContainersDeploymentYAML) 45 if err != nil { 46 t.Fatal(err) 47 } 48 49 syncletRef, _ := syncletImageRefFromName(DefaultSyncletImageName) 50 syncletContainer := ProvideSyncletContainer(syncletRef) 51 52 assert.Equal(t, 1, len(entities)) 53 entity := entities[0] 54 selector := container.MustParseSelector("dockerhub.io/client:0.1.0-dev") 55 newEntity, replaced, err := InjectSyncletSidecar(entity, selector, syncletContainer) 56 if err != nil { 57 t.Fatal(err) 58 } else if !replaced { 59 t.Errorf("Expected replacement in:\n%s", testyaml.MultipleContainersDeploymentYAML) 60 } 61 62 result, err := k8s.SerializeSpecYAML([]k8s.K8sEntity{newEntity}) 63 if err != nil { 64 t.Fatal(err) 65 } 66 67 if strings.Count(result, DefaultSyncletImageName) != 1 { 68 t.Errorf("expected synclet to be injected once, actually injected %d times", 69 strings.Count(result, DefaultSyncletImageName)) 70 } 71 }