use cosmwasm_std::Addr;
use mars_owner::{OwnerError, OwnerUpdate};
use mars_params::error::ContractError::Owner;
use crate::helpers::{assert_err, MockEnv};
pub mod helpers;
#[test]
fn owner_set_on_init() {
let mock = MockEnv::new().build().unwrap();
let owner = mock.query_owner();
assert_eq!("owner", &owner.to_string())
}
#[test]
fn only_owner_can_execute_updates() {
let mut mock = MockEnv::new().build().unwrap();
let bad_guy = Addr::unchecked("doctor_otto_983");
let res = mock.update_owner(
&bad_guy,
OwnerUpdate::ProposeNewOwner {
proposed: bad_guy.to_string(),
},
);
assert_err(res, Owner(OwnerError::NotOwner {}));
}
#[test]
fn owner_can_execute_updates() {
let mut mock = MockEnv::new().build().unwrap();
let ownership = mock.query_ownership();
assert_eq!(ownership.emergency_owner, None);
let em_owner = "miles_morales".to_string();
mock.update_owner(
&mock.query_owner(),
OwnerUpdate::SetEmergencyOwner {
emergency_owner: em_owner.clone(),
},
)
.unwrap();
let ownership = mock.query_ownership();
assert_eq!(ownership.emergency_owner, Some(em_owner));
}