diff --git a/contracts/mock-oracle/src/lib.rs b/contracts/mock-oracle/src/lib.rs index 8131c4129..ea6e72c5b 100644 --- a/contracts/mock-oracle/src/lib.rs +++ b/contracts/mock-oracle/src/lib.rs @@ -765,5 +765,19 @@ pub mod mock_oracle_contract { test::set_caller::(accounts.bob); assert_eq!(oracle.reset(1), Err(OracleError::Unauthorized)); } + + #[ink::test] + fn non_admin_cannot_transfer_admin() { + let accounts = test::default_accounts::(); + let mut oracle = setup(); + // A non-admin caller cannot hand the admin role to someone else. + test::set_caller::(accounts.bob); + assert_eq!( + oracle.transfer_admin(accounts.charlie), + Err(OracleError::Unauthorized) + ); + // Admin role is unchanged after the rejected call. + assert_eq!(oracle.admin(), accounts.alice); + } } }