massalabs / massa

The Decentralized and Scaled Blockchain
https://massa.net
5.56k stars 713 forks source link

Test client the good way #1134

Closed massa-bot closed 2 years ago

massa-bot commented 2 years ago

In GitLab by @yvan-sraka

https://crates.io/crates/assert_cmd

massa-bot commented 2 years ago

In GitLab by @AureliaDolo

That seems interesting :)

massa-bot commented 2 years ago

In GitLab by @yvan-sraka

mentioned in merge request !252

massa-bot commented 2 years ago

In GitLab by @AureliaDolo

mentioned in merge request !236

damip commented 2 years ago

Client testing => big refacto

yvan-sraka commented 2 years ago

This was done partially here https://github.com/massalabs/massa/issues/1269

https://github.com/massalabs/massa/blob/main/massa-client/src/tests/scenarios.rs

yvan-sraka commented 2 years ago

The good way of testing client is automating the scenario we use for manual testing https://github.com/massalabs/massa/issues/1347

In GitLab by @AureliaDolo

TODO:

  • check list with where to find the params
  • maybe write a script (@yvan-sraka any ideas ? maybe with assert_cmd or python ?)
  • test api endpoint that are not used in the client

By hand test procedure

With a node running alongside (on the current testnet or in a dummy network #442)

  • [ ] help
  • [ ] wallet_generate_private_key: generate a private key and add it into the wallet. This private key and associated public key and address will be designated as PRI, PUB and ADR
  • [ ] wallet_info: assert PRI PUB and ADR appear with expected values
  • [ ] wallet_add_private_keys <PRI>
  • [ ] wallet_generate_private_key: generate a private key and add it into the wallet. This private key and associated public key and address will be designated as PRI2, PUB2 and ADR2
  • [ ] wallet_remove_addresses <ADR2>
  • [ ] unban 0.0.0.0
  • [ ] ban 0.0.0.0
  • [ ] node_add_staking_private_keys <PRI>
  • [ ] node_get_staking_addresses: assert it returns ADR
  • [ ] node_remove_staking_addresses <PRI2>
  • [ ] node_testnet_rewards_program_ownership_proof <ADR> my_discord_id: assert returns expected output
  • [ ] get_status
  • at that point make sure that blocks are produced (either you are producing all of them API: Add frozen/lock balance for current cycle #442 or you are fully connected to the tesnet)
  • [ ] get_addresses <ADR>
  • [ ] get_blocks BlockId where BlockId is copied pasted from node's log
  • [ ] get_endorsements EndorsementId [not yet implemented] where EndorsementId is copied pasted from node's log
  • make sure that ADR has enough coins for the following operations
  • [ ] buy_rolls <ADR> 1 0
  • [ ] sell_rolls <ADR> 1 0
  • [ ] send_transaction <ADR> <ADR> 1 0: keep the return as OPID
  • [ ] get_operations <OPID>
  • [ ] node_stop assert the node is stopped
  • [ ] exit assert it exits the client gracefully
github-actions[bot] commented 2 years ago

This issue is stale! (no activity for 60 days)