Module multitest

Module multitest 

Source
Available on crate feature mt only.
Expand description

This module provides utilities to work with cw_multi_test crate.

§Example usage:

pub struct SvContract;

#[sylvia::contract]
impl SvContract {
    #[sv::msg(instantiate)]
    pub fn instantiate(&self, ctx: InstantiateCtx) -> StdResult<Response> {
    }

    #[sv::msg(exec)]
    pub fn execute(&self, ctx: ExecCtx, param: u32) -> StdResult<Response> {
    }

    #[sv::msg(query)]
    pub fn query(&self, ctx: QueryCtx) -> StdResult<Response> {
    }
}

#[cfg(test)]
mod tests {
    #[test]
    fn example_test() {
        let app = sylvia::multitest::App::default();
        let code_id = sv::mt::CodeId::store_code(&app);
        let owner = "owner";

        let contract = code_id
            .instantiate()
            .with_label("MyContract") // optional
            .with_admin(owner) // optional
            .call(owner)
            .unwrap();

        contract.execute(42).call(owner).unwrap();
        contract.query().unwrap();
    }
}

Structs§

App
Wrapper around cw_multi_test::App to provide additional functionalities.
ExecProxy
Intermiediate proxy to set additional information before sending an execute message.
MigrateProxy
Intermiediate proxy to set additional information before sending an migrate message.
Proxy
Proxy to interact with a smart contract initialized on the App.