apptesting

package
v15.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2023 License: Apache-2.0 Imports: 30 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) 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) 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) 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) MockClientLatestHeight

func (s *AppTestHelper) MockClientLatestHeight(height uint64)

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

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