0g-chain/x/community/client/utils/utils_test.go
Robert Pirtle d05484cf88
update lend proposals to use community pool (#1460)
* point community pool lend proposals at fee pool

* update community pool lend proposal tests

* remove unused begin blocker

* increase test coverage

* fix x/community proposal comments
2023-01-26 15:27:41 -08:00

87 lines
2.6 KiB
Go

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)
}
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")
}