Skip to content

Commit

Permalink
add event and unittest
Browse files Browse the repository at this point in the history
  • Loading branch information
tkxkd0159 committed May 8, 2024
1 parent 62c4b01 commit 88bcdfe
Show file tree
Hide file tree
Showing 5 changed files with 351 additions and 33 deletions.
16 changes: 16 additions & 0 deletions docs/core/proto-docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -776,6 +776,7 @@
- [EventProvision](#lbm.fbridge.v1.EventProvision)
- [EventSuggestRole](#lbm.fbridge.v1.EventSuggestRole)
- [EventTransfer](#lbm.fbridge.v1.EventTransfer)
- [EventUpdateParams](#lbm.fbridge.v1.EventUpdateParams)

- [lbm/fbridge/v1/genesis.proto](#lbm/fbridge/v1/genesis.proto)
- [BlockSeqInfo](#lbm.fbridge.v1.BlockSeqInfo)
Expand Down Expand Up @@ -11722,6 +11723,21 @@ VoteOption enumerates the valid vote options for a given role proposal.




<a name="lbm.fbridge.v1.EventUpdateParams"></a>

### EventUpdateParams



| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `params` | [Params](#lbm.fbridge.v1.Params) | | |





<!-- end messages -->

<!-- end enums -->
Expand Down
4 changes: 4 additions & 0 deletions proto/lbm/fbridge/v1/event.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ option go_package = "github.com/Finschia/finschia-sdk/x/fbridge/types";
import "gogoproto/gogo.proto";
import "lbm/fbridge/v1/fbridge.proto";

message EventUpdateParams {
Params params = 1 [(gogoproto.nullable) = false];
}

message EventTransfer {
// the sequence number of the bridge request
uint64 seq = 1;
Expand Down
6 changes: 6 additions & 0 deletions x/fbridge/keeper/msg_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ func (m msgServer) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParam
return nil, err
}

if err := ctx.EventManager().EmitTypedEvent(&types.EventUpdateParams{
Params: msg.Params,
}); err != nil {
panic(err)
}

return &types.MsgUpdateParamsResponse{}, nil
}

Expand Down
118 changes: 118 additions & 0 deletions x/fbridge/keeper/params_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
package keeper

import (

Check failure on line 3 in x/fbridge/keeper/params_test.go

View workflow job for this annotation

GitHub Actions / golangci-lint

File is not `gofumpt`-ed with `-extra` (gofumpt)
"github.com/stretchr/testify/require"

Check failure on line 4 in x/fbridge/keeper/params_test.go

View workflow job for this annotation

GitHub Actions / golangci-lint

File is not `gci`-ed with --skip-generated -s standard -s default -s prefix(github.com/Finschia/finschia-sdk) --custom-order (gci)
"testing"

Check failure on line 5 in x/fbridge/keeper/params_test.go

View workflow job for this annotation

GitHub Actions / golangci-lint

File is not `gofumpt`-ed with `-extra` (gofumpt)

Check failure on line 6 in x/fbridge/keeper/params_test.go

View workflow job for this annotation

GitHub Actions / golangci-lint

File is not `gci`-ed with --skip-generated -s standard -s default -s prefix(github.com/Finschia/finschia-sdk) --custom-order (gci)
"github.com/Finschia/finschia-sdk/x/fbridge/testutil"
"github.com/Finschia/finschia-sdk/x/fbridge/types"
)

func TestSetParams(t *testing.T) {
key, memKey, ctx, encCfg, authKeeper, bankKeeper, _ := testutil.PrepareFbridgeTest(t, 0)
keeper := NewKeeper(encCfg.Codec, key, memKey, authKeeper, bankKeeper, types.DefaultAuthority().String())

tcs := map[string]struct {
malleate func() types.Params
isErr bool
}{
"invalid guardian trust level": {
malleate: func() types.Params {
params := types.Params{}
params.GuardianTrustLevel = types.Fraction{Numerator: 4, Denominator: 3}
return params
},
isErr: true,
},
"invalid operator trust level": {
malleate: func() types.Params {
params := types.Params{}
params.GuardianTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.OperatorTrustLevel = types.Fraction{Numerator: 4, Denominator: 3}
return params
},
isErr: true,
},
"invalid judge trust level": {
malleate: func() types.Params {
params := types.Params{}
params.GuardianTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.OperatorTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.JudgeTrustLevel = types.Fraction{Numerator: 4, Denominator: 3}
return params
},
isErr: true,
},
"invalid proposal period": {
malleate: func() types.Params {
params := types.Params{}
params.GuardianTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.OperatorTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.JudgeTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.ProposalPeriod = 0
return params
},
isErr: true,
},
"invalid timelock period": {
malleate: func() types.Params {
params := types.Params{}
params.GuardianTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.OperatorTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.JudgeTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.ProposalPeriod = 10
params.TimelockPeriod = 0
return params
},
isErr: true,
},
"invalid target denom": {
malleate: func() types.Params {
params := types.Params{}
params.GuardianTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.OperatorTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.JudgeTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.ProposalPeriod = 10
params.TimelockPeriod = 20
params.TargetDenom = ""
return params
},
isErr: true,
},
"missing some fields": {
malleate: func() types.Params {
params := types.Params{}
params.GuardianTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.OperatorTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.JudgeTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.TimelockPeriod = 20
return params
},
isErr: true,
},
"valid": {
malleate: func() types.Params {
params := types.Params{}
params.GuardianTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.OperatorTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.JudgeTrustLevel = types.Fraction{Numerator: 2, Denominator: 3}
params.ProposalPeriod = 10
params.TimelockPeriod = 20
params.TargetDenom = "stake"
return params
},
isErr: false,
},
}

for name, tc := range tcs {
t.Run(name, func(t *testing.T) {
params := tc.malleate()
if tc.isErr {
require.Error(t, keeper.SetParams(ctx, params))
} else {
require.NoError(t, keeper.SetParams(ctx, params))
}
})
}
}
Loading

0 comments on commit 88bcdfe

Please sign in to comment.