...

Source file src/github.com/emissary-ingress/emissary/v3/pkg/kubeapply/resource_kubeapply_test.go

Documentation: github.com/emissary-ingress/emissary/v3/pkg/kubeapply

     1  package kubeapply_test
     2  
     3  import (
     4  	"os"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  
    10  	"github.com/datawire/dlib/dexec"
    11  	"github.com/datawire/dlib/dlog"
    12  	"github.com/emissary-ingress/emissary/v3/pkg/dtest"
    13  	"github.com/emissary-ingress/emissary/v3/pkg/kubeapply"
    14  )
    15  
    16  func needsDocker(t *testing.T) {
    17  	if _, err := dexec.LookPath("docker"); err != nil {
    18  		if os.Getenv("CI") != "" {
    19  			t.Fatalf("This should not happen in CI: skipping test because 'docker' is not installed: %v", err)
    20  		}
    21  		t.Skip(err)
    22  	}
    23  }
    24  
    25  func TestDocker(t *testing.T) {
    26  	needsDocker(t)
    27  
    28  	ctx := dlog.NewTestContext(t, false)
    29  
    30  	if os.Getenv("DOCKER_REGISTRY") == "" {
    31  		os.Setenv("DOCKER_REGISTRY", dtest.DockerRegistry(ctx))
    32  	}
    33  
    34  	_, err := kubeapply.ExpandResource(ctx, "testdata/docker.yaml")
    35  	assert.NoError(t, err)
    36  }
    37  
    38  func TestExpand(t *testing.T) {
    39  	needsDocker(t)
    40  
    41  	ctx := dlog.NewTestContext(t, false)
    42  
    43  	if os.Getenv("DOCKER_REGISTRY") == "" {
    44  		os.Setenv("DOCKER_REGISTRY", dtest.DockerRegistry(ctx))
    45  	}
    46  
    47  	outfiles, err := kubeapply.TestExpand(ctx, []string{"testdata/docker.yaml"})
    48  	assert.NoError(t, err)
    49  	assert.Equal(t, []string{"testdata/docker.yaml.o"}, outfiles)
    50  
    51  	actBytes, err := os.ReadFile("testdata/docker.yaml.o")
    52  	assert.NoError(t, err)
    53  	actStr := string(actBytes)
    54  
    55  	img, err := kubeapply.TestImage(ctx, ".", "../../docker/test-http/Dockerfile")
    56  	assert.NoError(t, err)
    57  	assert.True(t, strings.HasPrefix(img, os.Getenv("DOCKER_REGISTRY")+"/kubeapply:"))
    58  
    59  	expBytes, err := os.ReadFile("testdata/docker.yaml.o.exp")
    60  	assert.NoError(t, err)
    61  	expStr := strings.ReplaceAll(string(expBytes), "@IMAGE@", img)
    62  
    63  	assert.Equal(t, expStr, actStr)
    64  }
    65  

View as plain text