| 9 | ) |
| 10 | |
| 11 | func TestKeyring(t *testing.T) { |
| 12 | cfg := new(cli.Config) |
| 13 | cfg.Keyring.MockMode = true |
| 14 | cfg.API.URL = "http://test-keyring-url.example.com/" |
| 15 | |
| 16 | kr := &Keyring{Config: cfg} |
| 17 | |
| 18 | val, err := kr.Get(label("test-missing-label")) |
| 19 | if want, got := keyring.ErrNotFound, err; want != got { |
| 20 | t.Fatalf("want read from empty keyring error %q, got %q", want, got) |
| 21 | } |
| 22 | if want, got := "", val; want != got { |
| 23 | t.Errorf("want read from empty keyring value %q, got %q", want, got) |
| 24 | } |
| 25 | |
| 26 | secret := "open sesame" |
| 27 | if err := kr.Set(label("test-secret-label"), secret); err != nil { |
| 28 | t.Fatal(err) |
| 29 | } |
| 30 | |
| 31 | if val, err = kr.Get(label("test-secret-label")); err != nil { |
| 32 | t.Fatal(err) |
| 33 | } |
| 34 | if want, got := secret, val; want != got { |
| 35 | t.Errorf("want read after keyring write value %q, got %q", want, got) |
| 36 | } |
| 37 | |
| 38 | if want, got := keyring.ErrNotFound, kr.Delete(label("test-missing-label")); want != got { |
| 39 | t.Fatalf("want delete for unset keyring error %q, got %q", want, got) |
| 40 | } |
| 41 | |
| 42 | if err := kr.Delete(label("test-secret-label")); err != nil { |
| 43 | t.Fatal(err) |
| 44 | } |
| 45 | } |