Skip to content

Commit 54a8954

Browse files
committed
test(e2e): set up e2e to use all currently available blockfrost providers
also delete 'blockfrost-providers' test suite as it overlaps with wallet test suites
1 parent 962f6e5 commit 54a8954

File tree

10 files changed

+72
-276
lines changed

10 files changed

+72
-276
lines changed

.github/workflows/continuous-integration-blockfrost-e2e.yaml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@ env:
1212
STAKE_POOL_TEST_CONNECTION_STRING: 'postgresql://postgres:doNoUseThisSecret!@localhost:5435/stake_pool_test'
1313
TEST_CLIENT_ASSET_PROVIDER: 'blockfrost'
1414
TEST_CLIENT_ASSET_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:3015"}'
15-
TEST_CLIENT_CHAIN_HISTORY_PROVIDER: 'ws'
16-
TEST_CLIENT_CHAIN_HISTORY_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:4000/"}'
15+
TEST_CLIENT_CHAIN_HISTORY_PROVIDER: 'blockfrost'
16+
TEST_CLIENT_CHAIN_HISTORY_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:3015"}'
1717
TEST_CLIENT_HANDLE_PROVIDER: 'http'
1818
TEST_CLIENT_HANDLE_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:4011/"}'
19-
TEST_CLIENT_NETWORK_INFO_PROVIDER: 'ws'
20-
TEST_CLIENT_NETWORK_INFO_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:4000/"}'
21-
TEST_CLIENT_REWARDS_PROVIDER: 'http'
22-
TEST_CLIENT_REWARDS_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:4000/"}'
19+
TEST_CLIENT_NETWORK_INFO_PROVIDER: 'blockfrost'
20+
TEST_CLIENT_NETWORK_INFO_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:3015"}'
21+
TEST_CLIENT_REWARDS_PROVIDER: 'blockfrost'
22+
TEST_CLIENT_REWARDS_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:3015"}'
2323
TEST_CLIENT_TX_SUBMIT_PROVIDER: 'http'
2424
TEST_CLIENT_TX_SUBMIT_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:4000/"}'
25-
TEST_CLIENT_UTXO_PROVIDER: 'ws'
26-
TEST_CLIENT_UTXO_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:4000/"}'
25+
TEST_CLIENT_UTXO_PROVIDER: 'blockfrost'
26+
TEST_CLIENT_UTXO_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:3015"}'
2727
TEST_CLIENT_STAKE_POOL_PROVIDER: 'http'
2828
TEST_CLIENT_STAKE_POOL_PROVIDER_PARAMS: '{"baseUrl":"http://localhost:4000/"}'
2929
WS_PROVIDER_URL: 'http://localhost:4100/ws'
@@ -86,9 +86,6 @@ jobs:
8686
- name: 🔬 Test - e2e - wallet at epoch 3
8787
run: |
8888
yarn workspace @cardano-sdk/e2e test:wallet:epoch3
89-
yarn workspace @cardano-sdk/e2e test:blockfrost:providers
90-
env:
91-
BLOCKFROST_API_KEY: ${{ secrets.BLOCKFROST_API_KEY }}
9289
9390
- name: Dump docker logs
9491
if: ${{ cancelled() || failure() }}

compose/common.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ x-sdk-environment: &sdk-environment
121121
services:
122122
blockfrost-ryo:
123123
build:
124-
context: 'https://github.com/mirceahasegan/blockfrost-backend-ryo.git#feat/custom-network-support'
124+
context: 'https://github.com/mkazlauskas/blockfrost-backend-ryo.git#feat/custom-network-support'
125125
dockerfile: Dockerfile
126126
environment:
127127
BLOCKFROST_CONFIG_SERVER_LISTEN_ADDRESS: 0.0.0.0

packages/e2e/.env.example

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ NETWORK_SPEED=fast
6363
# to run tests against local blockfrost
6464
TEST_CLIENT_ASSET_PROVIDER='blockfrost'
6565
TEST_CLIENT_ASSET_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
66-
#TEST_CLIENT_UTXO_PROVIDER='blockfrost'
67-
#TEST_UTXO_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
68-
#TEST_CLIENT_CHAIN_HISTORY_PROVIDER='blockfrost'
69-
#TEST_CLIENT_CHAIN_HISTORY_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
70-
#TEST_CLIENT_REWARDS_PROVIDER='blockfrost'
71-
#TEST_REWARDS_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
72-
#TEST_CLIENT_NETWORK_INFO_PROVIDER='blockfrost'
73-
#TEST_NETWORK_INFO_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
74-
#TEST_CLIENT_TX_SUBMIT_PROVIDER='blockfrost'
75-
#TEST_TX_SUBMIT_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
66+
TEST_CLIENT_UTXO_PROVIDER='blockfrost'
67+
TEST_CLIENT_UTXO_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
68+
TEST_CLIENT_CHAIN_HISTORY_PROVIDER='blockfrost'
69+
TEST_CLIENT_CHAIN_HISTORY_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
70+
TEST_CLIENT_REWARDS_PROVIDER='blockfrost'
71+
TEST_CLIENT_REWARDS_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
72+
TEST_CLIENT_NETWORK_INFO_PROVIDER='blockfrost'
73+
TEST_CLIENT_NETWORK_INFO_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'
74+
TEST_CLIENT_TX_SUBMIT_PROVIDER='blockfrost'
75+
TEST_CLIENT_TX_SUBMIT_PROVIDER_PARAMS='{"baseUrl":"http://localhost:3015"}'

packages/e2e/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
"load-test-custom:wallet-restoration": "ts-node test/load-test-custom/wallet-restoration/wallet-restoration.test.ts",
2424
"test": "echo 'test' command not implemented yet",
2525
"test:blockfrost": "jest -c jest.config.js --forceExit --selectProjects blockfrost --runInBand --verbose",
26-
"test:blockfrost:providers": "jest -c jest.config.js --forceExit --selectProjects blockfrost-providers --runInBand --verbose",
2726
"test:utils": "jest -c jest.config.js --forceExit --selectProjects utils --verbose",
2827
"test:long-running": "jest -c jest.config.js --forceExit --selectProjects long-running --runInBand --verbose",
2928
"test:local-network": "jest -c jest.config.js --forceExit --selectProjects local-network --runInBand --verbose",

packages/e2e/src/environment.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ const providerParams = makeValidator((value) => {
7979
const validators = {
8080
ADDRESS_DISCOVERY: str({ default: 'HDSequentialDiscovery' }),
8181
ARRIVAL_PHASE_DURATION_IN_SECS: num(),
82-
BLOCKFROST_API_KEY: str(),
8382
DB_SYNC_CONNECTION_STRING: str({ default: undefined }),
8483
KEY_MANAGEMENT_PARAMS: keyManagementParams(),
8584
KEY_MANAGEMENT_PROVIDER: str(),

packages/e2e/src/factories.ts

Lines changed: 53 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import {
4141
BlockfrostClient,
4242
BlockfrostNetworkInfoProvider,
4343
BlockfrostRewardsProvider,
44+
BlockfrostTxSubmitProvider,
4445
BlockfrostUtxoProvider,
4546
CardanoWsClient,
4647
assetInfoHttpProvider,
@@ -121,16 +122,6 @@ const getWsClient = async (logger: Logger) => {
121122
return (wsClient = new CardanoWsClient({ chainHistoryProvider, logger }, { url: new URL(env.WS_PROVIDER_URL) }));
122123
};
123124

124-
const getBlockfrostRemoteClient = (params: { baseUrl: string; projectId: string }) =>
125-
new BlockfrostClient(
126-
{
127-
apiVersion: 'v0',
128-
baseUrl: params.baseUrl,
129-
projectId: params.projectId
130-
},
131-
{ rateLimiter: { schedule: (task) => task() } }
132-
);
133-
134125
// Asset providers
135126

136127
assetProviderFactory.register(HTTP_PROVIDER, async (params: any, logger: Logger): Promise<AssetProvider> => {
@@ -176,22 +167,19 @@ chainHistoryProviderFactory.register(
176167
async (_params: any, logger: Logger) => (await getWsClient(logger)).chainHistoryProvider
177168
);
178169

179-
chainHistoryProviderFactory.register(
180-
BLOCKFROST_PROVIDER,
181-
async (params: any, logger: Logger): Promise<ChainHistoryProvider> => {
182-
if (params.baseUrl === undefined) throw new Error(`${BlockfrostUtxoProvider.name}: ${MISSING_URL_PARAM}`);
170+
chainHistoryProviderFactory.register(BLOCKFROST_PROVIDER, async (params: any, logger) => {
171+
if (params.baseUrl === undefined) throw new Error(`${BlockfrostChainHistoryProvider.name}: ${MISSING_URL_PARAM}`);
183172

184-
return new Promise<BlockfrostChainHistoryProvider>(async (resolve) => {
185-
resolve(
186-
new BlockfrostChainHistoryProvider(
187-
getBlockfrostRemoteClient(params),
188-
await networkInfoProviderFactory.create('blockfrost', params, logger),
189-
logger
190-
)
191-
);
192-
});
193-
}
194-
);
173+
return new Promise(async (resolve) => {
174+
resolve(
175+
new BlockfrostChainHistoryProvider(
176+
new BlockfrostClient({ baseUrl: params.baseUrl }, { rateLimiter: { schedule: (task) => task() } }),
177+
await networkInfoProviderFactory.create('blockfrost', params, logger),
178+
logger
179+
)
180+
);
181+
});
182+
});
195183

196184
networkInfoProviderFactory.register(
197185
HTTP_PROVIDER,
@@ -209,16 +197,18 @@ networkInfoProviderFactory.register(
209197
async (_params: any, logger: Logger) => (await getWsClient(logger)).networkInfoProvider
210198
);
211199

212-
networkInfoProviderFactory.register(
213-
BLOCKFROST_PROVIDER,
214-
async (params: any, logger: Logger): Promise<NetworkInfoProvider> => {
215-
if (params.baseUrl === undefined) throw new Error(`${BlockfrostNetworkInfoProvider.name}: ${MISSING_URL_PARAM}`);
200+
networkInfoProviderFactory.register(BLOCKFROST_PROVIDER, async (params: any, logger) => {
201+
if (params.baseUrl === undefined) throw new Error(`${BlockfrostNetworkInfoProvider.name}: ${MISSING_URL_PARAM}`);
216202

217-
return new Promise<BlockfrostNetworkInfoProvider>(async (resolve) => {
218-
resolve(new BlockfrostNetworkInfoProvider(getBlockfrostRemoteClient(params), logger));
219-
});
220-
}
221-
);
203+
return new Promise(async (resolve) => {
204+
resolve(
205+
new BlockfrostNetworkInfoProvider(
206+
new BlockfrostClient({ baseUrl: params.baseUrl }, { rateLimiter: { schedule: (task) => task() } }),
207+
logger
208+
)
209+
);
210+
});
211+
});
222212

223213
rewardsProviderFactory.register(HTTP_PROVIDER, async (params: any, logger: Logger): Promise<RewardsProvider> => {
224214
if (params.baseUrl === undefined) throw new Error(`${rewardsHttpProvider.name}: ${MISSING_URL_PARAM}`);
@@ -228,11 +218,16 @@ rewardsProviderFactory.register(HTTP_PROVIDER, async (params: any, logger: Logge
228218
});
229219
});
230220

231-
rewardsProviderFactory.register(BLOCKFROST_PROVIDER, async (params: any, logger: Logger): Promise<RewardsProvider> => {
221+
rewardsProviderFactory.register(BLOCKFROST_PROVIDER, async (params: any, logger) => {
232222
if (params.baseUrl === undefined) throw new Error(`${BlockfrostRewardsProvider.name}: ${MISSING_URL_PARAM}`);
233223

234-
return new Promise<BlockfrostRewardsProvider>(async (resolve) => {
235-
resolve(new BlockfrostRewardsProvider(getBlockfrostRemoteClient(params), logger));
224+
return new Promise(async (resolve) => {
225+
resolve(
226+
new BlockfrostRewardsProvider(
227+
new BlockfrostClient({ baseUrl: params.baseUrl }, { rateLimiter: { schedule: (task) => task() } }),
228+
logger
229+
)
230+
);
236231
});
237232
});
238233

@@ -270,6 +265,19 @@ txSubmitProviderFactory.register(HTTP_PROVIDER, async (params: any, logger: Logg
270265
});
271266
});
272267

268+
txSubmitProviderFactory.register(BLOCKFROST_PROVIDER, async (params: any, logger) => {
269+
if (params.baseUrl === undefined) throw new Error(`${BlockfrostTxSubmitProvider.name}: ${MISSING_URL_PARAM}`);
270+
271+
return new Promise(async (resolve) => {
272+
resolve(
273+
new BlockfrostTxSubmitProvider(
274+
new BlockfrostClient({ baseUrl: params.baseUrl }, { rateLimiter: { schedule: (task) => task() } }),
275+
logger
276+
)
277+
);
278+
});
279+
});
280+
273281
utxoProviderFactory.register(HTTP_PROVIDER, async (params: any, logger: Logger): Promise<UtxoProvider> => {
274282
if (params.baseUrl === undefined) throw new Error(`${utxoHttpProvider.name}: ${MISSING_URL_PARAM}`);
275283

@@ -283,11 +291,16 @@ utxoProviderFactory.register(
283291
async (_params: any, logger: Logger) => (await getWsClient(logger)).utxoProvider
284292
);
285293

286-
utxoProviderFactory.register(BLOCKFROST_PROVIDER, async (params: any, logger: Logger): Promise<UtxoProvider> => {
294+
utxoProviderFactory.register(BLOCKFROST_PROVIDER, async (params: any, logger) => {
287295
if (params.baseUrl === undefined) throw new Error(`${BlockfrostUtxoProvider.name}: ${MISSING_URL_PARAM}`);
288296

289-
return new Promise<BlockfrostUtxoProvider>(async (resolve) => {
290-
resolve(new BlockfrostUtxoProvider(getBlockfrostRemoteClient(params), logger));
297+
return new Promise(async (resolve) => {
298+
resolve(
299+
new BlockfrostUtxoProvider(
300+
new BlockfrostClient({ baseUrl: params.baseUrl }, { rateLimiter: { schedule: (task) => task() } }),
301+
logger
302+
)
303+
);
291304
});
292305
});
293306

packages/e2e/test/blockfrost-providers/chainHistory.test.ts

Lines changed: 0 additions & 56 deletions
This file was deleted.

packages/e2e/test/blockfrost-providers/networkInfo.test.ts

Lines changed: 0 additions & 80 deletions
This file was deleted.

0 commit comments

Comments
 (0)