github.com/qri-io/qri@v0.10.1-0.20220104210721-c771715036cb/p2p/datasets_test.go (about)

     1  package p2p
     2  
     3  import (
     4  	"context"
     5  	"sync"
     6  	"testing"
     7  
     8  	p2ptest "github.com/qri-io/qri/p2p/test"
     9  )
    10  
    11  func TestRequestDatasetsList(t *testing.T) {
    12  	t.Skip("ramfox: flakey test")
    13  	ctx := context.Background()
    14  	factory := p2ptest.NewTestNodeFactory(NewTestableQriNode)
    15  	testPeers, err := p2ptest.NewTestDirNetwork(ctx, factory)
    16  	if err != nil {
    17  		t.Fatalf("error creating network: %s", err.Error())
    18  	}
    19  	if err := p2ptest.ConnectNodes(ctx, testPeers); err != nil {
    20  		t.Fatalf("error connecting peers: %s", err.Error())
    21  	}
    22  
    23  	peers := asQriNodes(testPeers)
    24  
    25  	t.Logf("testing RequestDatasetList message with %d peers", len(peers))
    26  	var wg sync.WaitGroup
    27  	for i, p1 := range peers {
    28  		for _, p2 := range peers[i+1:] {
    29  			wg.Add(1)
    30  			go func(p1, p2 *QriNode) {
    31  				defer wg.Done()
    32  
    33  				refs, err := p1.RequestDatasetsList(ctx, p2.ID, DatasetsListParams{Limit: 10, Offset: 0})
    34  				if err != nil {
    35  					t.Errorf("%s -> %s error: %s", p1.ID.Pretty(), p2.ID.Pretty(), err.Error())
    36  				}
    37  				if refs == nil {
    38  					t.Error("profile shouldn't be nil")
    39  					return
    40  				}
    41  				t.Log(refs)
    42  			}(p1, p2)
    43  		}
    44  	}
    45  
    46  	wg.Wait()
    47  }