mirror of https://github.com/containrrr/watchtower
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
package flags
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/spf13/viper"
 | 
						|
	"io/ioutil"
 | 
						|
	"os"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/spf13/cobra"
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
	"github.com/stretchr/testify/require"
 | 
						|
)
 | 
						|
 | 
						|
func TestEnvConfig_Defaults(t *testing.T) {
 | 
						|
	cmd := new(cobra.Command)
 | 
						|
	RegisterDockerFlags(cmd)
 | 
						|
	SetEnvBindings()
 | 
						|
	BindViperFlags(cmd)
 | 
						|
 | 
						|
	err := EnvConfig()
 | 
						|
	require.NoError(t, err)
 | 
						|
 | 
						|
	assert.Equal(t, "unix:///var/run/docker.sock", os.Getenv("DOCKER_HOST"))
 | 
						|
	assert.Equal(t, "", os.Getenv("DOCKER_TLS_VERIFY"))
 | 
						|
	// Re-enable this test when we've moved to github actions.
 | 
						|
	// assert.Equal(t, DockerAPIMinVersion, os.Getenv("DOCKER_API_VERSION"))
 | 
						|
}
 | 
						|
 | 
						|
func TestEnvConfig_Custom(t *testing.T) {
 | 
						|
	cmd := new(cobra.Command)
 | 
						|
	RegisterDockerFlags(cmd)
 | 
						|
	SetEnvBindings()
 | 
						|
	BindViperFlags(cmd)
 | 
						|
 | 
						|
	err := cmd.ParseFlags([]string{"--host", "some-custom-docker-host", "--tlsverify", "--api-version", "1.99"})
 | 
						|
	require.NoError(t, err)
 | 
						|
 | 
						|
	err = EnvConfig()
 | 
						|
	require.NoError(t, err)
 | 
						|
 | 
						|
	assert.Equal(t, "some-custom-docker-host", os.Getenv("DOCKER_HOST"))
 | 
						|
	assert.Equal(t, "1", os.Getenv("DOCKER_TLS_VERIFY"))
 | 
						|
	// Re-enable this test when we've moved to github actions.
 | 
						|
	// assert.Equal(t, "1.99", os.Getenv("DOCKER_API_VERSION"))
 | 
						|
}
 | 
						|
 | 
						|
func TestGetSecretsFromFilesWithString(t *testing.T) {
 | 
						|
	value := "supersecretstring"
 | 
						|
 | 
						|
	err := os.Setenv("WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD", value)
 | 
						|
	require.NoError(t, err)
 | 
						|
 | 
						|
	testGetSecretsFromFiles(t, "notification-email-server-password", value)
 | 
						|
}
 | 
						|
 | 
						|
func TestGetSecretsFromFilesWithFile(t *testing.T) {
 | 
						|
	value := "megasecretstring"
 | 
						|
 | 
						|
	// Create the temporary file which will contain a secret.
 | 
						|
	file, err := ioutil.TempFile(os.TempDir(), "watchtower-")
 | 
						|
	require.NoError(t, err)
 | 
						|
	defer os.Remove(file.Name()) // Make sure to remove the temporary file later.
 | 
						|
 | 
						|
	// Write the secret to the temporary file.
 | 
						|
	secret := []byte(value)
 | 
						|
	_, err = file.Write(secret)
 | 
						|
	require.NoError(t, err)
 | 
						|
 | 
						|
	err = os.Setenv("WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD", file.Name())
 | 
						|
	require.NoError(t, err)
 | 
						|
 | 
						|
	testGetSecretsFromFiles(t, "notification-email-server-password", value)
 | 
						|
}
 | 
						|
 | 
						|
func testGetSecretsFromFiles(t *testing.T, flagName string, expected string) {
 | 
						|
	cmd := new(cobra.Command)
 | 
						|
	RegisterNotificationFlags(cmd)
 | 
						|
	SetEnvBindings()
 | 
						|
	BindViperFlags(cmd)
 | 
						|
	GetSecretsFromFiles()
 | 
						|
	value := viper.GetString(flagName)
 | 
						|
 | 
						|
	assert.Equal(t, expected, value)
 | 
						|
}
 |