Skip to content

Commit ea687cc

Browse files
author
beer-1
committed
increase code coverage
1 parent d868e3b commit ea687cc

4 files changed

Lines changed: 119 additions & 11 deletions

File tree

x/opchild/keeper/genesis_test.go

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,32 @@ func Test_GenesisImportExport(t *testing.T) {
2626
_, err = input.OPChildKeeper.IncreaseNextL1Sequence(ctx) // 3
2727
require.NoError(t, err)
2828

29-
err = input.OPChildKeeper.DenomPairs.Set(ctx, "foo", "bar")
29+
// set denom pairs
30+
l2DenomFoo := ophosttypes.L2Denom(1, "foo")
31+
l2DenomBar := ophosttypes.L2Denom(1, "bar")
32+
err = input.OPChildKeeper.DenomPairs.Set(ctx, l2DenomFoo, "foo")
33+
require.NoError(t, err)
34+
err = input.OPChildKeeper.DenomPairs.Set(ctx, l2DenomBar, "bar")
35+
require.NoError(t, err)
36+
37+
// set migration info
38+
err = input.OPChildKeeper.SetMigrationInfo(ctx, types.MigrationInfo{
39+
Denom: l2DenomFoo,
40+
IbcChannelId: "channel-0",
41+
IbcPortId: "transfer",
42+
})
43+
require.NoError(t, err)
44+
err = input.OPChildKeeper.SetMigrationInfo(ctx, types.MigrationInfo{
45+
Denom: l2DenomBar,
46+
IbcChannelId: "channel-1",
47+
IbcPortId: "transfer",
48+
})
49+
require.NoError(t, err)
50+
51+
// set ibc to l2 denom map
52+
err = input.OPChildKeeper.SetIBCToL2DenomMap(ctx, "ibc/foo", l2DenomFoo)
53+
require.NoError(t, err)
54+
err = input.OPChildKeeper.SetIBCToL2DenomMap(ctx, "ibc/bar", l2DenomBar)
3055
require.NoError(t, err)
3156

3257
genState := input.OPChildKeeper.ExportGenesis(ctx)
@@ -49,6 +74,18 @@ func Test_GenesisImportExport(t *testing.T) {
4974
Metadata: []byte("metadata"),
5075
},
5176
}
77+
genState.MigrationInfos = []types.MigrationInfo{
78+
{
79+
Denom: l2DenomFoo,
80+
IbcChannelId: "channel-0",
81+
IbcPortId: "transfer",
82+
},
83+
{
84+
Denom: l2DenomBar,
85+
IbcChannelId: "channel-1",
86+
IbcPortId: "transfer",
87+
},
88+
}
5289

5390
input.OPChildKeeper.InitGenesis(ctx, genState)
5491
genState_ := input.OPChildKeeper.ExportGenesis(ctx)

x/opchild/keeper/migration_test.go

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -395,11 +395,15 @@ func Test_MigrateToken_Success(t *testing.T) {
395395
input.Faucet.Fund(ctx, sender, sdk.NewCoins(amount)...)
396396

397397
// Test token migration
398-
ibcCoin, err := input.OPChildKeeper.MigrateToken(ctx, migrationInfo, sender, amount)
398+
_, err = ms.MigrateToken(ctx, &opchildtypes.MsgMigrateToken{
399+
Sender: sender.String(),
400+
Amount: amount,
401+
})
399402
require.NoError(t, err)
400403

401404
// Verify the IBC coin was created correctly
402405
expectedIBCDenom := transfertypes.GetTransferCoin(migrationInfo.IbcPortId, migrationInfo.IbcChannelId, "test1", amount.Amount)
406+
ibcCoin := input.BankKeeper.GetBalance(ctx, sender, expectedIBCDenom.Denom)
403407
require.Equal(t, expectedIBCDenom, ibcCoin)
404408

405409
// Verify sender balance is now 0 for the original token
@@ -437,22 +441,28 @@ func Test_MigrateToken_InvalidAmount(t *testing.T) {
437441

438442
// Test with zero amount
439443
zeroAmount := sdk.NewCoin("test1", math.NewInt(0))
440-
_, err = input.OPChildKeeper.MigrateToken(ctx, migrationInfo, addrs[0], zeroAmount)
444+
_, err = ms.MigrateToken(ctx, &opchildtypes.MsgMigrateToken{
445+
Sender: addrs[0].String(),
446+
Amount: zeroAmount,
447+
})
441448
require.Error(t, err)
442-
require.Contains(t, err.Error(), "amount is not positive")
449+
require.Contains(t, err.Error(), "invalid amount")
443450

444451
// Test with negative amount - create coin directly to avoid panic
445452
negativeAmount := sdk.Coin{
446453
Denom: "test1",
447454
Amount: math.NewInt(-100),
448455
}
449-
_, err = input.OPChildKeeper.MigrateToken(ctx, migrationInfo, addrs[0], negativeAmount)
456+
_, err = ms.MigrateToken(ctx, &opchildtypes.MsgMigrateToken{
457+
Sender: addrs[0].String(),
458+
Amount: negativeAmount,
459+
})
450460
require.Error(t, err)
451-
require.Contains(t, err.Error(), "amount is not positive")
461+
require.Contains(t, err.Error(), "invalid amount")
452462
}
453463

454-
// Test_MigrateToken_DenomMismatch tests token migration with denom mismatch
455-
func Test_MigrateToken_DenomMismatch(t *testing.T) {
464+
// Test_MigrateToken_NotFound tests token migration with not found migration info
465+
func Test_MigrateToken_NotFound(t *testing.T) {
456466
ctx, input := createDefaultTestInput(t)
457467

458468
// Set up denom pair first (L1 token)
@@ -477,9 +487,12 @@ func Test_MigrateToken_DenomMismatch(t *testing.T) {
477487

478488
// Test with mismatched denom
479489
wrongDenomAmount := sdk.NewCoin("test2", math.NewInt(100))
480-
_, err = input.OPChildKeeper.MigrateToken(ctx, migrationInfo, addrs[0], wrongDenomAmount)
490+
_, err = ms.MigrateToken(ctx, &opchildtypes.MsgMigrateToken{
491+
Sender: addrs[0].String(),
492+
Amount: wrongDenomAmount,
493+
})
481494
require.Error(t, err)
482-
require.Contains(t, err.Error(), "migration info denom does not match")
495+
require.Contains(t, err.Error(), "migration info not found")
483496
}
484497

485498
// Test_MigrateToken_InsufficientBalance tests token migration with insufficient balance
@@ -508,7 +521,10 @@ func Test_MigrateToken_InsufficientBalance(t *testing.T) {
508521

509522
// Test with amount larger than balance
510523
largeAmount := sdk.NewCoin("test1", math.NewInt(1000))
511-
_, err = input.OPChildKeeper.MigrateToken(ctx, migrationInfo, addrs[0], largeAmount)
524+
_, err = ms.MigrateToken(ctx, &opchildtypes.MsgMigrateToken{
525+
Sender: addrs[0].String(),
526+
Amount: largeAmount,
527+
})
512528
require.Error(t, err)
513529
require.Contains(t, err.Error(), "insufficient funds")
514530
}

x/opchild/keeper/querier_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import (
1111
testutilsims "github.com/cosmos/cosmos-sdk/testutil/sims"
1212
sdk "github.com/cosmos/cosmos-sdk/types"
1313

14+
transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
15+
1416
"github.com/initia-labs/OPinit/x/opchild/keeper"
1517
"github.com/initia-labs/OPinit/x/opchild/types"
1618
ophosttypes "github.com/initia-labs/OPinit/x/ophost/types"
@@ -139,3 +141,39 @@ func Test_QueryBaseDenom(t *testing.T) {
139141

140142
require.Equal(t, types.QueryBaseDenomResponse{BaseDenom: "base_denom"}, *res)
141143
}
144+
145+
func Test_QueryMigrationInfo(t *testing.T) {
146+
ctx, input := createDefaultTestInput(t)
147+
q := keeper.NewQuerier(&input.OPChildKeeper)
148+
149+
denom := "l2/denom"
150+
port := "transfer"
151+
channel := "channel-0"
152+
migrationInfo := types.MigrationInfo{
153+
Denom: denom,
154+
IbcChannelId: channel,
155+
IbcPortId: port,
156+
}
157+
158+
_, err := q.MigrationInfo(ctx, &types.QueryMigrationInfoRequest{Denom: denom})
159+
require.Error(t, err) // migration info not found
160+
161+
// register migration info
162+
require.NoError(t, input.OPChildKeeper.SetMigrationInfo(ctx, migrationInfo))
163+
164+
_, err = q.MigrationInfo(ctx, &types.QueryMigrationInfoRequest{Denom: denom})
165+
require.Error(t, err) // base denom not found
166+
167+
// set base denom
168+
require.NoError(t, input.OPChildKeeper.DenomPairs.Set(ctx, denom, "test1"))
169+
170+
res, err := q.MigrationInfo(ctx, &types.QueryMigrationInfoRequest{Denom: denom})
171+
require.NoError(t, err)
172+
173+
ibcDenom := transfertypes.ParseDenomTrace(transfertypes.GetPrefixedDenom(migrationInfo.IbcPortId, migrationInfo.IbcChannelId, "test1")).IBCDenom()
174+
require.Equal(t, types.QueryMigrationInfoResponse{MigrationInfo: types.MigrationInfo{
175+
Denom: denom,
176+
IbcChannelId: channel,
177+
IbcPortId: port,
178+
}, IbcDenom: ibcDenom}, *res)
179+
}

x/ophost/keeper/querier_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,3 +296,20 @@ func Test_QueryBatchInfos(t *testing.T) {
296296
}, res.BatchInfos,
297297
)
298298
}
299+
300+
func Test_QueryMigrationInfo(t *testing.T) {
301+
ctx, input := createDefaultTestInput(t)
302+
q := keeper.NewQuerier(input.OPHostKeeper)
303+
_, err := q.MigrationInfo(ctx, &types.QueryMigrationInfoRequest{BridgeId: 1, L1Denom: "l1denom"})
304+
require.Error(t, err)
305+
306+
migrationInfo := types.MigrationInfo{
307+
BridgeId: 1,
308+
L1Denom: "l1denom",
309+
}
310+
require.NoError(t, input.OPHostKeeper.SetMigrationInfo(ctx, migrationInfo))
311+
312+
res, err := q.MigrationInfo(ctx, &types.QueryMigrationInfoRequest{BridgeId: 1, L1Denom: "l1denom"})
313+
require.NoError(t, err)
314+
require.Equal(t, migrationInfo, res.MigrationInfo)
315+
}

0 commit comments

Comments
 (0)