@@ -50,6 +50,7 @@ func TestGetSecretsFromFilesWithString(t *testing.T) {
5050
5151 err := os .Setenv ("WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD" , value )
5252 require .NoError (t , err )
53+ defer os .Unsetenv ("WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD" )
5354
5455 testGetSecretsFromFiles (t , "notification-email-server-password" , value )
5556}
@@ -69,17 +70,40 @@ func TestGetSecretsFromFilesWithFile(t *testing.T) {
6970
7071 err = os .Setenv ("WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD" , file .Name ())
7172 require .NoError (t , err )
73+ defer os .Unsetenv ("WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD" )
7274
7375 testGetSecretsFromFiles (t , "notification-email-server-password" , value )
7476}
7577
76- func testGetSecretsFromFiles (t * testing.T , flagName string , expected string ) {
78+ func TestGetSliceSecretsFromFiles (t * testing.T ) {
79+ values := []string {"entry2" , "" , "entry3" }
80+
81+ // Create the temporary file which will contain a secret.
82+ file , err := ioutil .TempFile (os .TempDir (), "watchtower-" )
83+ require .NoError (t , err )
84+ defer os .Remove (file .Name ()) // Make sure to remove the temporary file later.
85+
86+ // Write the secret to the temporary file.
87+ for _ , value := range values {
88+ _ , err = file .WriteString ("\n " + value )
89+ require .NoError (t , err )
90+ }
91+ file .Close ()
92+
93+ testGetSecretsFromFiles (t , "notification-url" , `[entry1,entry2,entry3]` ,
94+ `--notification-url` , "entry1" ,
95+ `--notification-url` , file .Name ())
96+ }
97+
98+ func testGetSecretsFromFiles (t * testing.T , flagName string , expected string , args ... string ) {
7799 cmd := new (cobra.Command )
78100 SetDefaults ()
79101 RegisterNotificationFlags (cmd )
102+ require .NoError (t , cmd .ParseFlags (args ))
80103 GetSecretsFromFiles (cmd )
81- value , err := cmd .PersistentFlags ().GetString (flagName )
82- require .NoError (t , err )
104+ flag := cmd .PersistentFlags ().Lookup (flagName )
105+ require .NotNil (t , flag )
106+ value := flag .Value .String ()
83107
84108 assert .Equal (t , expected , value )
85109}
0 commit comments