cltest

package
v1.10.17 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2021 License: MIT Imports: 96 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// APIKey of the fixture API user
	APIKey = "2d25e62eaf9143e993acaf48691564b2"
	// APISecret of the fixture API user.
	APISecret = "1eCP/w0llVkchejFaoBpfIGaLRxZK54lTXBCT22YLW+pdzE4Fafy/XO5LoJ2uwHi"
	// APIEmail is the email of the fixture API user
	APIEmail = "apiuser@chainlink.test"
	// Password just a password we use everywhere for testing
	Password    = "p4SsW0rD1!@#_"
	VRFPassword = "testingpassword"
	// SessionSecret is the hardcoded secret solely used for test
	SessionSecret = "clsession_test_secret"
	// DefaultKeyFixtureFileName is the filename of the fixture key
	DefaultKeyFixtureFileName = "testkey-0xF67D0290337bca0847005C7ffD1BC75BA9AAE6e4.json"
	// DefaultKeyJSON is the JSON for the default key encrypted with fast scrypt and password 'password' (used for fixture file)
	DefaultKeyJSON = `` /* 491-byte string literal not displayed */
	// DefaultPeerID is the peer ID of the default p2p key
	DefaultPeerID = "12D3KooWPjceQrSwdWXPyLLeABRXmuqt69Rg3sBYbU1Nft9HyQ6X"
	// A peer ID without an associated p2p key.
	NonExistentPeerID = "12D3KooWAdCzaesXyezatDzgGvCngqsBqoUqnV9PnVc46jsVt2i9"
	// DefaultOCRKeyBundleID is the ID of the default ocr key bundle
	DefaultOCRKeyBundleID = "f5bf259689b26f1374efb3c9a9868796953a0f814bb2d39b968d0e61b58620a5"
)
View Source
const (
	// DBWaitTimeout is how long we wait by default for something to appear in
	// the DB. It needs to be fairly long because integration
	// tests rely on it.
	DBWaitTimeout = 20 * time.Second
	// DBPollingInterval can't be too short to avoid DOSing the test database
	DBPollingInterval = 100 * time.Millisecond
	// AssertNoActionTimeout shouldn't be too long, or it will slow down tests
	AssertNoActionTimeout = 3 * time.Second

	// DefaultWaitTimeout - to be used especially in parallel tests, as their
	// individual execution can get paused for multiple seconds.
	DefaultWaitTimeout = 30 * time.Second
)
View Source
const SimulatedBackendEVMChainID int64 = 1337
View Source
const (
	UseRealExternalInitiatorManager = "UseRealExternalInitiatorManager"
)

Variables

View Source
var (
	DefaultP2PPeerID     p2pkey.PeerID
	NonExistentP2PPeerID p2pkey.PeerID
	// DefaultOCRKeyBundleIDSha256 is the ID of the fixture ocr key bundle
	DefaultOCRKeyBundleIDSha256 models.Sha256Hash
	FluxAggAddress              = common.HexToAddress("0x3cCad4715152693fE3BC4460591e3D3Fbd071b42")
	FixtureChainID              = *big.NewInt(0)

	DefaultCSAKey = csakey.MustNewV2XXXTestingOnly(big.NewInt(1))
	DefaultOCRKey = ocrkey.MustNewV2XXXTestingOnly(big.NewInt(1))
	DefaultP2PKey = p2pkey.MustNewV2XXXTestingOnly(big.NewInt(1))
	DefaultVRFKey = vrfkey.MustNewV2XXXTestingOnly(big.NewInt(1))
)

Functions

func AllExternalInitiators added in v1.10.16

func AllExternalInitiators(t testing.TB, db *gorm.DB) []bridges.ExternalInitiator

func AssertCount added in v1.10.16

func AssertCount(t *testing.T, db *gorm.DB, model interface{}, expected int64)

func AssertCountStays added in v1.10.16

func AssertCountStays(t testing.TB, db *gorm.DB, model interface{}, want int64)

func AssertError

func AssertError(t testing.TB, want bool, err error)

func AssertEthTxAttemptCountStays added in v1.10.16

func AssertEthTxAttemptCountStays(t testing.TB, db *gorm.DB, want int) []bulletprooftxmanager.EthTxAttempt

AssertEthTxAttemptCountStays asserts that the number of tx attempts remains at the provided value

func AssertPipelineRunsStays added in v1.10.16

func AssertPipelineRunsStays(t testing.TB, pipelineSpecID int32, db *gorm.DB, want int) []pipeline.Run

AssertPipelineRunsStays asserts that the number of pipeline runs for a particular job remains at the provided values

func AssertPipelineTaskRunsSuccessful added in v1.10.16

func AssertPipelineTaskRunsSuccessful(t testing.TB, runs []pipeline.TaskRun)

func AssertRecordEventually added in v1.10.16

func AssertRecordEventually(t *testing.T, db *gorm.DB, model interface{}, check func() bool)

func AssertServerResponse

func AssertServerResponse(t testing.TB, resp *http.Response, expectedStatusCode int)

AssertServerResponse is used to match against a client response, will print any errors returned if the request fails.

func AwaitJobActive added in v1.10.16

func AwaitJobActive(t testing.TB, jobSpawner job.Spawner, jobID int32, waitFor time.Duration)

func BatchElemMatchesHash added in v1.10.16

func BatchElemMatchesHash(req rpc.BatchElem, hash common.Hash) bool

func BatchElemMustMatchHash added in v1.10.16

func BatchElemMustMatchHash(t *testing.T, req rpc.BatchElem, hash common.Hash)

func BlockWithTransactions added in v1.10.16

func BlockWithTransactions(gasPrices ...int64) *types.Block

BlockWithTransactions returns a new ethereum block with transactions matching the given gas prices

func CallbackOrTimeout

func CallbackOrTimeout(t testing.TB, msg string, callback func(), durationParams ...time.Duration)

func CompareOCRJobSpecs added in v1.10.16

func CompareOCRJobSpecs(t *testing.T, expected, actual job.Job)

`require.Equal` currently has broken handling of `time.Time` values, so we have to do equality comparisons of these structs manually.

https://github.com/stretchr/testify/issues/984

func CreateBridgeTypeViaWeb

func CreateBridgeTypeViaWeb(
	t testing.TB,
	app *TestApplication,
	payload string,
) *webpresenters.BridgeResource

CreateBridgeTypeViaWeb creates a bridgetype via web using /v2/bridge_types

func CreateExternalInitiatorViaWeb added in v1.10.16

func CreateExternalInitiatorViaWeb(
	t testing.TB,
	app *TestApplication,
	payload string,
) *webpresenters.ExternalInitiatorAuthentication

CreateExternalInitiatorViaWeb creates a bridgetype via web using /v2/bridge_types

func CreateJobRunViaExternalInitiatorV2 added in v1.10.16

func CreateJobRunViaExternalInitiatorV2(
	t testing.TB,
	app *TestApplication,
	jobID uuid.UUID,
	eia auth.Token,
	body string,
) webpresenters.PipelineRunResource

func CreateJobViaWeb added in v1.10.16

func CreateJobViaWeb(t testing.TB, app *TestApplication, request []byte) job.Job

func CreateJobViaWeb2 added in v1.10.16

func CreateJobViaWeb2(t testing.TB, app *TestApplication, spec string) webpresenters.JobResource

func DecodeSessionCookie

func DecodeSessionCookie(value string) (string, error)

func DeleteJobViaWeb added in v1.10.16

func DeleteJobViaWeb(t testing.TB, app *TestApplication, jobID int32)

func DynamicFeeTransactionsFromTipCaps added in v1.10.17

func DynamicFeeTransactionsFromTipCaps(tipCaps ...int64) []gas.Transaction

DynamicFeeTransactionsFromTipCaps returns EIP-1559 transactions with the given TipCaps (FeeCap is arbitrary)

func EmptyCLIContext

func EmptyCLIContext() *cli.Context

func EventuallyExpectationsMet added in v1.10.16

func EventuallyExpectationsMet(t *testing.T, mock testifyExpectationsAsserter, timeout time.Duration, interval time.Duration)

func FindEthTxWithAttempts added in v1.10.16

func FindEthTxWithAttempts(db *gorm.DB, etxID int64) (bulletprooftxmanager.EthTx, error)

FindEthTxWithAttempts finds the EthTx with its attempts and receipts preloaded

func FixtureCreateJobSpecV2ViaWeb added in v1.10.16

func FixtureCreateJobSpecV2ViaWeb(t *testing.T, app *TestApplication, path string) job.Job

func GetLogs added in v1.10.16

func GetLogs(t *testing.T, rv interface{}, logs EthereumLogIterator) []interface{}

GetLogs drains logs of EVM log representations. Since those log representations don't fit into a type hierarchy, this API is a bit awkward. It returns the logs as a slice of blank interface{}s, and if rv is non-nil, it must be a pointer to a slice for elements of the same type as the logs, in which case GetLogs will append the logs to it.

func Head(val interface{}) *eth.Head

Head given the value convert it into an Head

func JSONFromBytes

func JSONFromBytes(t testing.TB, body []byte) models.JSON

JSONFromBytes creates JSON from a given byte array

func JSONFromFixture

func JSONFromFixture(t *testing.T, path string) models.JSON

JSONFromFixture create models.JSON from file path

func JSONFromString

func JSONFromString(t testing.TB, body string, args ...interface{}) models.JSON

JSONFromString create JSON from given body and arguments

func JSONResultFromFixture

func JSONResultFromFixture(t *testing.T, path string) models.JSON

JSONResultFromFixture create model.JSON with params.result found in the given file path

func LegacyTransactionsFromGasPrices added in v1.10.17

func LegacyTransactionsFromGasPrices(gasPrices ...int64) []gas.Transaction

LegacyTransactionsFromGasPrices returns transactions matching the given gas prices

func LogFromFixture

func LogFromFixture(t *testing.T, path string) types.Log

LogFromFixture create ethtypes.log from file path

func MakeConfigDigest added in v1.10.16

func MakeConfigDigest(t *testing.T) ocrtypes.ConfigDigest

func MakeDirectRequestJobSpec added in v1.10.16

func MakeDirectRequestJobSpec(t *testing.T) *job.Job

func MakeRoundStateReturnData added in v1.10.16

func MakeRoundStateReturnData(
	roundID uint64,
	eligible bool,
	answer, startAt, timeout, availableFunds, paymentAmount, oracleCount uint64,
) []byte

func Mine added in v1.10.16

func Mine(backend *backends.SimulatedBackend, blockTime time.Duration) (stopMining func())

Mine forces the simulated backend to produce a new block every 2 seconds

func MinimalOCRNonBootstrapSpec added in v1.10.16

func MinimalOCRNonBootstrapSpec(contractAddress, transmitterAddress ethkey.EIP55Address, peerID p2pkey.PeerID, keyBundleID string) string

func MockApplicationEthCalls added in v1.10.16

func MockApplicationEthCalls(t *testing.T, app *TestApplication, ethClient *mocks.Client) (verify func())

MockApplicationEthCalls mocks all calls made by the chainlink application as standard when starting and stopping

func MockFluxAggCall added in v1.10.16

func MockFluxAggCall(client *mocks.Client, address common.Address, funcName string) *mock.Call

func MockSubscribeToLogsCh added in v1.10.16

func MockSubscribeToLogsCh(ethClient *mocks.Client, sub *mocks.Subscription) chan chan<- types.Log

func MustAddKeyToKeystore added in v1.10.16

func MustAddKeyToKeystore(t testing.TB, key ethkey.KeyV2, chainID *big.Int, ethKeyStore keystore.Eth)

func MustAddRandomKeyToKeystore added in v1.10.16

func MustAddRandomKeyToKeystore(t testing.TB, ethKeyStore keystore.Eth) (ethkey.KeyV2, common.Address)

func MustBytesToConfigDigest added in v1.10.16

func MustBytesToConfigDigest(t *testing.T, b []byte) ocrtypes.ConfigDigest

func MustGenerateRandomKey added in v1.10.16

func MustGenerateRandomKey(t testing.TB) ethkey.KeyV2

func MustGenerateRandomKeyState added in v1.10.17

func MustGenerateRandomKeyState(t testing.TB) ethkey.State

func MustGenerateSessionCookie

func MustGenerateSessionCookie(t testing.TB, value string) *http.Cookie

func MustGetStateForKey added in v1.10.17

func MustGetStateForKey(t testing.TB, kst keystore.Eth, key ethkey.KeyV2) ethkey.State

func MustHelloWorldAgreement added in v1.10.16

func MustHelloWorldAgreement(t *testing.T) string

MustHelloWorldAgreement returns the fixture hello world agreement

func MustHexDecodeString added in v1.10.16

func MustHexDecodeString(s string) []byte

func MustInsertBroadcastLegacyEthTxAttempt added in v1.10.17

func MustInsertBroadcastLegacyEthTxAttempt(t *testing.T, etxID int64, db *gorm.DB, gasPrice int64) bulletprooftxmanager.EthTxAttempt

func MustInsertConfirmedEthTxWithLegacyAttempt added in v1.10.17

func MustInsertConfirmedEthTxWithLegacyAttempt(t *testing.T, db *gorm.DB, nonce int64, broadcastBeforeBlockNum int64, fromAddress common.Address) bulletprooftxmanager.EthTx

func MustInsertConfirmedEthTxWithReceipt added in v1.10.16

func MustInsertConfirmedEthTxWithReceipt(t *testing.T, db *gorm.DB, fromAddress common.Address, nonce, blockNum int64) (etx bulletprooftxmanager.EthTx)

func MustInsertEthReceipt added in v1.10.16

func MustInsertEthReceipt(t *testing.T, db *gorm.DB, blockNumber int64, blockHash common.Hash, txHash common.Hash) bulletprooftxmanager.EthReceipt

func MustInsertExternalInitiator added in v1.10.16

func MustInsertExternalInitiator(t *testing.T, db *gorm.DB) (ei bridges.ExternalInitiator)

func MustInsertExternalInitiatorWithOpts added in v1.10.16

func MustInsertExternalInitiatorWithOpts(t *testing.T, db *gorm.DB, opts ExternalInitiatorOpts) (ei bridges.ExternalInitiator)

func MustInsertFatalErrorEthTx added in v1.10.16

func MustInsertFatalErrorEthTx(t *testing.T, db *gorm.DB, fromAddress common.Address) bulletprooftxmanager.EthTx

func MustInsertHead added in v1.10.16

func MustInsertHead(t *testing.T, db *gorm.DB, number int64) eth.Head

func MustInsertInProgressEthTxWithAttempt added in v1.10.16

func MustInsertInProgressEthTxWithAttempt(t *testing.T, db *gorm.DB, nonce int64, fromAddress common.Address) bulletprooftxmanager.EthTx

func MustInsertKeeperJob added in v1.10.16

func MustInsertKeeperJob(t *testing.T, db *gorm.DB, from ethkey.EIP55Address, contract ethkey.EIP55Address) job.Job

func MustInsertKeeperRegistry added in v1.10.16

func MustInsertKeeperRegistry(t *testing.T, db *gorm.DB, ethKeyStore keystore.Eth) (keeper.Registry, job.Job)

func MustInsertOffchainreportingOracleSpec added in v1.10.16

func MustInsertOffchainreportingOracleSpec(t *testing.T, db *gorm.DB, transmitterAddress ethkey.EIP55Address) job.OffchainReportingOracleSpec

func MustInsertPipelineRun added in v1.10.16

func MustInsertPipelineRun(t *testing.T, db *gorm.DB) pipeline.Run

func MustInsertRandomKey added in v1.10.16

func MustInsertRandomKey(
	t testing.TB,
	keystore keystore.Eth,
	opts ...interface{},
) (ethkey.KeyV2, common.Address)

MustInsertRandomKey inserts a randomly generated (not cryptographically secure) key for testing If using this with the keystore, it should be called before the keystore loads keys from the database

func MustInsertRandomKeyReturningState added in v1.10.17

func MustInsertRandomKeyReturningState(t testing.TB,
	keystore keystore.Eth,
	opts ...interface{},
) (ethkey.State, common.Address)

func MustInsertSampleDirectRequestJob added in v1.10.16

func MustInsertSampleDirectRequestJob(t *testing.T, db *gorm.DB) job.Job

func MustInsertUnconfirmedEthTx added in v1.10.16

func MustInsertUnconfirmedEthTx(t *testing.T, db *gorm.DB, nonce int64, fromAddress common.Address, opts ...interface{}) bulletprooftxmanager.EthTx

func MustInsertUnconfirmedEthTxWithBroadcastDynamicFeeAttempt added in v1.10.17

func MustInsertUnconfirmedEthTxWithBroadcastDynamicFeeAttempt(t *testing.T, db *gorm.DB, nonce int64, fromAddress common.Address, opts ...interface{}) bulletprooftxmanager.EthTx

func MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt added in v1.10.17

func MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t *testing.T, db *gorm.DB, nonce int64, fromAddress common.Address, opts ...interface{}) bulletprooftxmanager.EthTx

func MustInsertUnconfirmedEthTxWithInsufficientEthAttempt added in v1.10.16

func MustInsertUnconfirmedEthTxWithInsufficientEthAttempt(t *testing.T, db *gorm.DB, nonce int64, fromAddress common.Address) bulletprooftxmanager.EthTx

func MustInsertUnfinishedPipelineTaskRun added in v1.10.16

func MustInsertUnfinishedPipelineTaskRun(t *testing.T, db *gorm.DB, pipelineRunID int64) pipeline.TaskRun

func MustInsertUnstartedEthTx added in v1.10.16

func MustInsertUnstartedEthTx(t *testing.T, db *gorm.DB, fromAddress common.Address, opts ...interface{}) bulletprooftxmanager.EthTx

func MustInsertUpkeepForRegistry added in v1.10.16

func MustInsertUpkeepForRegistry(t *testing.T, db *gorm.DB, cfg keeper.Config, registry keeper.Registry) keeper.UpkeepRegistration

func MustInsertV2JobSpec added in v1.10.16

func MustInsertV2JobSpec(t *testing.T, db *gorm.DB, transmitterAddress common.Address) job.Job

func MustInsertWebhookSpec added in v1.10.16

func MustInsertWebhookSpec(t *testing.T, db *gorm.DB) (job.Job, job.WebhookSpec)

func MustJSONDel

func MustJSONDel(t *testing.T, json, path string) string

MustJSONDel uses sjson.Delete to remove a path from a JSON string and returns the string

func MustJSONMarshal added in v1.10.16

func MustJSONMarshal(t *testing.T, val interface{}) string

func MustJSONSet

func MustJSONSet(t *testing.T, json, path string, value interface{}) string

MustJSONSet uses sjson.Set to set a path in a JSON string and returns the string See https://github.com/tidwall/sjson

func MustNewJSONSerializable added in v1.10.16

func MustNewJSONSerializable(t *testing.T, s string) pipeline.JSONSerializable

func MustNewKeyedTransactor added in v1.10.16

func MustNewKeyedTransactor(t *testing.T, key *ecdsa.PrivateKey, chainID int64) *bind.TransactOpts

func MustNewSimulatedBackendKeyedTransactor added in v1.10.16

func MustNewSimulatedBackendKeyedTransactor(t *testing.T, key *ecdsa.PrivateKey) *bind.TransactOpts

func MustNewUser added in v1.10.16

func MustNewUser(t *testing.T, email, password string) sessions.User

func MustParseDuration

func MustParseDuration(t testing.TB, durationStr string) time.Duration

func MustParseURL

func MustParseURL(t *testing.T, input string) *url.URL

func MustRandomBytes added in v1.10.16

func MustRandomBytes(t *testing.T, l int) (b []byte)

func MustRandomP2PPeerID added in v1.10.16

func MustRandomP2PPeerID(t *testing.T) p2ppeer.ID

func MustRandomUser added in v1.10.16

func MustRandomUser(t testing.TB) sessions.User

func MustReadFile

func MustReadFile(t testing.TB, file string) []byte

MustReadFile loads a file but should never fail

func MustSendingKeyStates added in v1.10.17

func MustSendingKeyStates(t *testing.T, ethKeyStore keystore.Eth) []ethkey.State

func MustWebURL added in v1.10.16

func MustWebURL(t *testing.T, s string) *models.WebURL

func NewAddress

func NewAddress() common.Address

NewAddress return a random new address

func NewBridgeType

func NewBridgeType(t testing.TB, info ...string) (*bridges.BridgeTypeAuthentication, *bridges.BridgeType)

NewBridgeType create new bridge type given info slice

func NewChainSetMockWithOneChain added in v1.10.17

func NewChainSetMockWithOneChain(t testing.TB, ethClient eth.Client, cfg evmconfig.ChainScopedConfig) evm.ChainSet

func NewContractMockReceiver added in v1.10.16

func NewContractMockReceiver(t *testing.T, ethMock *mocks.Client, abi abi.ABI, address common.Address) contractMockReceiver

func NewDynamicFeeEthTxAttempt added in v1.10.17

func NewDynamicFeeEthTxAttempt(t *testing.T, etxID int64) bulletprooftxmanager.EthTxAttempt

func NewEIP55Address added in v1.10.16

func NewEIP55Address() ethkey.EIP55Address

func NewEthBroadcaster added in v1.10.16

func NewEthBroadcaster(t testing.TB, db *gorm.DB, ethClient eth.Client, keyStore bulletprooftxmanager.KeyStore, config evmconfig.ChainScopedConfig, keyStates []ethkey.State) *bulletprooftxmanager.EthBroadcaster

func NewEthClientAndSubMock added in v1.10.17

func NewEthClientAndSubMock(t mock.TestingT) (*mocks.Client, *mocks.Subscription)

func NewEthClientAndSubMockWithDefaultChain added in v1.10.17

func NewEthClientAndSubMockWithDefaultChain(t mock.TestingT) (*mocks.Client, *mocks.Subscription)

func NewEthClientMock added in v1.10.17

func NewEthClientMock(t mock.TestingT) *mocks.Client

func NewEthClientMockWithDefaultChain added in v1.10.17

func NewEthClientMockWithDefaultChain(t testing.TB) *mocks.Client

func NewEthConfirmer added in v1.10.16

func NewEthMocks added in v1.10.16

func NewEthMocks(t testing.TB) (*mocks.Client, *mocks.Subscription, func())

func NewEthMocksWithDefaultChain added in v1.10.17

func NewEthMocksWithDefaultChain(t testing.TB) (c *mocks.Client, s *mocks.Subscription, f func())

func NewEthMocksWithStartupAssertions added in v1.10.16

func NewEthMocksWithStartupAssertions(t testing.TB) (*mocks.Client, *mocks.Subscription, func())

func NewEthTx added in v1.10.16

func NewEthTx(t *testing.T, fromAddress common.Address) bulletprooftxmanager.EthTx

func NewHTTPMockServer

func NewHTTPMockServer(
	t *testing.T,
	status int,
	wantMethod string,
	response string,
	callback ...func(http.Header, string),
) *httptest.Server

NewHTTPMockServer create http test server with passed in parameters

func NewHTTPMockServerWithAlterableResponse added in v1.10.16

func NewHTTPMockServerWithAlterableResponse(
	t *testing.T, response func() string) (server *httptest.Server)

func NewHTTPMockServerWithAlterableResponseAndRequest added in v1.10.16

func NewHTTPMockServerWithAlterableResponseAndRequest(t *testing.T, response func() string, callback func(r *http.Request)) (server *httptest.Server)

func NewHTTPMockServerWithRequest added in v1.10.16

func NewHTTPMockServerWithRequest(
	t *testing.T,
	status int,
	response string,
	callback func(r *http.Request),
) *httptest.Server

NewHTTPMockServerWithRequest creates http test server that makes the request available in the callback

func NewKeyStore added in v1.10.16

func NewKeyStore(t testing.TB, db *gorm.DB) keystore.Master

NewKeyStore returns a new, unlocked keystore

func NewLegacyEthTxAttempt added in v1.10.17

func NewLegacyEthTxAttempt(t *testing.T, etxID int64) bulletprooftxmanager.EthTxAttempt

func NewMockAuthenticatedHTTPClient

func NewMockAuthenticatedHTTPClient(cfg cmd.HTTPClientConfig, sessionID string) cmd.HTTPClient

func NewPeerID added in v1.10.16

func NewPeerID() p2ppeer.ID

func NewRandomInt64 added in v1.10.16

func NewRandomInt64() int64

func NewSession

func NewSession(optionalSessionID ...string) clsessions.Session

func NewSimulatedBackend added in v1.10.17

func NewSimulatedBackend(t *testing.T, alloc core.GenesisAlloc, gasLimit uint64) *backends.SimulatedBackend

func NewSimulatedBackendIdentity added in v1.10.16

func NewSimulatedBackendIdentity(t *testing.T) *bind.TransactOpts

newIdentity returns a go-ethereum abstraction of an ethereum account for interacting with contract golang wrappers

func NewTestChainScopedConfig added in v1.10.17

func NewTestChainScopedConfig(t testing.TB) evmconfig.ChainScopedConfig

func NewTestGeneralConfig added in v1.10.17

func NewTestGeneralConfig(t testing.TB) *configtest.TestGeneralConfig

func NewWSServer

func NewWSServer(t *testing.T, msg string, callback func(data []byte)) (*httptest.Server, string)

NewWSServer returns a new wsserver

func NormalizedJSON

func NormalizedJSON(t testing.TB, input []byte) string

func NullableTime

func NullableTime(t time.Time) null.Time

NullableTime will return a valid nullable time given time.Time

func ParseISO8601

func ParseISO8601(t testing.TB, s string) time.Time

ParseISO8601 given the time string it Must parse the time and return it

func ParseJSON

func ParseJSON(t testing.TB, body io.Reader) models.JSON

func ParseJSONAPIErrors

func ParseJSONAPIErrors(t testing.TB, body io.Reader) *models.JSONAPIErrors

func ParseJSONAPIResponse

func ParseJSONAPIResponse(t testing.TB, resp *http.Response, resource interface{}) error

ParseJSONAPIResponse parses the response and returns the JSONAPI resource.

func ParseJSONAPIResponseMeta

func ParseJSONAPIResponseMeta(input []byte) (map[string]*json.RawMessage, error)

ParseJSONAPIResponseMeta parses the bytes of the root document and returns a map of *json.RawMessage's within the 'meta' key.

func ParseJSONAPIResponseMetaCount

func ParseJSONAPIResponseMetaCount(input []byte) (int, error)

ParseJSONAPIResponseMetaCount parses the bytes of the root document and returns the value of the 'count' key from the 'meta' section.

func ParseNullableTime

func ParseNullableTime(t testing.TB, s string) null.Time

ParseNullableTime given a time string parse it into a null.Time

func ParseResponseBody

func ParseResponseBody(t testing.TB, resp *http.Response) []byte

ParseResponseBody will parse the given response into a byte slice

func Random32Byte added in v1.10.16

func Random32Byte() (b [32]byte)

func RandomLog added in v1.10.16

func RandomLog(t *testing.T) types.Log

func RawNewRoundLog added in v1.10.16

func RawNewRoundLog(t *testing.T, contractAddr common.Address, blockHash common.Hash, blockNumber uint64, logIndex uint, removed bool) types.Log

func RawNewRoundLogWithTopics added in v1.10.16

func RawNewRoundLogWithTopics(t *testing.T, contractAddr common.Address, blockHash common.Hash, blockNumber uint64, logIndex uint, removed bool, topics []common.Hash) types.Log

func ReadLogs

func ReadLogs(cfg config.GeneralConfig) (string, error)

ReadLogs returns the contents of the applications log file as a string

func RequireTxSuccessful added in v1.10.16

func RequireTxSuccessful(t testing.TB, client TransactionReceipter, txHash common.Hash) *types.Receipt

func SimulateIncomingHeads added in v1.10.16

func SimulateIncomingHeads(t *testing.T, args SimulateIncomingHeadsArgs) (func(), chan struct{})

func StringToHash

func StringToHash(s string) common.Hash

func TxReceiptFromFixture

func TxReceiptFromFixture(t *testing.T, path string) *types.Receipt

TxReceiptFromFixture create ethtypes.log from file path

func UnauthenticatedPatch

func UnauthenticatedPatch(t testing.TB, url string, body io.Reader, headers map[string]string) (*http.Response, func())

func UnauthenticatedPost added in v1.10.16

func UnauthenticatedPost(t testing.TB, url string, body io.Reader, headers map[string]string) (*http.Response, func())

func WaitForCount added in v1.10.16

func WaitForCount(t testing.TB, db *gorm.DB, model interface{}, want int64)

func WaitForPipeline added in v1.10.17

func WaitForPipeline(t testing.TB, nodeID int, jobID int32, expectedPipelineRuns int, expectedTaskRuns int, jo job.ORM, timeout, poll time.Duration, state pipeline.RunStatus) []pipeline.Run

func WaitForPipelineComplete added in v1.10.16

func WaitForPipelineComplete(t testing.TB, nodeID int, jobID int32, expectedPipelineRuns int, expectedTaskRuns int, jo job.ORM, timeout, poll time.Duration) []pipeline.Run

func WaitForPipelineError added in v1.10.17

func WaitForPipelineError(t testing.TB, nodeID int, jobID int32, expectedPipelineRuns int, expectedTaskRuns int, jo job.ORM, timeout, poll time.Duration) []pipeline.Run

func WaitForSpecErrorV2 added in v1.10.16

func WaitForSpecErrorV2(t *testing.T, db *gorm.DB, jobID int32, count int) []job.SpecError

WaitForSpecErrorV2 polls until the passed in jobID has count number of job spec errors.

func WebURL

func WebURL(t testing.TB, unparsed string) models.WebURL

WebURL parses a url into a models.WebURL

Types

type Awaiter added in v1.10.16

type Awaiter chan struct{}

func NewAwaiter added in v1.10.16

func NewAwaiter() Awaiter

func (Awaiter) AssertHappened added in v1.10.16

func (a Awaiter) AssertHappened(t *testing.T, expected bool)

func (Awaiter) AwaitOrFail added in v1.10.16

func (a Awaiter) AwaitOrFail(t testing.TB, durationParams ...time.Duration)

func (Awaiter) ItHappened added in v1.10.16

func (a Awaiter) ItHappened()

type BlockedRunner

type BlockedRunner struct {
	Done chan struct{}
}

BlockedRunner is a Runner that blocks until its channel is posted to

func (BlockedRunner) Run

Run runs the blocked runner, doesn't return until the channel is signalled

type Blocks added in v1.10.16

type Blocks struct {
	Hashes []common.Hash

	Heads map[int64]*eth.Head
	// contains filtered or unexported fields
}

Blocks - a helper logic to construct a range of linked heads and an ability to fork and create logs from them

func NewBlocks added in v1.10.16

func NewBlocks(t *testing.T, numHashes int) *Blocks

func (*Blocks) ForkAt added in v1.10.16

func (b *Blocks) ForkAt(t *testing.T, blockNum int64, numHashes int) *Blocks

func (*Blocks) HashesMap added in v1.10.16

func (b *Blocks) HashesMap() map[int64]common.Hash

func (*Blocks) Head added in v1.10.16

func (b *Blocks) Head(number uint64) *eth.Head

func (*Blocks) LogOnBlockNum added in v1.10.16

func (b *Blocks) LogOnBlockNum(i uint64, addr common.Address) types.Log

func (*Blocks) LogOnBlockNumRemoved added in v1.10.16

func (b *Blocks) LogOnBlockNumRemoved(i uint64, addr common.Address) types.Log

func (*Blocks) LogOnBlockNumWithIndex added in v1.10.16

func (b *Blocks) LogOnBlockNumWithIndex(i uint64, logIndex uint, addr common.Address) types.Log

func (*Blocks) LogOnBlockNumWithIndexRemoved added in v1.10.16

func (b *Blocks) LogOnBlockNumWithIndexRemoved(i uint64, logIndex uint, addr common.Address) types.Log

func (*Blocks) LogOnBlockNumWithTopics added in v1.10.16

func (b *Blocks) LogOnBlockNumWithTopics(i uint64, logIndex uint, addr common.Address, topics []common.Hash) types.Log

func (*Blocks) NewHead added in v1.10.17

func (b *Blocks) NewHead(number uint64) *eth.Head

type EmptyRunner

type EmptyRunner struct{}

EmptyRunner is an EmptyRunner

func (EmptyRunner) Run

Run runs the empty runner

type EthereumLogIterator added in v1.10.16

type EthereumLogIterator interface{ Next() bool }

EthereumLogIterator is the interface provided by gethwrapper representations of EVM logs.

type EventWebSocketServer

type EventWebSocketServer struct {
	*httptest.Server

	Connected      chan struct{}
	ReceivedText   chan string
	ReceivedBinary chan []byte
	URL            *url.URL
	// contains filtered or unexported fields
}

EventWebSocketServer is a web socket server designed specifically for testing

func NewEventWebSocketServer

func NewEventWebSocketServer(t *testing.T) (*EventWebSocketServer, func())

NewEventWebSocketServer returns a new EventWebSocketServer

func (*EventWebSocketServer) Broadcast

func (wss *EventWebSocketServer) Broadcast(message string) error

Broadcast sends a message to every web socket client connected to the EventWebSocketServer

func (*EventWebSocketServer) WriteCloseMessage

func (wss *EventWebSocketServer) WriteCloseMessage()

WriteCloseMessage tells connected clients to disconnect. Useful to emulate that the websocket server is shutting down without actually shutting down. This overcomes httptest.Server's inability to restart on the same URL:port.

type ExternalInitiatorOpts added in v1.10.16

type ExternalInitiatorOpts struct {
	NamePrefix     string
	URL            *models.WebURL
	OutgoingSecret string
	OutgoingToken  string
}

type HTTPClientCleaner

type HTTPClientCleaner struct {
	HTTPClient cmd.HTTPClient
	// contains filtered or unexported fields
}

func (*HTTPClientCleaner) Delete

func (r *HTTPClientCleaner) Delete(path string) (*http.Response, func())

func (*HTTPClientCleaner) Get

func (r *HTTPClientCleaner) Get(path string, headers ...map[string]string) (*http.Response, func())

func (*HTTPClientCleaner) Patch

func (r *HTTPClientCleaner) Patch(path string, body io.Reader, headers ...map[string]string) (*http.Response, func())

func (*HTTPClientCleaner) Post

func (r *HTTPClientCleaner) Post(path string, body io.Reader) (*http.Response, func())

func (*HTTPClientCleaner) Put added in v1.10.16

func (r *HTTPClientCleaner) Put(path string, body io.Reader) (*http.Response, func())

type HeadBuffer added in v1.10.17

type HeadBuffer struct {
	Heads []*eth.Head
	// contains filtered or unexported fields
}

HeadBuffer - stores heads in sequence, with increasing timestamps

func NewHeadBuffer added in v1.10.17

func NewHeadBuffer(t *testing.T) *HeadBuffer

func (*HeadBuffer) Append added in v1.10.17

func (hb *HeadBuffer) Append(head *eth.Head)

type HeadTrackableFunc added in v1.10.16

type HeadTrackableFunc func(context.Context, eth.Head)

func (HeadTrackableFunc) OnNewLongestChain added in v1.10.16

func (fn HeadTrackableFunc) OnNewLongestChain(ctx context.Context, head eth.Head)

type InstanceAppFactory

type InstanceAppFactory struct {
	App chainlink.Application
}

InstanceAppFactory is an InstanceAppFactory

func (InstanceAppFactory) NewApplication

func (f InstanceAppFactory) NewApplication(config config.GeneralConfig) (chainlink.Application, error)

NewApplication creates a new application with specified config

type InstantClock

type InstantClock struct{}

InstantClock an InstantClock

func (InstantClock) After

func (InstantClock) After(_ time.Duration) <-chan time.Time

After return channel of time

func (InstantClock) Now

func (InstantClock) Now() time.Time

Now returns the current local time

type JobPipelineV2TestHelper added in v1.10.16

type JobPipelineV2TestHelper struct {
	Prm pipeline.ORM
	Jrm job.ORM
	Pr  pipeline.Runner
}

func NewJobPipelineV2 added in v1.10.16

func NewJobPipelineV2(t testing.TB, cfg config.GeneralConfig, cc evm.ChainSet, db *gorm.DB, keyStore keystore.Master) JobPipelineV2TestHelper

type MockAPIInitializer

type MockAPIInitializer struct {
	Count int
	// contains filtered or unexported fields
}

func NewMockAPIInitializer added in v1.10.17

func NewMockAPIInitializer(t testing.TB) *MockAPIInitializer

func (*MockAPIInitializer) Initialize

func (m *MockAPIInitializer) Initialize(orm sessions.ORM) (sessions.User, error)

type MockChangePasswordPrompter

type MockChangePasswordPrompter struct {
	web.UpdatePasswordRequest
	// contains filtered or unexported fields
}

func (MockChangePasswordPrompter) Prompt

type MockCookieAuthenticator

type MockCookieAuthenticator struct {
	SessionID string
	Error     error
	// contains filtered or unexported fields
}

func (MockCookieAuthenticator) Authenticate

func (MockCookieAuthenticator) Cookie

func (m MockCookieAuthenticator) Cookie() (*http.Cookie, error)

type MockCountingPrompter

type MockCountingPrompter struct {
	T              *testing.T
	EnteredStrings []string
	Count          int
	NotTerminal    bool
}

MockCountingPrompter is a mock counting prompt

func (*MockCountingPrompter) IsTerminal

func (p *MockCountingPrompter) IsTerminal() bool

IsTerminal always returns true in tests

func (*MockCountingPrompter) PasswordPrompt

func (p *MockCountingPrompter) PasswordPrompt(string) string

PasswordPrompt returns an entered string

func (*MockCountingPrompter) Prompt

func (p *MockCountingPrompter) Prompt(string) string

Prompt returns an entered string

type MockCron

type MockCron struct {
	Entries []MockCronEntry
	// contains filtered or unexported fields
}

MockCron represents a mock cron

func NewMockCron

func NewMockCron() *MockCron

NewMockCron returns a new mock cron

func (*MockCron) AddFunc

func (mc *MockCron) AddFunc(schd string, fn func()) (cron.EntryID, error)

AddFunc appends a schedule to mockcron entries

func (*MockCron) RunEntries

func (mc *MockCron) RunEntries()

RunEntries run every function for each mockcron entry

func (*MockCron) Start

func (*MockCron) Start()

Start starts the mockcron

func (*MockCron) Stop

func (*MockCron) Stop() context.Context

Stop stops the mockcron

type MockCronEntry

type MockCronEntry struct {
	Schedule string
	Function func()
}

MockCronEntry a cron schedule and function

type MockHeadTrackable

type MockHeadTrackable struct {
	// contains filtered or unexported fields
}

MockHeadTrackable allows you to mock HeadTrackable

func (*MockHeadTrackable) OnNewLongestChain added in v1.10.16

func (m *MockHeadTrackable) OnNewLongestChain(context.Context, eth.Head)

OnNewLongestChain increases the OnNewLongestChainCount count by one

func (*MockHeadTrackable) OnNewLongestChainCount added in v1.10.16

func (m *MockHeadTrackable) OnNewLongestChainCount() int32

OnNewLongestChainCount returns the count of new heads, safely.

type MockPasswordPrompter

type MockPasswordPrompter struct {
	Password string
}

func (MockPasswordPrompter) Prompt

func (m MockPasswordPrompter) Prompt() string

type MockSecretGenerator added in v1.10.17

type MockSecretGenerator struct{}

func (MockSecretGenerator) Generate added in v1.10.17

func (m MockSecretGenerator) Generate(string) ([]byte, error)

type MockSessionRequestBuilder

type MockSessionRequestBuilder struct {
	Count int
	Error error
}

func (*MockSessionRequestBuilder) Build

type MockSubscription

type MockSubscription struct {
	Errors chan error
	// contains filtered or unexported fields
}

MockSubscription a mock subscription

func EmptyMockSubscription

func EmptyMockSubscription() *MockSubscription

EmptyMockSubscription return empty MockSubscription

func (*MockSubscription) Err

func (mes *MockSubscription) Err() <-chan error

Err returns error channel from mes

func (*MockSubscription) Unsubscribe

func (mes *MockSubscription) Unsubscribe()

Unsubscribe closes the subscription

type NeverSleeper

type NeverSleeper struct{}

NeverSleeper is a struct that never sleeps

func (NeverSleeper) After

func (ns NeverSleeper) After() time.Duration

After returns a duration

func (NeverSleeper) Duration

func (ns NeverSleeper) Duration() time.Duration

Duration returns a duration

func (NeverSleeper) Reset

func (ns NeverSleeper) Reset()

Reset resets the never sleeper

func (NeverSleeper) Sleep

func (ns NeverSleeper) Sleep()

Sleep puts the never sleeper to sleep

type RendererMock

type RendererMock struct {
	Renders []interface{}
}

RendererMock a mock renderer

func (*RendererMock) Render

func (rm *RendererMock) Render(v interface{}, headers ...string) error

Render appends values to renderer mock

type SimulateIncomingHeadsArgs added in v1.10.16

type SimulateIncomingHeadsArgs struct {
	StartBlock, EndBlock int64
	BackfillDepth        int64
	Interval             time.Duration
	Timeout              time.Duration
	HeadTrackables       []httypes.HeadTrackable
	Blocks               *Blocks
}

type SimulatedBackendClient added in v1.10.16

type SimulatedBackendClient struct {
	// contains filtered or unexported fields
}

SimulatedBackendClient is an eth.Client implementation using a simulated blockchain backend. Note that not all RPC methods are implemented here.

func (*SimulatedBackendClient) BalanceAt added in v1.10.16

func (c *SimulatedBackendClient) BalanceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (*big.Int, error)

func (*SimulatedBackendClient) BatchCallContext added in v1.10.16

func (c *SimulatedBackendClient) BatchCallContext(ctx context.Context, b []rpc.BatchElem) error

func (*SimulatedBackendClient) BlockByNumber added in v1.10.16

func (c *SimulatedBackendClient) BlockByNumber(ctx context.Context, n *big.Int) (*types.Block, error)

func (*SimulatedBackendClient) Call added in v1.10.16

func (c *SimulatedBackendClient) Call(result interface{}, method string, args ...interface{}) error

Call mocks the ethereum client RPC calls used by chainlink, copying the return value into result.

func (*SimulatedBackendClient) CallContext added in v1.10.16

func (c *SimulatedBackendClient) CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error

func (*SimulatedBackendClient) CallContract added in v1.10.16

func (c *SimulatedBackendClient) CallContract(ctx context.Context, msg ethereum.CallMsg, blockNumber *big.Int) ([]byte, error)

func (*SimulatedBackendClient) ChainID added in v1.10.16

func (c *SimulatedBackendClient) ChainID() *big.Int

GetChainID returns the ethereum ChainID.

func (*SimulatedBackendClient) Close added in v1.10.16

func (c *SimulatedBackendClient) Close()

Close does nothing. We ought not close the underlying backend here since other simulated clients might still be using it

func (*SimulatedBackendClient) CodeAt added in v1.10.16

func (c *SimulatedBackendClient) CodeAt(ctx context.Context, account common.Address, blockNumber *big.Int) ([]byte, error)

func (*SimulatedBackendClient) Dial added in v1.10.16

func (*SimulatedBackendClient) EstimateGas added in v1.10.16

func (c *SimulatedBackendClient) EstimateGas(ctx context.Context, call ethereum.CallMsg) (gas uint64, err error)

func (*SimulatedBackendClient) FilterLogs added in v1.10.16

func (c *SimulatedBackendClient) FilterLogs(ctx context.Context, q ethereum.FilterQuery) (logs []types.Log, err error)

FilterLogs returns all logs that respect the passed filter query.

func (*SimulatedBackendClient) GetERC20Balance added in v1.10.16

func (c *SimulatedBackendClient) GetERC20Balance(address common.Address, contractAddress common.Address) (balance *big.Int, err error)

GetERC20Balance returns the balance of the given address for the token contract address.

func (*SimulatedBackendClient) GetEthBalance added in v1.10.16

func (c *SimulatedBackendClient) GetEthBalance(ctx context.Context, account common.Address, blockNumber *big.Int) (*assets.Eth, error)

func (*SimulatedBackendClient) GetLINKBalance added in v1.10.16

func (c *SimulatedBackendClient) GetLINKBalance(linkAddress common.Address, address common.Address) (*assets.Link, error)

func (*SimulatedBackendClient) HeadByNumber added in v1.10.16

func (c *SimulatedBackendClient) HeadByNumber(ctx context.Context, n *big.Int) (*eth.Head, error)

func (*SimulatedBackendClient) HeaderByNumber added in v1.10.16

func (c *SimulatedBackendClient) HeaderByNumber(ctx context.Context, n *big.Int) (*types.Header, error)

func (*SimulatedBackendClient) NonceAt added in v1.10.16

func (c *SimulatedBackendClient) NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error)

func (*SimulatedBackendClient) PendingCodeAt added in v1.10.16

func (c *SimulatedBackendClient) PendingCodeAt(ctx context.Context, account common.Address) ([]byte, error)

func (*SimulatedBackendClient) PendingNonceAt added in v1.10.16

func (c *SimulatedBackendClient) PendingNonceAt(ctx context.Context, account common.Address) (uint64, error)

func (*SimulatedBackendClient) SendTransaction added in v1.10.16

func (c *SimulatedBackendClient) SendTransaction(ctx context.Context, tx *types.Transaction) error

func (*SimulatedBackendClient) SubscribeFilterLogs added in v1.10.16

func (c *SimulatedBackendClient) SubscribeFilterLogs(ctx context.Context, q ethereum.FilterQuery, channel chan<- types.Log) (ethereum.Subscription, error)

SubscribeToLogs registers a subscription for push notifications of logs from a given address.

func (*SimulatedBackendClient) SubscribeNewHead added in v1.10.16

func (c *SimulatedBackendClient) SubscribeNewHead(
	ctx context.Context,
	channel chan<- *eth.Head,
) (ethereum.Subscription, error)

SubscribeToNewHeads registers a subscription for push notifications of new blocks. Note the sim's API only accepts types.Head so we have this goroutine to convert those into eth.Head.

func (*SimulatedBackendClient) SuggestGasPrice added in v1.10.16

func (c *SimulatedBackendClient) SuggestGasPrice(ctx context.Context) (*big.Int, error)

func (*SimulatedBackendClient) SuggestGasTipCap added in v1.10.16

func (c *SimulatedBackendClient) SuggestGasTipCap(ctx context.Context) (tipCap *big.Int, err error)

func (*SimulatedBackendClient) TransactionReceipt added in v1.10.16

func (c *SimulatedBackendClient) TransactionReceipt(ctx context.Context, receipt common.Hash) (*types.Receipt, error)

TransactionReceipt returns the transaction receipt for the given transaction hash.

type TestApplication

type TestApplication struct {
	*chainlink.ChainlinkApplication
	Logger logger.Logger
	Server *httptest.Server

	Started bool
	Backend *backends.SimulatedBackend
	Key     ethkey.KeyV2
	// contains filtered or unexported fields
}

TestApplication holds the test application and test servers

func NewApplication

func NewApplication(t testing.TB, flagsAndDeps ...interface{}) *TestApplication

NewApplication creates a New TestApplication along with a NewConfig It mocks the keystore with no keys or accounts by default

func NewApplicationEVMDisabled added in v1.10.17

func NewApplicationEVMDisabled(t *testing.T) *TestApplication

NewApplicationEVMDisabled creates a new application with default config but ethereum disabled Useful for testing controllers

func NewApplicationWithConfig

func NewApplicationWithConfig(t testing.TB, cfg *configtest.TestGeneralConfig, flagsAndDeps ...interface{}) *TestApplication

NewApplicationWithConfig creates a New TestApplication with specified test config. This should only be used in full integration tests. For controller tests, see NewApplicationEVMDisabled

func NewApplicationWithConfigAndKey

func NewApplicationWithConfigAndKey(t testing.TB, c *configtest.TestGeneralConfig, flagsAndDeps ...interface{}) *TestApplication

NewApplicationWithConfigAndKey creates a new TestApplication with the given testorm it will also provide an unlocked account on the keystore

func NewApplicationWithConfigAndKeyOnSimulatedBlockchain added in v1.10.16

func NewApplicationWithConfigAndKeyOnSimulatedBlockchain(
	t testing.TB,
	cfg *configtest.TestGeneralConfig,
	backend *backends.SimulatedBackend,
	flagsAndDeps ...interface{},
) *TestApplication

func NewApplicationWithKey

func NewApplicationWithKey(t *testing.T, flagsAndDeps ...interface{}) *TestApplication

NewApplicationWithKey creates a new TestApplication along with a new config It uses the native keystore and will load any keys that are in the database

func (*TestApplication) Import added in v1.10.17

func (ta *TestApplication) Import(content string)

ImportKey adds private key to the application keystore and database

func (*TestApplication) MustSeedNewSession added in v1.10.16

func (ta *TestApplication) MustSeedNewSession() string

func (*TestApplication) NewAuthenticatingClient

func (ta *TestApplication) NewAuthenticatingClient(prompter cmd.Prompter) *cmd.Client

func (*TestApplication) NewBox

func (ta *TestApplication) NewBox() packr.Box

func (*TestApplication) NewClientAndRenderer

func (ta *TestApplication) NewClientAndRenderer() (*cmd.Client, *RendererMock)

NewClientAndRenderer creates a new cmd.Client for the test application

func (*TestApplication) NewHTTPClient

func (ta *TestApplication) NewHTTPClient() HTTPClientCleaner

func (*TestApplication) Start added in v1.10.16

func (ta *TestApplication) Start() error

Start starts the chainlink app and registers Stop to clean up at end of test.

func (*TestApplication) Stop

func (ta *TestApplication) Stop() error

Stop will stop the test application and perform cleanup

type TransactionReceipter added in v1.10.16

type TransactionReceipter interface {
	TransactionReceipt(context.Context, common.Hash) (*types.Receipt, error)
}

type TriggerClock

type TriggerClock struct {
	// contains filtered or unexported fields
}

TriggerClock implements the AfterNower interface, but must be manually triggered to resume computation on After.

func NewTriggerClock

func NewTriggerClock(t testing.TB) *TriggerClock

NewTriggerClock returns a new TriggerClock, that a test can manually fire to continue processing in a Clock dependency.

func (*TriggerClock) After

func (t *TriggerClock) After(_ time.Duration) <-chan time.Time

After waits on a manual trigger.

func (TriggerClock) Now added in v1.10.16

func (t TriggerClock) Now() time.Time

Now returns the current local time

func (*TriggerClock) Trigger

func (t *TriggerClock) Trigger()

Trigger sends a time to unblock the After call.

func (*TriggerClock) TriggerWithoutTimeout added in v1.10.16

func (t *TriggerClock) TriggerWithoutTimeout()

TriggerWithoutTimeout is a special case where we know the trigger might block but don't care

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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