Add a test for getting auction by id

This commit is contained in:
Prathamesh Musale 2024-02-28 16:21:18 +05:30
parent 3f25325e0f
commit 6c2f3c288f
3 changed files with 87 additions and 1 deletions

2
go.mod
View File

@ -43,7 +43,6 @@ require (
google.golang.org/grpc v1.60.1
google.golang.org/protobuf v1.32.0
gopkg.in/yaml.v3 v3.0.1
gotest.tools/v3 v3.5.1
)
require (
@ -180,6 +179,7 @@ require (
google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gotest.tools/v3 v3.5.1 // indirect
lukechampine.com/blake3 v1.1.6 // indirect
nhooyr.io/websocket v1.8.6 // indirect
pgregory.net/rapid v1.1.0 // indirect

View File

@ -1,6 +1,7 @@
package keeper_test
import (
"context"
"testing"
"cosmossdk.io/core/appmodule"
@ -23,6 +24,7 @@ import (
"github.com/cosmos/cosmos-sdk/x/bank"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
auctionTypes "git.vdb.to/cerc-io/laconic2d/x/auction"
auctionkeeper "git.vdb.to/cerc-io/laconic2d/x/auction/keeper"
@ -59,6 +61,7 @@ func (kts *KeeperTestSuite) SetupTest() {
authority := authtypes.NewModuleAddress("gov")
maccPerms := map[string][]string{
minttypes.ModuleName: {authtypes.Minter},
auctionTypes.ModuleName: {},
auctionTypes.AuctionBurnModuleAccountName: {},
bondTypes.ModuleName: {},
@ -118,3 +121,9 @@ func (kts *KeeperTestSuite) SetupTest() {
func TestKeeperTestSuite(t *testing.T) {
suite.Run(t, new(KeeperTestSuite))
}
type bondDenomProvider struct{}
func (bdp bondDenomProvider) BondDenom(ctx context.Context) (string, error) {
return sdk.DefaultBondDenom, nil
}

View File

@ -4,9 +4,14 @@ import (
"context"
"fmt"
"cosmossdk.io/math"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
types "git.vdb.to/cerc-io/laconic2d/x/auction"
)
const testCommitHash = "71D8CF34026E32A3A34C2C2D4ADF25ABC8D7943A4619761BE27F196603D91B9D"
func (kts *KeeperTestSuite) TestGrpcQueryParams() {
qr := kts.app.QueryHelper()
queryClient := types.NewQueryClient(qr)
@ -29,3 +34,75 @@ func (kts *KeeperTestSuite) TestGrpcQueryParams() {
}
}
func (kts *KeeperTestSuite) TestGrpcGetAuction() {
qr := kts.app.QueryHelper()
queryClient := types.NewQueryClient(qr)
testCases := []struct {
msg string
req *types.QueryAuctionRequest
createAuction bool
}{
{
"fetch auction with empty auction ID",
&types.QueryAuctionRequest{},
false,
},
{
"fetch auction with valid auction ID",
&types.QueryAuctionRequest{},
true,
},
}
for _, test := range testCases {
kts.Run(fmt.Sprintf("Case %s", test.msg), func() {
if test.createAuction {
auction, _, err := kts.createAuctionAndCommitBid(false)
kts.Require().Nil(err)
test.req.Id = auction.Id
}
resp, err := queryClient.GetAuction(context.Background(), test.req)
if test.createAuction {
kts.Require().Nil(err)
kts.Require().NotNil(resp.GetAuction())
kts.Require().Equal(test.req.Id, resp.GetAuction().Id)
} else {
kts.Require().NotNil(err)
kts.Require().Error(err)
}
})
}
}
func (kts *KeeperTestSuite) createAuctionAndCommitBid(commitBid bool) (*types.Auction, *types.Bid, error) {
ctx, k := kts.sdkCtx, kts.auctionKeeper
accCount := 1
if commitBid {
accCount++
}
accounts := simtestutil.AddTestAddrs(kts.bankKeeper, bondDenomProvider{}, ctx, 2, math.NewInt(100))
params, err := k.GetParams(ctx)
if err != nil {
return nil, nil, err
}
auction, err := k.CreateAuction(ctx, types.NewMsgCreateAuction(*params, accounts[0]))
if err != nil {
return nil, nil, err
}
if commitBid {
bid, err := k.CommitBid(ctx, types.NewMsgCommitBid(auction.Id, testCommitHash, accounts[1]))
if err != nil {
return nil, nil, err
}
return auction, bid, nil
}
return auction, nil, nil
}