ayn2op пре 3 месеци
родитељ
комит
9e7cb05741
1 измењених фајлова са 109 додато и 0 уклоњено
  1. 109 0
      internal/keyring/keyring_test.go

+ 109 - 0
internal/keyring/keyring_test.go

@@ -0,0 +1,109 @@
+package keyring
+
+import (
+	"errors"
+	"testing"
+
+	zkeyring "github.com/zalando/go-keyring"
+)
+
+const testToken = "abc123"
+
+var testErr = errors.New("boom")
+
+func TestSetToken(t *testing.T) {
+	t.Run("success", func(t *testing.T) {
+		zkeyring.MockInit()
+
+		if err := SetToken(testToken); err != nil {
+			t.Fatal(err)
+		}
+
+		got, err := GetToken()
+		if err != nil {
+			t.Fatal(err)
+		}
+
+		if got != testToken {
+			t.Fatalf("got = %q, want = %q", got, testToken)
+		}
+	})
+
+	t.Run("error", func(t *testing.T) {
+		zkeyring.MockInitWithError(testErr)
+
+		if err := SetToken(testToken); err == nil {
+			t.Fatal("expected error")
+		}
+	})
+}
+
+func TestGetToken(t *testing.T) {
+	t.Run("success", func(t *testing.T) {
+		zkeyring.MockInit()
+
+		if err := zkeyring.Set(keyringService, keyringUser, testToken); err != nil {
+			t.Fatal(err)
+		}
+
+		got, err := GetToken()
+		if err != nil {
+			t.Fatal(err)
+		}
+		if got != testToken {
+			t.Fatalf("got = %q, want = %q", got, testToken)
+		}
+	})
+
+	t.Run("not found", func(t *testing.T) {
+		zkeyring.MockInit()
+
+		_, err := GetToken()
+		if !errors.Is(err, zkeyring.ErrNotFound) {
+			t.Fatalf("got = %v, want = %v", err, zkeyring.ErrNotFound)
+		}
+	})
+
+	t.Run("error", func(t *testing.T) {
+		zkeyring.MockInitWithError(testErr)
+
+		if _, err := GetToken(); err == nil {
+			t.Fatal("expected error")
+		}
+	})
+}
+
+func TestDeleteToken(t *testing.T) {
+	t.Run("success", func(t *testing.T) {
+		zkeyring.MockInit()
+
+		if err := zkeyring.Set(keyringService, keyringUser, testToken); err != nil {
+			t.Fatal(err)
+		}
+
+		if err := DeleteToken(); err != nil {
+			t.Fatal(err)
+		}
+
+		_, err := GetToken()
+		if !errors.Is(err, zkeyring.ErrNotFound) {
+			t.Fatalf("got = %v, want = %v", err, zkeyring.ErrNotFound)
+		}
+	})
+
+	t.Run("not found", func(t *testing.T) {
+		zkeyring.MockInit()
+
+		if err := DeleteToken(); !errors.Is(err, zkeyring.ErrNotFound) {
+			t.Fatalf("got = %v, want = %v", err, zkeyring.ErrNotFound)
+		}
+	})
+
+	t.Run("error", func(t *testing.T) {
+		zkeyring.MockInitWithError(testErr)
+
+		if err := DeleteToken(); err == nil {
+			t.Fatal("expected error")
+		}
+	})
+}