keyring_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package keyring
  2. import (
  3. "errors"
  4. "testing"
  5. zkeyring "github.com/zalando/go-keyring"
  6. )
  7. const testToken = "abc123"
  8. var testErr = errors.New("boom")
  9. func TestSetToken(t *testing.T) {
  10. t.Run("success", func(t *testing.T) {
  11. zkeyring.MockInit()
  12. if err := SetToken(testToken); err != nil {
  13. t.Fatal(err)
  14. }
  15. got, err := GetToken()
  16. if err != nil {
  17. t.Fatal(err)
  18. }
  19. if got != testToken {
  20. t.Fatalf("got = %q, want = %q", got, testToken)
  21. }
  22. })
  23. t.Run("error", func(t *testing.T) {
  24. zkeyring.MockInitWithError(testErr)
  25. if err := SetToken(testToken); err == nil {
  26. t.Fatal("expected error")
  27. }
  28. })
  29. }
  30. func TestGetToken(t *testing.T) {
  31. t.Run("success", func(t *testing.T) {
  32. zkeyring.MockInit()
  33. if err := zkeyring.Set(keyringService, keyringUser, testToken); err != nil {
  34. t.Fatal(err)
  35. }
  36. got, err := GetToken()
  37. if err != nil {
  38. t.Fatal(err)
  39. }
  40. if got != testToken {
  41. t.Fatalf("got = %q, want = %q", got, testToken)
  42. }
  43. })
  44. t.Run("not found", func(t *testing.T) {
  45. zkeyring.MockInit()
  46. _, err := GetToken()
  47. if !errors.Is(err, zkeyring.ErrNotFound) {
  48. t.Fatalf("got = %v, want = %v", err, zkeyring.ErrNotFound)
  49. }
  50. })
  51. t.Run("error", func(t *testing.T) {
  52. zkeyring.MockInitWithError(testErr)
  53. if _, err := GetToken(); err == nil {
  54. t.Fatal("expected error")
  55. }
  56. })
  57. }
  58. func TestDeleteToken(t *testing.T) {
  59. t.Run("success", func(t *testing.T) {
  60. zkeyring.MockInit()
  61. if err := zkeyring.Set(keyringService, keyringUser, testToken); err != nil {
  62. t.Fatal(err)
  63. }
  64. if err := DeleteToken(); err != nil {
  65. t.Fatal(err)
  66. }
  67. _, err := GetToken()
  68. if !errors.Is(err, zkeyring.ErrNotFound) {
  69. t.Fatalf("got = %v, want = %v", err, zkeyring.ErrNotFound)
  70. }
  71. })
  72. t.Run("not found", func(t *testing.T) {
  73. zkeyring.MockInit()
  74. if err := DeleteToken(); !errors.Is(err, zkeyring.ErrNotFound) {
  75. t.Fatalf("got = %v, want = %v", err, zkeyring.ErrNotFound)
  76. }
  77. })
  78. t.Run("error", func(t *testing.T) {
  79. zkeyring.MockInitWithError(testErr)
  80. if err := DeleteToken(); err == nil {
  81. t.Fatal("expected error")
  82. }
  83. })
  84. }