package keeper_test import ( "context" "testing" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/simapp" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/group" "github.com/stretchr/testify/require" tmproto "github.com/tendermint/tendermint/proto/tendermint/types" ) func TestQueryGroupsByMember(t *testing.T) { app := simapp.Setup(t, false) ctx := app.BaseApp.NewContext(false, tmproto.Header{}) queryHelper := baseapp.NewQueryServerTestHelper(ctx, app.InterfaceRegistry()) group.RegisterQueryServer(queryHelper, app.GroupKeeper) queryClient := group.NewQueryClient(queryHelper) sdkCtx := sdk.WrapSDKContext(ctx) addrs := simapp.AddTestAddrsIncremental(app, ctx, 6, sdk.NewInt(30000000)) // Initial group, group policy and balance setup members := []group.MemberRequest{ {Address: addrs[2].String(), Weight: "1"}, {Address: addrs[3].String(), Weight: "2"}, } _, err := app.GroupKeeper.CreateGroup(sdkCtx, &group.MsgCreateGroup{ Admin: addrs[0].String(), Members: members, }) require.NoError(t, err) members = []group.MemberRequest{ {Address: addrs[3].String(), Weight: "1"}, {Address: addrs[4].String(), Weight: "2"}, } _, err = app.GroupKeeper.CreateGroup(sdkCtx, &group.MsgCreateGroup{ Admin: addrs[1].String(), Members: members, }) require.NoError(t, err) // not part of any group resp, err := queryClient.GroupsByMember(context.Background(), &group.QueryGroupsByMemberRequest{ Address: addrs[5].String(), }) require.NoError(t, err) require.Len(t, resp.Groups, 0) // expect one group resp, err = queryClient.GroupsByMember(context.Background(), &group.QueryGroupsByMemberRequest{ Address: addrs[4].String(), }) require.NoError(t, err) require.Len(t, resp.Groups, 1) // expect two groups resp, err = queryClient.GroupsByMember(context.Background(), &group.QueryGroupsByMemberRequest{ Address: addrs[3].String(), }) require.NoError(t, err) require.Len(t, resp.Groups, 2) }