-
Hieu Vu authored
* create func to check alter state * add tests * format * Update app/apptesting/test_suite.go Co-authored-by:
Roman <roman@osmosis.team> * remove fmt * epochs: try to use Invoke * gamm: use Invoke * incentives: use Invoke * lockup: use Invoke * mint: use Invoke * pool-incentives: use Invoke * superfluid: use Invoke * tokenfactory * txfees * format * fix Co-authored-by:
Roman <roman@osmosis.team>
package cli_test
import (
gocontext "context"
"testing"
"time"
"github.com/stretchr/testify/suite"
"github.com/osmosis-labs/osmosis/v12/app/apptesting"
"github.com/osmosis-labs/osmosis/v12/x/lockup/types"
sdk "github.com/cosmos/cosmos-sdk/types"
)
type QueryTestSuite struct {
apptesting.KeeperTestHelper
queryClient types.QueryClient
}
func (s *QueryTestSuite) SetupSuite() {
s.Setup()
s.queryClient = types.NewQueryClient(s.QueryHelper)
// create a pool
s.PrepareBalancerPool()
// set up lock with id = 1
s.LockTokens(s.TestAccs[0], sdk.Coins{sdk.NewCoin("gamm/pool/1", sdk.NewInt(1000000))}, time.Hour*24)
s.Commit()
}
func (s *QueryTestSuite) TestQueriesNeverAlterState() {
testCases := []struct {
name string
query string
input interface{}
output interface{}
}{
{
"Query account locked coins",
"/osmosis.lockup.Query/AccountLockedCoins",
&types.AccountLockedCoinsRequest{Owner: s.TestAccs[0].String()},
&types.AccountLockedCoinsResponse{},
},
{
"Query account locked by duration",
"/osmosis.lockup.Query/AccountLockedDuration",
&types.AccountLockedDurationRequest{Owner: s.TestAccs[0].String(), Duration: time.Hour * 24},
&types.AccountLockedDurationResponse{},
},
{
"Query account locked longer than given duration",
"/osmosis.lockup.Query/AccountLockedLongerDuration",
&types.AccountLockedLongerDurationRequest{Owner: s.TestAccs[0].String(), Duration: time.Hour},
&types.AccountLockedLongerDurationResponse{},
},
{
"Query account locked by denom that longer than given duration",
"/osmosis.lockup.Query/AccountLockedLongerDurationDenom",
&types.AccountLockedLongerDurationDenomRequest{Owner: s.TestAccs[0].String(), Duration: time.Hour, Denom: "gamm/pool/1"},
&types.AccountLockedLongerDurationDenomResponse{},
},
{
"Query account locked longer than given duration not unlocking",
"/osmosis.lockup.Query/AccountLockedLongerDurationNotUnlockingOnly",
&types.AccountLockedLongerDurationNotUnlockingOnlyRequest{Owner: s.TestAccs[0].String(), Duration: time.Hour},
&types.AccountLockedLongerDurationNotUnlockingOnlyResponse{},
},
{
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
"Query account locked in past time",
"/osmosis.lockup.Query/AccountLockedPastTime",
&types.AccountLockedPastTimeRequest{Owner: s.TestAccs[0].String()},
&types.AccountLockedPastTimeResponse{},
},
{
"Query account locked in past time by denom",
"/osmosis.lockup.Query/AccountLockedPastTimeDenom",
&types.AccountLockedPastTimeDenomRequest{Owner: s.TestAccs[0].String(), Denom: "gamm/pool/1"},
&types.AccountLockedPastTimeDenomResponse{},
},
{
" Query account locked in past time that not unlocking",
"/osmosis.lockup.Query/AccountLockedPastTimeNotUnlockingOnly",
&types.AccountLockedPastTimeNotUnlockingOnlyRequest{Owner: s.TestAccs[0].String()},
&types.AccountLockedPastTimeNotUnlockingOnlyResponse{},
},
{
"Query account unlockable coins",
"/osmosis.lockup.Query/AccountUnlockableCoins",
&types.AccountUnlockableCoinsRequest{Owner: s.TestAccs[0].String()},
&types.AccountUnlockableCoinsResponse{},
},
{
"Query account unlocked before given time",
"/osmosis.lockup.Query/AccountUnlockedBeforeTime",
&types.AccountUnlockedBeforeTimeRequest{Owner: s.TestAccs[0].String()},
&types.AccountUnlockedBeforeTimeResponse{},
},
{
"Query account unlocking coins",
"/osmosis.lockup.Query/AccountUnlockingCoins",
&types.AccountUnlockingCoinsRequest{Owner: s.TestAccs[0].String()},
&types.AccountUnlockingCoinsResponse{},
},
{
"Query lock by id",
"/osmosis.lockup.Query/LockedByID",
&types.LockedRequest{LockId: 1},
&types.LockedResponse{},
},
{
"Query lock by denom",
"/osmosis.lockup.Query/LockedDenom",
&types.LockedDenomRequest{Duration: time.Hour * 24, Denom: "gamm/pool/1"},
&types.LockedDenomResponse{},
},
{
"Query module balances",
"/osmosis.lockup.Query/ModuleBalance",
&types.ModuleBalanceRequest{},
&types.ModuleBalanceResponse{},
},
{
"Query module locked amount",
"/osmosis.lockup.Query/ModuleLockedAmount",
&types.ModuleLockedAmountRequest{},
&types.ModuleLockedAmountResponse{},
},
{
"Query synthetic lock by id",
"/osmosis.lockup.Query/SyntheticLockupsByLockupID",
&types.SyntheticLockupsByLockupIDRequest{LockId: 1},
&types.SyntheticLockupsByLockupIDResponse{},
},
}
for _, tc := range testCases {
tc := tc
141142143144145146147148149150151152153
s.Run(tc.name, func() {
s.SetupSuite()
err := s.QueryHelper.Invoke(gocontext.Background(), tc.query, tc.input, tc.output)
s.Require().NoError(err)
s.StateNotAltered()
})
}
}
func TestQueryTestSuite(t *testing.T) {
suite.Run(t, new(QueryTestSuite))
}