|
|
@@ -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")
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|