summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/tests/table_test.rs23
1 files changed, 17 insertions, 6 deletions
diff --git a/server/tests/table_test.rs b/server/tests/table_test.rs
index a131768..5b1350b 100644
--- a/server/tests/table_test.rs
+++ b/server/tests/table_test.rs
@@ -1,9 +1,12 @@
+use std::ops::Deref;
+
use protocol::bridge_engine::TableState;
-use rand::{thread_rng, Rng, random};
+use rand::{random, thread_rng, Rng};
use server::{
error::BridgeError,
table::{DbTable, InMemoryTable, Table},
};
+use tracing::info;
use uuid::Uuid;
mod common;
@@ -80,13 +83,21 @@ async fn db_table_idempotent() -> Result<(), anyhow::Error> {
#[ignore]
async fn db_table_persistence() -> Result<(), anyhow::Error> {
let db = common::TestDb::new().await;
- let mut table = Box::new(
- DbTable::new(db.db().clone(), Uuid::new_v4(), InMemoryTable::new())
- .await?,
- );
+ let id = Uuid::new_v4();
+
+ let create_table = {
+ || async {
+ let db = db.db().clone();
+ Box::new(DbTable::new(db, id, InMemoryTable::new()).await.unwrap())
+ }
+ };
+ let mut table = create_table().await;
table = table.set_board(1, random()).await?;
- for _i in 0..(thread_rng().gen_range(0..200)) {
+ assert_eq!(table.state(), create_table().await.state());
+ for i in 0..(thread_rng().gen_range(0..200)) {
+ info!("move {i}");
table = advance_table(table).await?;
+ assert_eq!(table.state(), create_table().await.state());
}
Ok(())
}