Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Marconi-Sidechain Test Plan #93

Open
4 of 61 tasks
catch-21 opened this issue Jul 11, 2023 · 0 comments
Open
4 of 61 tasks

Marconi-Sidechain Test Plan #93

catch-21 opened this issue Jul 11, 2023 · 0 comments

Comments

@catch-21
Copy link
Contributor

catch-21 commented Jul 11, 2023

A checklist of functional Integration and End-to-end tests to be implemented (see ADR-8 for overall strategy)

Integration tests

CLI

  • CLI-1: (PLT-6859) that the application starts correctly using each of the the cli options (mandatory and optional)
    • Mandatory flags: node config path, node socket path, marconi db directory, magic id
    • Optional flags: address filter and asset id filter
  • CLI-2: (PLT-6836) local validation correctly catches invalid input, such as incorrectness of address formats for all cli options that take an input and a useful error is shown.
  • CLI-3: query version has correct commit hash

RPC

  • RPC-1: (PLT-6865) that input validation catches each error scenario with useful feedback

    • use property tests to randomise invalid inputs ?
    • getUtxosFromAddress
      • invalid format address (e.g. pubkeyhash instead of Bech32)
      • unsupported address (e.g. stake address)
      • address not included in the --address-to-index
      • createdAfterSlotNo higher than current slot
      • createAfterSlotNo and unspentBeforeSlotNo not a natural number
      • unspentBeforeSlotNo value larger than createdAfterSlotNo
    • getBurnTokensEvents
      • invalid policyId hash
      • invalid afterTx id format
      • policyId not included in --match-asset-id filter
      • policyId is included in --match-asset-id filter but the assetName is not
      • afterTx value is not an existing burn txId (e.g. use one that only mints)
    • getNonceByEpoch
      • epochNo in future
      • epochNo in byron era
      • epochNo not a natural number
    • getActiveStakePoolDelegationByEpoch
      • epochNo not a natural number
      • epochNo in future
    • getActiveStakePoolDelegationByEpoch
      • epochNo not a natural number
      • epochNo in future
  • RPC-2: (PLT-6865) sanity check each RPC method for a valid query to prove validation doesn't block correct use (response data is not important)

    • use property tests to randomise invalid inputs ?
    • getCurrentSyncedBlock
    • getUtxosFromAddress
    • getBurnTokensEvents
    • getNonceByEpoch
    • getActiveStakePoolDelegationByEpoch
  • RPC-3: (PLT-6866) check that only mandatory fields are required for each method

  • RPC-4: getCurrentSyncedBlock test pre-fully-synced response ?

End-to-end tests

  • RPC-1: (PLT-6867) test query response for each method against known correct data when there is lots of other relevant transaction data around the same area (e.g. period or asset policy)
    • getCurrentSyncedBlock
      • check for valid values in result object (e.g. presence and bytestring length)
    • getUtxosFromAddress
      • check at least one unspent and one spent utxo for correct key attributes
      • use createdAfterSlotNo and unspentBeforeSlotNo together to find a specfic utxo
      • query using more than one address included in the --address-to-index filter
      • query address when no --address-to-index filter is used
    • getBurnTokensEvents
      • query using more than one policyId= and assetName pair included in the --match-asset-id filter
      • query policyId when no --match-asset-id is used
      • use slotNo and afterTx together to find a specific burn event
    • getNonceByEpoch
      • check for valid values in result object (e.g. known correct nonce)
    • getActiveStakePoolDelegationByEpoch
      • check for valid values in result object(e.g. check known delegation of a particular epoch remains consistent)
  • RPC-2: (PLT-6868) test query response for each method compared against db-sync's result for a board set of data (query with a wide time period and large number of addresses and assets)
    • PLT-6165 getUtxosFromAddress
    • PLT-5384 getBurnTokensEvents
    • getNonceByEpoch
    • getActiveStakePoolDelegationByEpoch
    • run all tests nightly in CI
    • produce test reports for each test in CI
      • host reports in Allure format
catch-21 pushed a commit that referenced this issue Jul 11, 2023
catch-21 pushed a commit that referenced this issue Jul 11, 2023
catch-21 pushed a commit that referenced this issue Jul 11, 2023
catch-21 pushed a commit that referenced this issue Jul 11, 2023
catch-21 pushed a commit that referenced this issue Jul 11, 2023
catch-21 pushed a commit that referenced this issue Jul 11, 2023
catch-21 pushed a commit that referenced this issue Jul 11, 2023
catch-21 pushed a commit that referenced this issue Jul 11, 2023
catch-21 pushed a commit that referenced this issue Jul 11, 2023
catch-21 pushed a commit that referenced this issue Jul 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant