mars-params 1.0.7

Contract storing the asset params for Credit Manager and Red Bank.
Documentation
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));
}