testing | Algorand Developer Portal

testing

@algorandfoundation/algokit-utils / testing

Classes

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...

})

Defined in

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


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

Defined in

src/testing/account.ts:21


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.

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