From 2fc2313bb1a9608195bb2a7624983b52901d4c73 Mon Sep 17 00:00:00 2001 From: Nick Santos Date: Wed, 27 Jul 2022 09:23:46 -0400 Subject: [PATCH] pass: return an error when a cred doesn't exist fixes https://github.com/docker/docker-credential-helpers/issues/174 Signed-off-by: Nick Santos --- pass/pass.go | 2 +- pass/pass_test.go | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/pass/pass.go b/pass/pass.go index 5750a786..e62bb752 100644 --- a/pass/pass.go +++ b/pass/pass.go @@ -138,7 +138,7 @@ func (p Pass) Get(serverURL string) (string, string, error) { if _, err := os.Stat(path.Join(getPassDir(), PASS_FOLDER, encoded)); err != nil { if os.IsNotExist(err) { - return "", "", nil + return "", "", credentials.NewErrCredentialsNotFound() } return "", "", err diff --git a/pass/pass_test.go b/pass/pass_test.go index d342b611..d91f9325 100644 --- a/pass/pass_test.go +++ b/pass/pass_test.go @@ -54,13 +54,9 @@ func TestPassHelper(t *testing.T) { t.Fatal(err) } - username, _, err = helper.Get(server) - if err != nil { - t.Fatal(err) - } - - if username != "" { - t.Fatalf("%s shouldn't exist any more", username) + _, _, err = helper.Get(server) + if !credentials.IsErrCredentialsNotFound(err) { + t.Fatalf("expected credentials not found, actual: %v", err) } } @@ -73,3 +69,12 @@ func TestPassHelper(t *testing.T) { t.Fatal("didn't delete all creds?") } } + +func TestMissingCred(t *testing.T) { + helper := Pass{} + + _, _, err := helper.Get("garbage") + if !credentials.IsErrCredentialsNotFound(err) { + t.Fatalf("expected credentials not found, actual: %v", err) + } +}