Chain Simulator tests fixes - #1630
Open
stefangutica wants to merge 9 commits into
Open
stefangutica wants to merge 9 commits into
stefangutica wants to merge 9 commits into
Conversation
|
k6 load testing comparison.
Legend: Avg - Average Response Time, Max - Maximum Response Time, 90 - 90th Percentile, 95 - 95th Percentile |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- websocket: retry a connection only after connect_error. calling connect() while the handshake is in flight sent a second CONNECT packet, the server opened a second socket and every message arrived twice - websocket: subscribe once per client, wait for the subscription acks and count distinct messages, since the broadcaster replays rounds on timeout - run the test files missing from the sequencer list in a fixed order - rethrow errors from the transaction helpers instead of returning placeholders that fail later, unrelated assertions - poll the api for bob's nft instead of a fixed sleep Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cs tests the transaction pool warmer, enabled only in the e2e config, resolved the action of every pending transaction and smart contract result each second, including the ESDTTransfer that delivers an issued token, before the token was indexed. the unresolved token properties were then cached for an hour, so later transfers of that token came back without an action, depending on whether a warmer tick caught that result in the pool. the warmer is now off, as on mainnet and devnet, and the pool is still read on request. the issuance helpers also wait until the token or collection can be found through the same elastic query the api runs, before returning it.
radumojic
approved these changes
Sep 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reasoning
development, and a different test failed each time.action: the transaction pool warmer, enabled only in the e2e config, resolved every pending transaction and SCR each second. That included theESDTTransferSCR that delivers a newly issued token, which it looked up before the token was indexed. The miss was cached for an hour, so every later transfer of that token came back withoutaction.Proposed Changes
connect_error, subscribe once per client, and wait for the subscription acks;transactionPoolWarmer, as on mainnet and devnet (/poolis still read on request), and enabledfastWarm.tokens/_search?q=_id:<id>). The Elastic URL is added to the test config (ELASTIC_URL).prepare-test-datawaits on the API's own view (tokens, collections, NFTs, shards, node ratings) instead of a fixed 30s sleep.sendTransaction,deployScandgetNoncerethrow instead of returning'n/a'or0, anddeployScfails when there is noSCDeployevent.How to test
Chain simulator e2e tests workflowseveral times on this branch. A single green run proves little, since it passed intermittently before.npm run start-chain-simulator,docker compose up -d,npm run start:mainnet:e2e,npm run prepare:test-data, thennpm run test:cs-e2e.