Skip to content

Commit 998aa58

Browse files
authored
Improve flaky contract tests (#1009)
1 parent b49ed33 commit 998aa58

File tree

1 file changed

+9
-16
lines changed
  • e2e-tests/src/test/button_game

1 file changed

+9
-16
lines changed

e2e-tests/src/test/button_game/mod.rs

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -349,20 +349,9 @@ pub async fn button_game_reset() -> Result<()> {
349349
wait_for_death(&conn, &button).await?;
350350
button.reset(&sign(&conn, &authority)).await?;
351351

352-
let _ = assert_recv(
353-
&mut events,
354-
|event| {
355-
event.contract == button.as_ref().into() && event.name == Some("GameReset".to_string())
356-
},
357-
"GameReset event",
358-
);
359-
let _ = assert_recv(
360-
&mut events,
361-
|event| {
362-
event.contract == marketplace.as_ref().into() && event.name == Some("Reset".to_string())
363-
},
364-
"Marketplace Reset event",
365-
);
352+
assert_recv_id(&mut events, "GameReset").await;
353+
assert_recv_id(&mut events, "Reset").await;
354+
366355
let deadline_new = button.deadline(&conn).await?;
367356
assert!(deadline_new > deadline_old);
368357
assert!(
@@ -449,6 +438,8 @@ async fn button_game_play<F: Fn(u128, u128)>(
449438
.await?;
450439
wait_for_death(&conn, &button).await?;
451440
button.reset(&sign(&conn, &authority)).await?;
441+
let event = assert_recv_id(&mut events, "GameReset").await;
442+
let_assert!(Some(&Value::UInt(reset_at)) = event.data.get("when"));
452443
let old_button_balance = ticket_token
453444
.balance_of(&conn, &button.as_ref().into())
454445
.await?;
@@ -470,9 +461,11 @@ async fn button_game_play<F: Fn(u128, u128)>(
470461
.await?
471462
== old_button_balance + 1
472463
);
464+
let_assert!(Some(&Value::UInt(pressed_at)) = event.data.get("when"));
465+
let time_to_sleep = pressed_at - reset_at + 3;
473466

474-
info!("Waiting before pressing again");
475-
sleep(Duration::from_secs(10)).await;
467+
info!("Waiting {} seconds before pressing again", time_to_sleep);
468+
sleep(Duration::from_secs(time_to_sleep as u64)).await;
476469

477470
button.press(&sign(&conn, player)).await?;
478471
let event = assert_recv_id(&mut events, "ButtonPressed").await;

0 commit comments

Comments
 (0)