Skip to content

testing

@algorandfoundation/algokit-utils / 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

NameTypeDescription
fixtureConfig?AlgorandFixtureConfigThe 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

NameTypeDescription
fixtureConfigundefined | AlgorandFixtureConfigThe fixture configuration
configAlgoConfigThe 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

NameTypeDescription
paramsGetTestAccountParamsThe config for the test account to generate
algodAlgodClientAn algod client
kmd?KmdClientA 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

NameTypeDescription
paramsGetTestAccountParamsThe config for the test account to generate
algorandAlgorandClientAn 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

NameTypeDescription
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