From 670513961a4e6403d01f29b4a06a13a359fd303f Mon Sep 17 00:00:00 2001 From: Mide_xol Date: Sun, 26 Apr 2026 18:43:07 +0100 Subject: [PATCH] feat: add cross-chain integration tests for bridge initialization #335 --- contracts/teachlink/src/cross_chain_tests.rs | 22 ++++++++++++++++++++ contracts/teachlink/src/lib.rs | 3 +++ 2 files changed, 25 insertions(+) create mode 100644 contracts/teachlink/src/cross_chain_tests.rs diff --git a/contracts/teachlink/src/cross_chain_tests.rs b/contracts/teachlink/src/cross_chain_tests.rs new file mode 100644 index 00000000..e1da1e22 --- /dev/null +++ b/contracts/teachlink/src/cross_chain_tests.rs @@ -0,0 +1,22 @@ +use crate::bridge::Bridge; +use crate::errors::BridgeError; +use soroban_sdk::{testutils::Address as _, Address, Env}; + +#[test] +fn test_bridge_initialization_and_access_control() { + let env = Env::default(); + env.mock_all_auths(); + + let admin = Address::generate(&env); + let token = Address::generate(&env); + let fee_recipient = Address::generate(&env); + let min_validators = 2; + + // Test Initialization + let result = Bridge::initialize(&env, token.clone(), admin.clone(), min_validators, fee_recipient.clone()); + assert!(result.is_ok()); + + // Test Double Initialization (Should Fail) + let result_fail = Bridge::initialize(&env, token, admin, min_validators, fee_recipient); + assert_eq!(result_fail.unwrap_err(), BridgeError::AlreadyInitialized); +} diff --git a/contracts/teachlink/src/lib.rs b/contracts/teachlink/src/lib.rs index 52073185..0f7a0540 100644 --- a/contracts/teachlink/src/lib.rs +++ b/contracts/teachlink/src/lib.rs @@ -1784,3 +1784,6 @@ impl TeachLinkBridge { network_recovery::NetworkRecovery::is_fallback_active(&env) } } + +#[cfg(test)] +mod cross_chain_tests;