Skip to main content
  • ADR
  • ADR-007: E2E Tests
On this page

Status

In progress

Context

E2E tests for inbound and outbound flow as well as key generation and vault migration.

Test Cases Template

NoScenarioPre-conditionPre-condition checkStepsExpected resultCovered By
1
2
3

Test Cases

NoScenarioPre-conditionPre-condition checkStepsExpected resultCovered By
1Inbound transfer- Funded BTC addr- 3 observer nodes- 3 int3face nodes- 3 BTC nodesObserver int3face, BTC nodes are healthy1. Send tokens from BTC addr to the vault2. Wait until the tx is confirmed1. Int3face balance is funded2. Vault is funded3. Int3face token supply == vault balanceTODO
2Outbound transfer- Funded int3face addr- 3 observer nodes- 3 int3face nodes- 3 BTC nodesObserver int3face, BTC nodes are healthy1. Send MsgOutboundTransfer1. BTC addr is funded2. Vault supply is decreased3. Int3face token supply == vault balanceTODO
3Key generation- 3 observer nodes- 3 int3face nodes- 3 BTC nodesObserver int3face, BTC nodes are healthy1. Generate gov proposal to execute KeyGen tx2. Vote on the proposal and accept it1. Old vault is empty2. New vault is funded3. New vault balance is decreased by the feeTODO
4Vault migration: inbound transfer to the new vault- Funded BTC addr- 3 observer nodes- 3 int3face nodes- 3 BTC nodesObserver int3face, BTC nodes are healthy1. Generate gov proposal to execute KeyGen tx2. Vote on the proposal and accept it3. Send tokens from BTC addr to the new vault1. Old vault is empty2. New vault is funded (old vault + incoming tokens)3. New vault balance is decreased by the fee4. Int3face balance is funded5. Int3face token supply == vault balance (considering fees)TODO
5Vault migration: outbound transfer from the new vault- Funded int3face addr- 3 observer nodes- 3 int3face nodes- 3 BTC nodesObserver int3face, BTC nodes are healthy1. Generate gov proposal to execute KeyGen tx2. Vote on the proposal and accept it3. Send MsgOutboundTransfer1. Old vault is empty2. New vault is funded (old vault - outgoing tokens)3. New vault balance is decreased by the fee4. BTC addr is funded5. Int3face token supply == vault balance (considering fees)TODO
6Vault migration: multiple chains- Funded int3face addr- 3 observer nodes- 3 int3face nodes- 3 BTC nodes- 3 DOGE nodesObserver int3face, BTC, DOGE nodes are healthy1. Generate gov proposal to execute KeyGen tx2. Vote on the proposal and accept it3. Send MsgOutboundTransfer to BTC4. Send MsgOutboundTransfer to DOGE1. Old vault is empty2. New vault is funded (old vault - outgoing tokens)3. New vault balance is decreased by the fee4. BTC addr is funded5. DOGE addr is funded5. Int3face token supply == vault balance for both BTC and DOGE (considering fees)TODO
7Observer shutdown after vault migration- Funded int3face addr- 3 observer nodes- 3 int3face nodes- 3 BTC nodes- 3 DOGE nodesObserver int3face, BTC, DOGE nodes are healthy1. Generate gov proposal to execute KeyGen tx2. Vote on the proposal and accept it3. Shutdown the observer1. Old vault is empty2. New vault is funded (old vault - outgoing tokens)3. New vault balance is decreased by the fee4. Pool public key is updated for all the observers5. Last observed height is updated for all the observersTODO

Steps to implement

  1. Find libraries to run all the nodes in docker containers (there may be some dedicated repos to run BTC and DOGE): 79.
  2. Scaffold tests, test utilities and helpers: 80.
  3. Test Inbound transfer: 81.
  4. Test Outbound transfer: 82.
  5. Test Key generation: 83.
  6. Test Vault migration: inbound transfer to the new vault: 84.
  7. Test Vault migration: outbound transfer from the new vault: 85.
  8. Test Vault migration: multiple chains: 86.
  9. Test Observer shutdown after vault migration: 87.
  10. Research how to run tests in the CI/CD: 88.