planetmint-go/x/dao/keeper/msg_server_redeem_claim_test.go
Lorenz Herzberger a38fe781ba
187 implement rddl claim (#298)
* ignite scaffold map redeem-claim amount issued:bool --module dao --index beneficiary,liquid-tx-hash

* revert: remove autogenerated delete redeem claim logic

* fix: replace deprecated autogenerated sdkerrors with errorsmod

* refactor: rename issued to confirmed on redeem claim

* feat: add claim address param

* test: add test for restricted msg UpdateRedeemClaim

* refactor: update redeem claim key creation and messages

* feat: add SendUpdateRedeemCLaim to util

* feat: add RedeemClaimDecorator for ante package

* ignite scaffold message confirm-redeem-claim id:uint beneficiary:string --module dao

* feat: add handleConfirmRedeemClaim to ante handler

* feat: add handleUpdateRedeemClaim to ante handler

* feat: implement ConfirmRedeemClaim msg handler

* test: add redeem claim test and adjust e2e test suite

* fix: make use of uint to rddl string util in CreateRedeemClaim

* fix: linter and staticcheck errors

* ignite scaffold query redeem-claim-by-liquid-tx-hash liquid-tx-hash --response redeem-claim:RedeemClaim --module dao

* feat: add RedeemClaimByLiquidTXHash store capabilities

* test: add QueryRedeemClaimByLiquidTxHash to e2e test suite

* feat: add RedeemClaimDecorator to ante handler chain

* fix: remove redundant planetmint-go from service path

* fix: linter and staticcheck errors

* fix: go vet errors

* fix: remove unused autogenerated simulation

* fix: broken simulation

* fix: openapi.yml

* revert: remove autogenerated redundant test file that causes data race on pipeline

* feat: burn claim on CreateRedeemClaim

* fix: linter error

* test: fix mock bankkeeper for msg server test

* fix: reissuance test if statement

* chore: removed TODO comment

* fix: typo in redeem claim error msg

* revert: remove autogenerated genesis state

* fix: dao module simulation

* revert: remove unused function

* fix: linter errors

* fix: linter error

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-02-01 09:57:58 +01:00

94 lines
2.3 KiB
Go

package keeper_test
import (
"strconv"
"testing"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/stretchr/testify/require"
keepertest "github.com/planetmint/planetmint-go/testutil/keeper"
"github.com/planetmint/planetmint-go/testutil/sample"
"github.com/planetmint/planetmint-go/x/dao/keeper"
"github.com/planetmint/planetmint-go/x/dao/types"
)
// Prevent strconv unused error
var _ = strconv.IntSize
func TestRedeemClaimMsgServerCreate(t *testing.T) {
t.Parallel()
k, ctx := keepertest.DaoKeeper(t)
srv := keeper.NewMsgServerImpl(*k)
wctx := sdk.WrapSDKContext(ctx)
creator := sample.ConstBech32Addr
for i := 0; i < 5; i++ {
expected := &types.MsgCreateRedeemClaim{Creator: creator,
Beneficiary: strconv.Itoa(i),
}
_, err := srv.CreateRedeemClaim(wctx, expected)
require.NoError(t, err)
rst, found := k.GetRedeemClaim(ctx,
expected.Beneficiary,
uint64(0),
)
require.True(t, found)
require.Equal(t, expected.Creator, rst.Creator)
}
}
func TestRedeemClaimMsgServerUpdate(t *testing.T) {
t.Parallel()
creator := sample.ConstBech32Addr
tests := []struct {
desc string
request *types.MsgUpdateRedeemClaim
err error
}{
{
desc: "Completed",
request: &types.MsgUpdateRedeemClaim{Creator: creator,
Beneficiary: strconv.Itoa(0),
LiquidTxHash: strconv.Itoa(0),
},
},
{
desc: "KeyNotFound",
request: &types.MsgUpdateRedeemClaim{Creator: creator,
Beneficiary: strconv.Itoa(100000),
LiquidTxHash: strconv.Itoa(100000),
},
err: sdkerrors.ErrKeyNotFound,
},
}
for _, tc := range tests {
tc := tc
t.Run(tc.desc, func(t *testing.T) {
t.Parallel()
k, ctx := keepertest.DaoKeeper(t)
srv := keeper.NewMsgServerImpl(*k)
wctx := sdk.WrapSDKContext(ctx)
expected := &types.MsgCreateRedeemClaim{Creator: creator,
Beneficiary: strconv.Itoa(0),
}
_, err := srv.CreateRedeemClaim(wctx, expected)
require.NoError(t, err)
_, err = srv.UpdateRedeemClaim(wctx, tc.request)
if tc.err != nil {
require.ErrorIs(t, err, tc.err)
} else {
require.NoError(t, err)
rst, found := k.GetRedeemClaim(ctx,
expected.Beneficiary,
uint64(0),
)
require.True(t, found)
require.Equal(t, expected.Creator, rst.Creator)
}
})
}
}