Skip to content

Latest commit

 

History

History
243 lines (153 loc) · 7.25 KB

testing.md

File metadata and controls

243 lines (153 loc) · 7.25 KB

@algorandfoundation/algokit-utils / testing

Module: testing

Table of contents

Classes

Functions

Functions

algoKitLogCaptureFixture

algoKitLogCaptureFixture(): AlgoKitLogCaptureFixture

Creates a test fixture for capturing AlgoKit logs.

Returns

AlgoKitLogCaptureFixture

The fixture

Example

const logs = algoKitLogCaptureFixture()

beforeEach(logs.beforeEach)
afterEach(logs.afterEach)

test('My test', () => {
    const capturedLogs = logs.testLogger.capturedLogs
})

Defined in

src/testing/fixtures/algokit-log-capture-fixture.ts:22


algorandFixture

algorandFixture(fixtureConfig?): AlgorandFixture

Creates a test fixture for automated testing against Algorand. By default it tests against an environment variable specified client if the standard environment variables are specified, otherwise against a default LocalNet instance, but you can pass in an algod, indexer and/or kmd (or their respective config) if you want to test against an explicitly defined network.

Parameters

Name Type Description
fixtureConfig? AlgorandFixtureConfig The fixture configuration

Returns

AlgorandFixture

The fixture

Example

const fixture = algorandFixture()

beforeEach(fixture.newScope, 10_000)

test('My test', async () => {
    const {algod, indexer, testAccount, ...} = fixture.context
    // test things...
})

Example

const fixture = algorandFixture()

beforeAll(fixture.newScope, 10_000)

test('My test', async () => {
    const {algod, indexer, testAccount, ...} = fixture.context
    // test things...
})

Example

const fixture = algorandFixture({
 algod: new Algodv2('localhost', 12345, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),
 // ...
})

beforeEach(fixture.newScope, 10_000)

test('My test', async () => {
    const {algod, indexer, testAccount, ...} = fixture.context
    // test things...
})

Defined in

src/testing/fixtures/algorand-fixture.ts:60

algorandFixture(fixtureConfig, config): AlgorandFixture

Parameters

Name Type Description
fixtureConfig undefined | AlgorandFixtureConfig The fixture configuration
config AlgoConfig The fixture configuration

Returns

AlgorandFixture

The fixture

Deprecated

Config can be passed in directly to fixture config now.

Creates a test fixture for automated testing against Algorand. By default it tests against an environment variable specified client if the standard environment variables are specified, otherwise against a default LocalNet instance, but you can pass in an algod, indexer and/or kmd if you want to test against an explicitly defined network.

Defined in

src/testing/fixtures/algorand-fixture.ts:75


getTestAccount

getTestAccount(params, algod, kmd?): Promise<Address & Account & TransactionSignerAccount>

Parameters

Name Type Description
params GetTestAccountParams The config for the test account to generate
algod AlgodClient An algod client
kmd? KmdClient A KMD client, if not specified then a default KMD client will be loaded from environment variables and if not found fallback to the default LocalNet KMD client

Returns

Promise<Address & Account & TransactionSignerAccount>

The account, with private key loaded

Deprecated

Use getTestAccount(params, algorandClient) instead. The algorandClient object can be created using AlgorandClient.fromClients({ algod, kmd }).

Creates an ephemeral Algorand account for the purposes of testing. Returns a newly created random test account that is funded from the dispenser DO NOT USE THIS TO CREATE A MAINNET ACCOUNT! Note: By default this will log the mnemonic of the account.

Defined in

src/testing/account.ts:21

getTestAccount(params, algorand): Promise<Address & Account & TransactionSignerAccount>

Creates an ephemeral Algorand account for the purposes of testing. Returns a newly created random test account that is funded from the dispenser DO NOT USE THIS TO CREATE A MAINNET ACCOUNT! Note: By default this will log the mnemonic of the account.

Parameters

Name Type Description
params GetTestAccountParams The config for the test account to generate
algorand AlgorandClient An AlgorandClient client

Returns

Promise<Address & Account & TransactionSignerAccount>

The account, with private key loaded

Defined in

src/testing/account.ts:35


runWhenIndexerCaughtUp

runWhenIndexerCaughtUp<T>(run): Promise<T>

Runs the given indexer call until a 404 error is no longer returned. Tried every 200ms up to 100 times. Very rudimentary implementation designed for automated testing.

Type parameters

Name
T

Parameters

Name Type Description
run () => Promise<T> The code to run

Returns

Promise<T>

The result (as a promise), or throws if the indexer didn't catch up in time

Example

const transaction = await runWhenIndexerCaughtUp(() => indexer.lookupTransactionByID(txnId).do())

Defined in

src/testing/indexer.ts:12