2022-12-13 01:10:36 +00:00
|
|
|
package utils_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
|
|
"github.com/cosmos/cosmos-sdk/testutil"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
|
|
|
|
"github.com/kava-labs/kava/x/community/client/utils"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestParseDepositProposal(t *testing.T) {
|
|
|
|
cdc := codec.NewAminoCodec(codec.NewLegacyAmino())
|
|
|
|
okJSON := testutil.WriteToNewTempFile(t, `
|
|
|
|
{
|
|
|
|
"title": "Community Pool Lend Deposit",
|
|
|
|
"description": "Deposit some KAVA from community pool to Lend!",
|
|
|
|
"amount": [
|
|
|
|
{
|
|
|
|
"denom": "ukava",
|
|
|
|
"amount": "100000000000"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
proposal, err := utils.ParseCommunityPoolLendDepositProposal(cdc, okJSON.Name())
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
expectedAmount, err := sdk.ParseCoinsNormalized("100000000000ukava")
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
require.Equal(t, "Community Pool Lend Deposit", proposal.Title)
|
|
|
|
require.Equal(t, "Deposit some KAVA from community pool to Lend!", proposal.Description)
|
|
|
|
require.Equal(t, expectedAmount, proposal.Amount)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestParseWithdrawProposal(t *testing.T) {
|
|
|
|
cdc := codec.NewAminoCodec(codec.NewLegacyAmino())
|
|
|
|
okJSON := testutil.WriteToNewTempFile(t, `
|
|
|
|
{
|
|
|
|
"title": "Community Pool Lend Withdraw",
|
|
|
|
"description": "Withdraw some KAVA from community pool to Lend!",
|
|
|
|
"amount": [
|
|
|
|
{
|
|
|
|
"denom": "ukava",
|
|
|
|
"amount": "100000000000"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
proposal, err := utils.ParseCommunityPoolLendWithdrawProposal(cdc, okJSON.Name())
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
expectedAmount, err := sdk.ParseCoinsNormalized("100000000000ukava")
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
require.Equal(t, "Community Pool Lend Withdraw", proposal.Title)
|
|
|
|
require.Equal(t, "Withdraw some KAVA from community pool to Lend!", proposal.Description)
|
|
|
|
require.Equal(t, expectedAmount, proposal.Amount)
|
|
|
|
}
|
2023-01-26 23:27:41 +00:00
|
|
|
|
|
|
|
func TestParseFileNoExists(t *testing.T) {
|
|
|
|
cdc := codec.NewAminoCodec(codec.NewLegacyAmino())
|
|
|
|
_, err := utils.ParseCommunityPoolLendDepositProposal(cdc, "not-a-file.json")
|
|
|
|
require.ErrorContains(t, err, "no such file or directory")
|
|
|
|
_, err = utils.ParseCommunityPoolLendWithdrawProposal(cdc, "not-a-file.json")
|
|
|
|
require.ErrorContains(t, err, "no such file or directory")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestParseFileMalformed(t *testing.T) {
|
|
|
|
cdc := codec.NewAminoCodec(codec.NewLegacyAmino())
|
|
|
|
malformed := testutil.WriteToNewTempFile(t, `
|
|
|
|
{
|
|
|
|
"title": "I'm malformed b/c there's no closing quote,
|
|
|
|
"description": "A description",
|
|
|
|
"amount": [{"denom": "ukava", "amount": "100000000000"}]
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
_, err := utils.ParseCommunityPoolLendDepositProposal(cdc, malformed.Name())
|
|
|
|
require.ErrorContains(t, err, "invalid character")
|
|
|
|
_, err = utils.ParseCommunityPoolLendWithdrawProposal(cdc, malformed.Name())
|
|
|
|
require.ErrorContains(t, err, "invalid character")
|
|
|
|
}
|