11package secretservice
22
33import (
4+ "strings"
45 "testing"
56
67 "github.com/docker/docker-credential-helpers/credentials"
@@ -16,10 +17,39 @@ func TestSecretServiceHelper(t *testing.T) {
1617 }
1718
1819 helper := Secretservice {}
20+
21+ // Check how many docker credentials we have when starting the test
22+ old_auths , err := helper .List ()
23+ if err != nil {
24+ t .Fatal (err )
25+ }
26+
27+ // If any docker credentials with the tests values we are providing, we
28+ // remove them as they probably come from a previous failed test
29+ if len (old_auths ) >= 1 {
30+ for k , v := range old_auths {
31+ if strings .Compare (k , creds .ServerURL ) == 0 && strings .Compare (v , creds .Username ) == 0 {
32+
33+ if err := helper .Delete (creds .ServerURL ); err != nil {
34+ t .Fatal (err )
35+ }
36+ }
37+ }
38+
39+ }
40+
41+ // Check again how many docker credentials we have when starting the test
42+ old_auths , err = helper .List ()
43+ if err != nil {
44+ t .Fatal (err )
45+ }
46+
47+ // Add new credentials
1948 if err := helper .Add (creds ); err != nil {
2049 t .Fatal (err )
2150 }
2251
52+ // Verify that it is inside the secret service store
2353 username , secret , err := helper .Get (creds .ServerURL )
2454 if err != nil {
2555 t .Fatal (err )
@@ -33,15 +63,21 @@ func TestSecretServiceHelper(t *testing.T) {
3363 t .Fatalf ("expected %s, got %s\n " , "foobarbaz" , secret )
3464 }
3565
36- if err := helper .Delete (creds .ServerURL ); err != nil {
66+ // We should have one more credential than before adding
67+ new_auths , err := helper .List ()
68+ if err != nil || (len (new_auths )- len (old_auths ) != 1 ) {
3769 t .Fatal (err )
3870 }
39- auths , err := helper .List ()
40- if err != nil || len (auths ) == 0 {
71+ old_auths = new_auths
72+
73+ // Deleting the credentials associated to current server url should succeed
74+ if err := helper .Delete (creds .ServerURL ); err != nil {
4175 t .Fatal (err )
4276 }
43- helper .Add (creds )
44- if newauths , err := helper .List (); (len (newauths ) - len (auths )) != 1 {
77+
78+ // We should have one less credential than before deleting
79+ new_auths , err = helper .List ()
80+ if err != nil || (len (old_auths )- len (new_auths ) != 1 ) {
4581 t .Fatal (err )
4682 }
4783}
0 commit comments