diff --git a/contract/src/tests.rs b/contract/src/tests.rs index db0c343..ee7c89f 100644 --- a/contract/src/tests.rs +++ b/contract/src/tests.rs @@ -179,6 +179,10 @@ impl Predict { self.query(&QueryMsg::Market { id: self.id }) } + fn query_global_info(&self) -> StdResult { + self.query(&QueryMsg::GlobalInfo {}) + } + fn query_tokens(&self, better: &Addr, outcome: u8) -> StdResult { let PositionsResp { outcomes } = self.query(&QueryMsg::Positions { id: self.id, @@ -192,6 +196,20 @@ impl Predict { }) } + fn exec_appoint_admin(&self, addr: &Addr) -> AnyResult { + self.execute( + &self.admin, + &ExecuteMsg::AppointAdmin { + addr: addr.to_string(), + }, + None, + ) + } + + fn exec_accept_admin(&self, addr: &Addr) -> AnyResult { + self.execute(addr, &ExecuteMsg::AcceptAdmin {}, None) + } + fn withdraw(&self, addr: &Addr, outcome: u8, tokens: Token) -> AnyResult { self.execute( addr, @@ -567,6 +585,22 @@ fn market_with_only_one_outcome() { .unwrap(); } +#[test] +fn change_admin() { + let app = Predict::new(); + + app.exec_accept_admin(&app.arbitrator).unwrap_err(); + app.exec_appoint_admin(&app.arbitrator).unwrap(); + app.exec_accept_admin(&app.admin).unwrap_err(); + app.exec_appoint_admin(&app.better).unwrap(); + app.exec_accept_admin(&app.arbitrator).unwrap_err(); + app.exec_accept_admin(&app.better).unwrap(); + app.exec_appoint_admin(&app.admin).unwrap_err(); + + let global_info = app.query_global_info().unwrap(); + assert_eq!(global_info.admin, app.better); +} + proptest! { #[test] fn test_cpmm_buy_sell(pool_one in 1..1000u32, pool_two in 1..1000u32, buy in 2..50u32) {