From dcbdf83b1c05ce1e912231901f7e100dbc89746a Mon Sep 17 00:00:00 2001 From: Petr Ivanov <petr.ivanov@tendermint.com> Date: Fri, 15 Dec 2023 16:44:32 +0400 Subject: [PATCH 1/6] add codecov pipeline step --- .github/workflows/test.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cbc89d67d..9b1cac24d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -59,4 +59,12 @@ jobs: go.sum - name: Test unit run: | - make test-unit + make test-unit-cover + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + with: + file: ./coverage.txt + fail_ci_if_error: true + verbose: true \ No newline at end of file From ad8cbf6009bb0b083df900aa4093ab3198a943e7 Mon Sep 17 00:00:00 2001 From: Petr Ivanov <petr.ivanov@tendermint.com> Date: Fri, 15 Dec 2023 17:22:24 +0400 Subject: [PATCH 2/6] decrease coverage intentionally --- x/vesting/keeper/grpc_query_test.go | 211 +++++++++++++--------------- 1 file changed, 100 insertions(+), 111 deletions(-) diff --git a/x/vesting/keeper/grpc_query_test.go b/x/vesting/keeper/grpc_query_test.go index 7f69b8f9b..5ffd41d58 100644 --- a/x/vesting/keeper/grpc_query_test.go +++ b/x/vesting/keeper/grpc_query_test.go @@ -1,113 +1,102 @@ package keeper_test -import ( - "fmt" - - sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - - "github.com/haqq-network/haqq/tests" - "github.com/haqq-network/haqq/testutil" - "github.com/haqq-network/haqq/x/vesting/types" -) - -func (suite *KeeperTestSuite) TestBalances() { - var ( - req *types.QueryBalancesRequest - expRes *types.QueryBalancesResponse - ) - addr := sdk.AccAddress(tests.GenerateAddress().Bytes()) - - testCases := []struct { - name string - malleate func() - expPass bool - }{ - { - "empty req", - func() { - req = &types.QueryBalancesRequest{} - }, - false, - }, - { - "invalid address", - func() { - req = &types.QueryBalancesRequest{ - Address: "haqq1", - } - }, - false, - }, - { - "invalid account - not found", - func() { - req = &types.QueryBalancesRequest{ - Address: addr.String(), - } - }, - false, - }, - { - "invalid account - not clawback vesting account", - func() { - baseAccount := authtypes.NewBaseAccountWithAddress(addr) - acc := suite.app.AccountKeeper.NewAccount(suite.ctx, baseAccount) - suite.app.AccountKeeper.SetAccount(suite.ctx, acc) - - req = &types.QueryBalancesRequest{ - Address: addr.String(), - } - }, - false, - }, - { - "valid", - func() { - vestingStart := s.ctx.BlockTime() - funder := sdk.AccAddress(types.ModuleName) - err := testutil.FundAccount(suite.ctx, suite.app.BankKeeper, funder, balances) - suite.Require().NoError(err) - - msg := types.NewMsgCreateClawbackVestingAccount( - funder, - addr, - vestingStart, - lockupPeriods, - vestingPeriods, - false, - ) - ctx := sdk.WrapSDKContext(suite.ctx) - _, err = suite.app.VestingKeeper.CreateClawbackVestingAccount(ctx, msg) - suite.Require().NoError(err) - - req = &types.QueryBalancesRequest{ - Address: addr.String(), - } - expRes = &types.QueryBalancesResponse{ - Locked: balances, - Unvested: balances, - Vested: nil, - } - }, - true, - }, - } - - for _, tc := range testCases { - suite.Run(fmt.Sprintf("Case %s", tc.name), func() { - suite.SetupTest() // reset - ctx := sdk.WrapSDKContext(suite.ctx) - tc.malleate() - suite.Commit() - - res, err := suite.queryClient.Balances(ctx, req) - if tc.expPass { - suite.Require().NoError(err) - suite.Require().Equal(expRes, res) - } else { - suite.Require().Error(err) - } - }) - } -} +//func (suite *KeeperTestSuite) TestBalances() { +// var ( +// req *types.QueryBalancesRequest +// expRes *types.QueryBalancesResponse +// ) +// addr := sdk.AccAddress(tests.GenerateAddress().Bytes()) +// +// testCases := []struct { +// name string +// malleate func() +// expPass bool +// }{ +// { +// "empty req", +// func() { +// req = &types.QueryBalancesRequest{} +// }, +// false, +// }, +// { +// "invalid address", +// func() { +// req = &types.QueryBalancesRequest{ +// Address: "haqq1", +// } +// }, +// false, +// }, +// { +// "invalid account - not found", +// func() { +// req = &types.QueryBalancesRequest{ +// Address: addr.String(), +// } +// }, +// false, +// }, +// { +// "invalid account - not clawback vesting account", +// func() { +// baseAccount := authtypes.NewBaseAccountWithAddress(addr) +// acc := suite.app.AccountKeeper.NewAccount(suite.ctx, baseAccount) +// suite.app.AccountKeeper.SetAccount(suite.ctx, acc) +// +// req = &types.QueryBalancesRequest{ +// Address: addr.String(), +// } +// }, +// false, +// }, +// { +// "valid", +// func() { +// vestingStart := s.ctx.BlockTime() +// funder := sdk.AccAddress(types.ModuleName) +// err := testutil.FundAccount(suite.ctx, suite.app.BankKeeper, funder, balances) +// suite.Require().NoError(err) +// +// msg := types.NewMsgCreateClawbackVestingAccount( +// funder, +// addr, +// vestingStart, +// lockupPeriods, +// vestingPeriods, +// false, +// ) +// ctx := sdk.WrapSDKContext(suite.ctx) +// _, err = suite.app.VestingKeeper.CreateClawbackVestingAccount(ctx, msg) +// suite.Require().NoError(err) +// +// req = &types.QueryBalancesRequest{ +// Address: addr.String(), +// } +// expRes = &types.QueryBalancesResponse{ +// Locked: balances, +// Unvested: balances, +// Vested: nil, +// } +// }, +// true, +// }, +// } +// +// for _, tc := range testCases { +// suite.Run(fmt.Sprintf("Case %s", tc.name), func() { +// suite.SetupTest() // reset +// ctx := sdk.WrapSDKContext(suite.ctx) +// tc.malleate() +// suite.Commit() +// +// res, err := suite.queryClient.Balances(ctx, req) +// if tc.expPass { +// suite.Require().NoError(err) +// suite.Require().Equal(expRes, res) +// } else { +// suite.Require().Error(err) +// } +// }) +// } +//} From 09aedee7e083e57f99e8facb5cfb6e25868e6a10 Mon Sep 17 00:00:00 2001 From: Petr Ivanov <petr.ivanov@tendermint.com> Date: Fri, 15 Dec 2023 17:40:18 +0400 Subject: [PATCH 3/6] increase coverage back --- x/vesting/keeper/grpc_query_test.go | 211 +++++++++++++++------------- 1 file changed, 111 insertions(+), 100 deletions(-) diff --git a/x/vesting/keeper/grpc_query_test.go b/x/vesting/keeper/grpc_query_test.go index 5ffd41d58..7f69b8f9b 100644 --- a/x/vesting/keeper/grpc_query_test.go +++ b/x/vesting/keeper/grpc_query_test.go @@ -1,102 +1,113 @@ package keeper_test -//func (suite *KeeperTestSuite) TestBalances() { -// var ( -// req *types.QueryBalancesRequest -// expRes *types.QueryBalancesResponse -// ) -// addr := sdk.AccAddress(tests.GenerateAddress().Bytes()) -// -// testCases := []struct { -// name string -// malleate func() -// expPass bool -// }{ -// { -// "empty req", -// func() { -// req = &types.QueryBalancesRequest{} -// }, -// false, -// }, -// { -// "invalid address", -// func() { -// req = &types.QueryBalancesRequest{ -// Address: "haqq1", -// } -// }, -// false, -// }, -// { -// "invalid account - not found", -// func() { -// req = &types.QueryBalancesRequest{ -// Address: addr.String(), -// } -// }, -// false, -// }, -// { -// "invalid account - not clawback vesting account", -// func() { -// baseAccount := authtypes.NewBaseAccountWithAddress(addr) -// acc := suite.app.AccountKeeper.NewAccount(suite.ctx, baseAccount) -// suite.app.AccountKeeper.SetAccount(suite.ctx, acc) -// -// req = &types.QueryBalancesRequest{ -// Address: addr.String(), -// } -// }, -// false, -// }, -// { -// "valid", -// func() { -// vestingStart := s.ctx.BlockTime() -// funder := sdk.AccAddress(types.ModuleName) -// err := testutil.FundAccount(suite.ctx, suite.app.BankKeeper, funder, balances) -// suite.Require().NoError(err) -// -// msg := types.NewMsgCreateClawbackVestingAccount( -// funder, -// addr, -// vestingStart, -// lockupPeriods, -// vestingPeriods, -// false, -// ) -// ctx := sdk.WrapSDKContext(suite.ctx) -// _, err = suite.app.VestingKeeper.CreateClawbackVestingAccount(ctx, msg) -// suite.Require().NoError(err) -// -// req = &types.QueryBalancesRequest{ -// Address: addr.String(), -// } -// expRes = &types.QueryBalancesResponse{ -// Locked: balances, -// Unvested: balances, -// Vested: nil, -// } -// }, -// true, -// }, -// } -// -// for _, tc := range testCases { -// suite.Run(fmt.Sprintf("Case %s", tc.name), func() { -// suite.SetupTest() // reset -// ctx := sdk.WrapSDKContext(suite.ctx) -// tc.malleate() -// suite.Commit() -// -// res, err := suite.queryClient.Balances(ctx, req) -// if tc.expPass { -// suite.Require().NoError(err) -// suite.Require().Equal(expRes, res) -// } else { -// suite.Require().Error(err) -// } -// }) -// } -//} +import ( + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + + "github.com/haqq-network/haqq/tests" + "github.com/haqq-network/haqq/testutil" + "github.com/haqq-network/haqq/x/vesting/types" +) + +func (suite *KeeperTestSuite) TestBalances() { + var ( + req *types.QueryBalancesRequest + expRes *types.QueryBalancesResponse + ) + addr := sdk.AccAddress(tests.GenerateAddress().Bytes()) + + testCases := []struct { + name string + malleate func() + expPass bool + }{ + { + "empty req", + func() { + req = &types.QueryBalancesRequest{} + }, + false, + }, + { + "invalid address", + func() { + req = &types.QueryBalancesRequest{ + Address: "haqq1", + } + }, + false, + }, + { + "invalid account - not found", + func() { + req = &types.QueryBalancesRequest{ + Address: addr.String(), + } + }, + false, + }, + { + "invalid account - not clawback vesting account", + func() { + baseAccount := authtypes.NewBaseAccountWithAddress(addr) + acc := suite.app.AccountKeeper.NewAccount(suite.ctx, baseAccount) + suite.app.AccountKeeper.SetAccount(suite.ctx, acc) + + req = &types.QueryBalancesRequest{ + Address: addr.String(), + } + }, + false, + }, + { + "valid", + func() { + vestingStart := s.ctx.BlockTime() + funder := sdk.AccAddress(types.ModuleName) + err := testutil.FundAccount(suite.ctx, suite.app.BankKeeper, funder, balances) + suite.Require().NoError(err) + + msg := types.NewMsgCreateClawbackVestingAccount( + funder, + addr, + vestingStart, + lockupPeriods, + vestingPeriods, + false, + ) + ctx := sdk.WrapSDKContext(suite.ctx) + _, err = suite.app.VestingKeeper.CreateClawbackVestingAccount(ctx, msg) + suite.Require().NoError(err) + + req = &types.QueryBalancesRequest{ + Address: addr.String(), + } + expRes = &types.QueryBalancesResponse{ + Locked: balances, + Unvested: balances, + Vested: nil, + } + }, + true, + }, + } + + for _, tc := range testCases { + suite.Run(fmt.Sprintf("Case %s", tc.name), func() { + suite.SetupTest() // reset + ctx := sdk.WrapSDKContext(suite.ctx) + tc.malleate() + suite.Commit() + + res, err := suite.queryClient.Balances(ctx, req) + if tc.expPass { + suite.Require().NoError(err) + suite.Require().Equal(expRes, res) + } else { + suite.Require().Error(err) + } + }) + } +} From 41e1610fd7ba08800795c45970798b729d165321 Mon Sep 17 00:00:00 2001 From: Petr Ivanov <petr.ivanov@tendermint.com> Date: Fri, 15 Dec 2023 17:56:04 +0400 Subject: [PATCH 4/6] don't require ci to pass for send report --- codecov.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/codecov.yml b/codecov.yml index cd301291f..8b2b09e77 100644 --- a/codecov.yml +++ b/codecov.yml @@ -3,6 +3,9 @@ # all repositories on Codecov. You may adjust the settings # below in your own codecov.yml in your repository. # +codecov: + require_ci_to_pass: false + coverage: precision: 2 round: down From 58cdeae1cd1ef3be19581c34aa18bf1b5d1cff5c Mon Sep 17 00:00:00 2001 From: Petr Ivanov <petr.ivanov@tendermint.com> Date: Fri, 15 Dec 2023 18:04:25 +0400 Subject: [PATCH 5/6] don't require code changes to send report --- codecov.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/codecov.yml b/codecov.yml index 8b2b09e77..f27b74441 100644 --- a/codecov.yml +++ b/codecov.yml @@ -36,7 +36,6 @@ coverage: comment: layout: "reach, diff, files" behavior: default # update if exists else create new - require_changes: true flags: app: From 5a5b5f80dd9d8ea50a3490c04b32430da7cc4990 Mon Sep 17 00:00:00 2001 From: Petr Ivanov <petr.ivanov@tendermint.com> Date: Fri, 15 Dec 2023 18:14:19 +0400 Subject: [PATCH 6/6] remove job args --- .github/workflows/test.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9b1cac24d..9ba7a507d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -63,8 +63,4 @@ jobs: - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3 env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.txt - fail_ci_if_error: true - verbose: true \ No newline at end of file + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file