diff --git a/lib/peers.go b/lib/peers.go index abc25794b..e7c6d732f 100644 --- a/lib/peers.go +++ b/lib/peers.go @@ -51,6 +51,9 @@ func (d *PeerRequests) List(p *PeerListParams, res *[]*config.ProfilePod) error if d.cli != nil { return d.cli.Call("PeerRequests.List", p, res) } + if d.qriNode == nil { + return fmt.Errorf("error: not connected, run `qri connect` in another window") + } r := d.qriNode.Repo user, err := r.Profile() diff --git a/lib/peers_test.go b/lib/peers_test.go index 912abdfba..45c86fdf3 100644 --- a/lib/peers_test.go +++ b/lib/peers_test.go @@ -1,6 +1,7 @@ package lib import ( + "strings" "testing" "github.com/qri-io/qri/config" @@ -10,6 +11,18 @@ import ( testrepo "github.com/qri-io/qri/repo/test" ) +func TestPeerRequestsListNoConnection(t *testing.T) { + req := NewPeerRequests(nil, nil) + p := PeerListParams{} + got := []*config.ProfilePod{} + err := req.List(&p, &got) + if err == nil { + t.Errorf("error: req.List should have failed and returned an error") + } else if !strings.HasPrefix(err.Error(), "error: not connected") { + t.Errorf("error: unexpected error message: %s", err.Error()) + } +} + func TestPeerRequestsList(t *testing.T) { cases := []struct { p *PeerListParams