package secret import ( "testing" "github.com/keybase/go-keychain" ) const ( testKeyringService = "io.maze.git.go.secret" testKeyringKey = "test" ) func TestKeyring(t *testing.T) { item := keychain.NewItem() item.SetSecClass(keychain.SecClassGenericPassword) item.SetService(testKeyringService) item.SetAccount(testKeyringKey) item.SetData([]byte(testKeyringKey)) item.SetAccessible(keychain.AccessibleAlways) if err := keychain.AddItem(item); err != nil { t.Skip(err) } defer func() { if err := keychain.DeleteGenericPasswordItem(testKeyringService, testKeyringKey); err != nil { t.Error(err) } }() p, err := Keyring(testKeyringService) if err != nil { t.Fatal(err) return } v, err := p.GetSecret(testKeyringKey) if err != nil { t.Fatal(err) return } if string(v) != testKeyringKey { t.Errorf("expected %q, got %q", testKeyringKey, v) } }