11package secretservice
22
33import (
4+ "strings"
45 "testing"
56
67 "github.com/docker/docker-credential-helpers/credentials"
@@ -16,10 +17,36 @@ 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+ for k , v := range old_auths {
30+ if strings .Compare (k , creds .ServerURL ) == 0 && strings .Compare (v , creds .Username ) == 0 {
31+
32+ if err := helper .Delete (creds .ServerURL ); err != nil {
33+ t .Fatal (err )
34+ }
35+ }
36+ }
37+
38+ // Check again how many docker credentials we have when starting the test
39+ old_auths , err = helper .List ()
40+ if err != nil {
41+ t .Fatal (err )
42+ }
43+
44+ // Add new credentials
1945 if err := helper .Add (creds ); err != nil {
2046 t .Fatal (err )
2147 }
2248
49+ // Verify that it is inside the secret service store
2350 username , secret , err := helper .Get (creds .ServerURL )
2451 if err != nil {
2552 t .Fatal (err )
@@ -33,15 +60,21 @@ func TestSecretServiceHelper(t *testing.T) {
3360 t .Fatalf ("expected %s, got %s\n " , "foobarbaz" , secret )
3461 }
3562
36- if err := helper .Delete (creds .ServerURL ); err != nil {
63+ // We should have one more credential than before adding
64+ new_auths , err := helper .List ()
65+ if err != nil || (len (new_auths )- len (old_auths ) != 1 ) {
3766 t .Fatal (err )
3867 }
39- auths , err := helper .List ()
40- if err != nil || len (auths ) == 0 {
68+ old_auths = new_auths
69+
70+ // Deleting the credentials associated to current server url should succeed
71+ if err := helper .Delete (creds .ServerURL ); err != nil {
4172 t .Fatal (err )
4273 }
43- helper .Add (creds )
44- if newauths , err := helper .List (); (len (newauths ) - len (auths )) != 1 {
74+
75+ // We should have one less credential than before deleting
76+ new_auths , err = helper .List ()
77+ if err != nil || (len (old_auths )- len (new_auths ) != 1 ) {
4578 t .Fatal (err )
4679 }
4780}
0 commit comments