apptesting

package
v24.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2024 License: Apache-2.0 Imports: 34 Imported by: 0

README

  • The unit testing framework leverages the ibctesting package
  • See ibc-go/testing for an overview

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	StrideChainID   = "STRIDE"
	ProviderChainID = "PROVIDER"
	FirstClientId   = "07-tendermint-0"

	TestIcaVersion = string(icatypes.ModuleCdc.MustMarshalJSON(&icatypes.Metadata{
		Version:                icatypes.Version,
		ControllerConnectionId: ibctesting.FirstConnectionID,
		HostConnectionId:       ibctesting.FirstConnectionID,
		Encoding:               icatypes.EncodingProtobuf,
		TxType:                 icatypes.TxTypeSDKMultiMsg,
	}))
)

Functions

func CopyConnectionAndClientToPath

func CopyConnectionAndClientToPath(path *ibctesting.Path, pathToCopy *ibctesting.Path) *ibctesting.Path

In ibctesting, there's no easy way to create a new channel on an existing connection To get around this, this helper function will copy the client/connection info from an existing channel We use this when creating ICA channels, because we want to reuse the same connections/clients from the transfer channel

func CreateRandomAccounts

func CreateRandomAccounts(numAccts int) []sdk.AccAddress

Generate random account addresss

func GenerateTestAddrs

func GenerateTestAddrs() (string, string)

Generates a valid and invalid test address (used for non-keeper tests)

func GetAdminAddress

func GetAdminAddress() (address string, ok bool)

Grabs an admin address to test validate basic on admin txs

func ICAPacketAcknowledgement

func ICAPacketAcknowledgement(t *testing.T, msgType string, msgResponses []proto.Message) channeltypes.Acknowledgement

Constructs an ICA Packet Acknowledgement compatible with ibc-go v5+

func ICAPacketAcknowledgementLegacy

func ICAPacketAcknowledgementLegacy(t *testing.T, msgType string, msgResponses []proto.Message) channeltypes.Acknowledgement

Constructs an legacy ICA Packet Acknowledgement compatible with ibc-go version v4 and lower

func NewIcaPath

func NewIcaPath(chainA *ibctesting.TestChain, chainB *ibctesting.TestChain, providerChain *ibctesting.TestChain) *ibctesting.Path

Creates an ICA channel between two chains

func NewTransferPath

func NewTransferPath(chainA *ibctesting.TestChain, chainB *ibctesting.TestChain, providerChain *ibctesting.TestChain) *ibctesting.Path

Creates a transfer channel between two chains

func SetupConfig

func SetupConfig()

Modifies sdk config to have stride address prefixes (used for non-keeper tests)

Types

type AppTestHelper

type AppTestHelper struct {
	suite.Suite

	App         *app.StrideApp
	HostApp     *simapp.SimApp
	ProviderApp e2e.ProviderApp

	IbcEnabled    bool
	Coordinator   *ibctesting.Coordinator
	StrideChain   *ibctesting.TestChain
	HostChain     *ibctesting.TestChain
	ProviderChain *ibctesting.TestChain
	TransferPath  *ibctesting.Path

	QueryHelper  *baseapp.QueryServiceTestHelper
	TestAccs     []sdk.AccAddress
	IcaAddresses map[string]string
	Ctx          sdk.Context
}

func (*AppTestHelper) CheckEventTypeEmitted

func (s *AppTestHelper) CheckEventTypeEmitted(eventType string) []sdk.Event

Checks if an event was emitted

func (*AppTestHelper) CheckEventTypeNotEmitted

func (s *AppTestHelper) CheckEventTypeNotEmitted(eventType string)

Checks that an event was not emitted

func (*AppTestHelper) CheckEventValueEmitted

func (s *AppTestHelper) CheckEventValueEmitted(eventType, attributeKey, expectedValue string)

Checks that an event was emitted and that the value matches expectations

func (*AppTestHelper) CheckEventValueNotEmitted

func (s *AppTestHelper) CheckEventValueNotEmitted(eventType, attributeKey, expectedValue string)

Checks that there was no event emitted that matches the event type, attribute, and value

func (*AppTestHelper) CheckICATxNotSubmitted

func (s *AppTestHelper) CheckICATxNotSubmitted(portId, channelId string, icaFunction func() error)

Helper function to check if an ICA was NOT submitted by seeing if the sequence number did not increment

func (*AppTestHelper) CheckICATxSubmitted

func (s *AppTestHelper) CheckICATxSubmitted(portId, channelId string, icaFunction func() error)

Helper function to check if an ICA was submitted by seeing if the sequence number incremented

func (*AppTestHelper) CheckMultipleICATxSubmitted

func (s *AppTestHelper) CheckMultipleICATxSubmitted(portId, channelId string, icaFunction func() error)

Helper function to check if multiple ICA txs were submitted by seeing if the sequence number incremented by more than 1

func (*AppTestHelper) CompareCoins

func (s *AppTestHelper) CompareCoins(expectedCoin sdk.Coin, actualCoin sdk.Coin, msg string)

Helper function to compare coins with a more legible error

func (*AppTestHelper) ConfirmUpgradeSucceededs

func (s *AppTestHelper) ConfirmUpgradeSucceededs(upgradeName string, upgradeHeight int64)

func (*AppTestHelper) CreateAndStoreIBCDenom

func (s *AppTestHelper) CreateAndStoreIBCDenom(baseDenom string) (ibcDenom string)

Creates and stores an IBC denom from a base denom on transfer channel-0 This is only required for tests that use the transfer keeper and require that the IBC denom is present in the store

Returns the IBC hash

func (*AppTestHelper) CreateICAChannel

func (s *AppTestHelper) CreateICAChannel(owner string) (channelID, portID string)

Creates an ICA channel through ibctesting Also creates a transfer channel is if hasn't been done yet

func (*AppTestHelper) CreateTransferChannel

func (s *AppTestHelper) CreateTransferChannel(hostChainID string)

Creates clients, connections, and a transfer channel between stride and a host chain

func (*AppTestHelper) ExtractAddressAndDenomFromBankPrefix

func (s *AppTestHelper) ExtractAddressAndDenomFromBankPrefix(data []byte) (address, denom string)

Extracts the address and denom from a bank store prefix Useful for testing balance ICQs as it can confirm that the serialized query request data has the proper address and denom

func (*AppTestHelper) FundAccount

func (s *AppTestHelper) FundAccount(acc sdk.AccAddress, amount sdk.Coin)

Mints and sends coins to a user account

func (*AppTestHelper) FundModuleAccount

func (s *AppTestHelper) FundModuleAccount(moduleName string, amount sdk.Coin)

Mints coins directly to a module account

func (*AppTestHelper) GetBankStoreKeyPrefix

func (s *AppTestHelper) GetBankStoreKeyPrefix(address, denom string) []byte

Returns the bank store key prefix for an address and denom Useful for testing balance ICQs

func (*AppTestHelper) GetIBCDenomTrace

func (s *AppTestHelper) GetIBCDenomTrace(denom string) transfertypes.DenomTrace

Get an IBC denom from it's native host denom This assumes the transfer channel is channel-0

func (*AppTestHelper) MarshalledICS20PacketData

func (s *AppTestHelper) MarshalledICS20PacketData() sdk.AccAddress

func (*AppTestHelper) MockClientAndConnection

func (s *AppTestHelper) MockClientAndConnection(chainId, clientId, connectionId string)

Helper function to mock out a client and connection to test mapping from connection ID back to chain ID This also mocks out the consensus state to enable testing registering interchain accounts

func (*AppTestHelper) MockClientLatestHeight

func (s *AppTestHelper) MockClientLatestHeight(height uint64)

Helper function to mock out a connection, client, and revision height

func (*AppTestHelper) MockICAChannel

func (s *AppTestHelper) MockICAChannel(connectionId, channelId, owner, address string)

Helper function to mock out an ICA address

func (*AppTestHelper) MustGetNextSequenceNumber

func (s *AppTestHelper) MustGetNextSequenceNumber(portId, channelId string) uint64

Helper function to get the next sequence number for testing when an ICA was submitted

func (*AppTestHelper) RegisterInterchainAccount

func (s *AppTestHelper) RegisterInterchainAccount(endpoint *ibctesting.Endpoint, owner string)

Register's a new ICA account on the next channel available This function assumes a connection already exists

func (*AppTestHelper) Setup

func (s *AppTestHelper) Setup()

AppTestHelper Constructor

func (*AppTestHelper) SetupIBCChains

func (s *AppTestHelper) SetupIBCChains(hostChainID string)

Initializes a ibctesting coordinator to keep track of Stride and a host chain's state

func (*AppTestHelper) UpdateChannelState

func (s *AppTestHelper) UpdateChannelState(portId, channelId string, channelState channeltypes.State)

Helper function to change the state of a channel (i.e. to open/close it)

type SuitelessAppTestHelper

type SuitelessAppTestHelper struct {
	App *app.StrideApp
	Ctx sdk.Context
}

func SetupSuitelessTestHelper

func SetupSuitelessTestHelper() SuitelessAppTestHelper

Instantiates an TestHelper without the test suite This is for testing scenarios where we simply need the setup function to run, and need access to the TestHelper attributes and keepers (e.g. genesis tests)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL