github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/service/interesting_test.go (about) 1 package service 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/keybase/client/go/kbtest" 8 "github.com/keybase/client/go/libkb" 9 "github.com/keybase/client/go/protocol/keybase1" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestInterestingPeople(t *testing.T) { 14 tc := libkb.SetupTest(t, "gregor", 3) 15 defer tc.Cleanup() 16 tc.G.SetService() 17 18 maxUsers := 3 19 var users []*kbtest.FakeUser 20 for i := 0; i < maxUsers; i++ { 21 u, err := kbtest.CreateAndSignupFakeUser("ppl", tc.G) 22 require.NoError(t, err) 23 users = append(users, u) 24 } 25 fn1 := func(uid keybase1.UID) (res []keybase1.UID, err error) { 26 for _, u := range users { 27 res = append(res, u.User.GetUID()) 28 } 29 return res, nil 30 } 31 32 // Sign up an addition user 33 u, err := kbtest.CreateAndSignupFakeUser("ppl", tc.G) 34 require.NoError(t, err) 35 users = append(users, u) 36 37 fn2 := func(uid keybase1.UID) (res []keybase1.UID, err error) { 38 for i := len(users) - 1; i >= 0; i-- { 39 res = append(res, u.User.GetUID()) 40 } 41 return res, nil 42 } 43 44 ip := newInterestingPeople(tc.G) 45 ip.AddSource(fn1, 0.9) 46 ip.AddSource(fn2, 0.1) 47 48 res, err := ip.Get(context.TODO(), 20) 49 require.NoError(t, err) 50 require.Equal(t, maxUsers+1, len(res)) 51 require.Equal(t, users[0].GetUID(), res[0]) 52 require.Equal(t, users[len(users)-1].GetUID(), res[len(res)-1]) 53 54 }