I am implementing a smart contract according to the psp34 openbrush standard. Now I want to do some testing. I want to mint a token and then use it in some methods. Some of the methods of my smart contract require, that the caller is either the owner of the token or approved by the owner. How can I change from the creator (the account that mints the token) of the token to another account that then uses the token? For example when testing with truffle you can use [deployer, investor] and then specify the caller with {from: investor}. Is something similar possible here?
1 Answer
I found examples of how to test for this and more use cases in the openbrush github repo. Here is the example that I needed for my question.
Here is what the important parts are:
use openbrush::{
contracts::psp34::*,
test_utils::{
accounts,
change_caller,
}
};
...
#[ink::test]
fn transfer_token() {
let accounts = accounts();
...
let owner = accounts.alice;
let spender = accounts.bob;
...
change_caller(spender);
}