This project contains mocks that allow smart contract developers to write robust unit tests that include native provenance module functionality.
```rust // Example unit test that uses provwasm mocks for a resolve name query.
// ref: contracts/name/src/msg.rs
pub enum QueryMsg { Resolve { name: String }, }
// ref: contracts/name/src/contract.rs
use cosmwasmstd::testing::mockenv; use cosmwasmstd::frombinary; use provwasmmocks::mockdependencies; use provwasm_std::Name;
fn queryresolve() { // Create provenance mock deps with a single bound name. let mut deps = mockdependencies(&[]); deps.querier .with_names(&[("a.pb", "tp1y0txdp3sqmxjvfdaa8hfvwcljl8ugcfv26uync", false)]);
// Call the smart contract query function to resolve the address for our test name.
let bin = query(
deps.as_ref(),
mock_env(),
QueryMsg::Resolve {
name: "a.pb".into(),
},
)
.unwrap();
// Ensure that we got the expected address.
let rep: Name = from_binary(&bin).unwrap();
assert_eq!(
rep.address.as_str(),
"tp1y0txdp3sqmxjvfdaa8hfvwcljl8ugcfv26uync"
)
} ```