package container import ( "context" "testing" log "github.com/sirupsen/logrus" "gotest.tools/v3/assert" ) func init() { log.SetLevel(log.DebugLevel) } func TestCleanImage(t *testing.T) { tables := []struct { imageIn string imageOut string }{ {"myhost.com/foo/bar", "myhost.com/foo/bar"}, {"ubuntu", "docker.io/library/ubuntu"}, {"ubuntu:18.04", "docker.io/library/ubuntu:18.04"}, {"cibuilds/hugo:0.53", "docker.io/cibuilds/hugo:0.53"}, } for _, table := range tables { imageOut := cleanImage(table.imageIn) assert.Equal(t, table.imageOut, imageOut) } } func TestGetImagePullOptions(t *testing.T) { ctx := context.Background() options, err := getImagePullOptions(ctx, NewDockerPullExecutorInput{}) assert.NilError(t, err, "Failed to create ImagePullOptions") assert.Equal(t, options.RegistryAuth, "", "RegistryAuth should be empty if no username or password is set") options, err = getImagePullOptions(ctx, NewDockerPullExecutorInput{ Image: "", Username: "username", Password: "password", }) assert.NilError(t, err, "Failed to create ImagePullOptions") assert.Equal(t, options.RegistryAuth, "eyJ1c2VybmFtZSI6InVzZXJuYW1lIiwicGFzc3dvcmQiOiJwYXNzd29yZCJ9", "Username and Password should be provided") }