Skip to content

Commit 308bae6

Browse files
authored
Box test utils err and remove RefCells from test objects (metaplex-foundation#1097)
1 parent 78095a3 commit 308bae6

File tree

5 files changed

+107
-125
lines changed

5 files changed

+107
-125
lines changed

bubblegum/program/tests/simple.rs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ pub async fn context_tree_and_leaves() -> Result<(
5858
async fn test_create_tree_and_mint_passes() {
5959
// The mint operation implicitly called below also verifies that the on-chain tree
6060
// root matches the expected value as leaves are added.
61-
let (context, tree, _) = context_tree_and_leaves().await.unwrap();
61+
let (context, mut tree, _) = context_tree_and_leaves().await.unwrap();
6262

6363
let payer = context.payer();
6464

@@ -71,7 +71,7 @@ async fn test_create_tree_and_mint_passes() {
7171

7272
#[tokio::test]
7373
async fn test_creator_verify_and_unverify_passes() {
74-
let (context, tree, mut leaves) = context_tree_and_leaves().await.unwrap();
74+
let (context, mut tree, mut leaves) = context_tree_and_leaves().await.unwrap();
7575

7676
// `verify_creator` and `unverify_creator` also validate the on-chain tree root
7777
// always has the expected value via the inner `TxBuilder::execute` call.
@@ -91,7 +91,7 @@ async fn test_creator_verify_and_unverify_passes() {
9191

9292
#[tokio::test]
9393
async fn test_delegate_passes() {
94-
let (_, tree, mut leaves) = context_tree_and_leaves().await.unwrap();
94+
let (_, mut tree, mut leaves) = context_tree_and_leaves().await.unwrap();
9595
let new_delegate = Keypair::new();
9696

9797
// `delegate` also validates whether the on-chain tree root always has the expected
@@ -104,7 +104,7 @@ async fn test_delegate_passes() {
104104

105105
#[tokio::test]
106106
async fn test_transfer_passes() {
107-
let (_, tree, mut leaves) = context_tree_and_leaves().await.unwrap();
107+
let (_, mut tree, mut leaves) = context_tree_and_leaves().await.unwrap();
108108
let new_owner = Keypair::new();
109109

110110
// `transfer` also validates whether the on-chain tree root always has the expected
@@ -117,7 +117,7 @@ async fn test_transfer_passes() {
117117

118118
#[tokio::test]
119119
async fn test_delegated_transfer_passes() {
120-
let (mut context, tree, mut leaves) = context_tree_and_leaves().await.unwrap();
120+
let (mut context, mut tree, mut leaves) = context_tree_and_leaves().await.unwrap();
121121
let delegate = Keypair::new();
122122
let new_owner = Keypair::new();
123123

@@ -143,7 +143,7 @@ async fn test_delegated_transfer_passes() {
143143

144144
#[tokio::test]
145145
async fn test_burn_passes() {
146-
let (_, tree, leaves) = context_tree_and_leaves().await.unwrap();
146+
let (_, mut tree, leaves) = context_tree_and_leaves().await.unwrap();
147147

148148
// `burn` also validates whether the on-chain tree root always has the expected
149149
// value via the inner `TxBuilder::execute` call.
@@ -155,7 +155,7 @@ async fn test_burn_passes() {
155155

156156
#[tokio::test]
157157
async fn test_set_tree_delegate_passes() {
158-
let (context, tree, _) = context_tree_and_leaves().await.unwrap();
158+
let (context, mut tree, _) = context_tree_and_leaves().await.unwrap();
159159
let new_tree_delegate = Keypair::new();
160160

161161
// `set_tree_delegate` also validates whether the on-chain tree root always has the expected
@@ -175,7 +175,7 @@ async fn test_set_tree_delegate_passes() {
175175

176176
#[tokio::test]
177177
async fn test_reedem_and_cancel_passes() {
178-
let (_, tree, leaves) = context_tree_and_leaves().await.unwrap();
178+
let (_, mut tree, leaves) = context_tree_and_leaves().await.unwrap();
179179

180180
// `redeem` and `cancel_redeem` also validate the on-chain tree root
181181
// always has the expected value via the inner `TxBuilder::execute` call.
@@ -194,7 +194,7 @@ async fn test_reedem_and_cancel_passes() {
194194

195195
#[tokio::test]
196196
async fn test_decompress_passes() {
197-
let (ctx, tree, mut leaves) = context_tree_and_leaves().await.unwrap();
197+
let (ctx, mut tree, mut leaves) = context_tree_and_leaves().await.unwrap();
198198

199199
for leaf in leaves.iter_mut() {
200200
tree.verify_creator(leaf, &ctx.default_creators[0])
@@ -317,11 +317,11 @@ async fn test_create_public_tree_and_mint_passes() {
317317
// The mint operation implicitly called below also verifies that the on-chain tree
318318
// root matches the expected value as leaves are added.
319319
let mut context = BubblegumTestContext::new().await.unwrap();
320-
let tree = context
320+
let mut tree = context
321321
.create_public_tree::<MAX_DEPTH, MAX_BUF_SIZE>()
322322
.await
323323
.unwrap();
324-
let tree_private = context
324+
let mut tree_private = context
325325
.default_create_tree::<MAX_DEPTH, MAX_BUF_SIZE>()
326326
.await
327327
.unwrap();
@@ -347,13 +347,15 @@ async fn test_create_public_tree_and_mint_passes() {
347347
let cfg = tree.read_tree_config().await.unwrap();
348348
assert_eq!(cfg.num_minted, 1);
349349

350-
if let Err(BanksClient(BanksClientError::TransactionError(e))) =
351-
tree_private.mint_v1_non_owner(&minter, &mut args).await
352-
{
353-
assert_eq!(
354-
e,
355-
TransactionError::InstructionError(0, InstructionError::Custom(6016),)
356-
);
350+
if let Err(err) = tree_private.mint_v1_non_owner(&minter, &mut args).await {
351+
if let BanksClient(BanksClientError::TransactionError(e)) = *err {
352+
assert_eq!(
353+
e,
354+
TransactionError::InstructionError(0, InstructionError::Custom(6016),)
355+
);
356+
} else {
357+
panic!("Wrong variant");
358+
}
357359
} else {
358360
panic!("Should have failed");
359361
}

bubblegum/program/tests/utils/context.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ impl BubblegumTestContext {
9494
.banks_client
9595
.process_transaction(tx)
9696
.await
97-
.map_err(Error::BanksClient)
97+
.map_err(|err| Box::new(Error::BanksClient(err)))
9898
}
9999

100100
pub fn payer(&self) -> Keypair {
@@ -150,7 +150,7 @@ impl BubblegumTestContext {
150150
&self,
151151
) -> Result<Tree<MAX_DEPTH, MAX_BUFFER_SIZE>> {
152152
let payer = self.payer();
153-
let tree = Tree::<MAX_DEPTH, MAX_BUFFER_SIZE>::with_creator(&payer, self.client());
153+
let mut tree = Tree::<MAX_DEPTH, MAX_BUFFER_SIZE>::with_creator(&payer, self.client());
154154
tree.alloc(&payer).await?;
155155
tree.create(&payer).await?;
156156
Ok(tree)
@@ -160,7 +160,7 @@ impl BubblegumTestContext {
160160
&self,
161161
) -> Result<Tree<MAX_DEPTH, MAX_BUFFER_SIZE>> {
162162
let payer = self.payer();
163-
let tree = Tree::<MAX_DEPTH, MAX_BUFFER_SIZE>::with_creator(&payer, self.client());
163+
let mut tree = Tree::<MAX_DEPTH, MAX_BUFFER_SIZE>::with_creator(&payer, self.client());
164164
tree.alloc(&payer).await?;
165165
tree.create_public(&payer).await?;
166166
Ok(tree)
@@ -171,7 +171,7 @@ impl BubblegumTestContext {
171171
&self,
172172
num_mints: u64,
173173
) -> Result<(Tree<MAX_DEPTH, MAX_BUFFER_SIZE>, Vec<LeafArgs>)> {
174-
let tree = self
174+
let mut tree = self
175175
.default_create_tree::<MAX_DEPTH, MAX_BUFFER_SIZE>()
176176
.await?;
177177

bubblegum/program/tests/utils/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pub enum Error {
2222
Signer(SignerError),
2323
}
2424

25-
pub type Result<T> = result::Result<T, Error>;
25+
pub type Result<T> = result::Result<T, Box<Error>>;
2626

2727
pub fn program_test() -> ProgramTest {
2828
let mut test = ProgramTest::new("mpl_bubblegum", mpl_bubblegum::id(), None);

0 commit comments

Comments
 (0)