From a84fd60179698b8fb009cc11ce3d492bce765770 Mon Sep 17 00:00:00 2001 From: Daniel Karzel Date: Fri, 24 Sep 2021 18:46:42 +1000 Subject: [PATCH] Add failing test A test that shows, that if we save two CFDs in the database, we fail to correctly load the second CFD by order-uuid. --- daemon/src/db.rs | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/daemon/src/db.rs b/daemon/src/db.rs index 1ff78b2..40135f4 100644 --- a/daemon/src/db.rs +++ b/daemon/src/db.rs @@ -472,6 +472,52 @@ mod tests { assert_eq!(cfd, cfd_from_db) } + #[tokio::test] + async fn test_insert_and_load_cfd_by_order_id_multiple() { + let pool = setup_test_db().await; + let mut conn = pool.acquire().await.unwrap(); + + let order = Order::from_default_with_price(Usd(dec!(10000)), Origin::Theirs).unwrap(); + + let cfd = Cfd::new( + order.clone(), + Usd(dec!(1000)), + CfdState::OutgoingOrderRequest { + common: CfdStateCommon { + transition_timestamp: SystemTime::now(), + }, + }, + ); + + let order_id = order.id; + + insert_order(&order, &mut conn).await.unwrap(); + insert_cfd(cfd.clone(), &mut conn).await.unwrap(); + + let cfd_from_db = load_cfd_by_order_id(order_id, &mut conn).await.unwrap(); + assert_eq!(cfd, cfd_from_db); + + let order = Order::from_default_with_price(Usd(dec!(10000)), Origin::Theirs).unwrap(); + + let cfd = Cfd::new( + order.clone(), + Usd(dec!(1000)), + CfdState::OutgoingOrderRequest { + common: CfdStateCommon { + transition_timestamp: SystemTime::now(), + }, + }, + ); + + let order_id = order.id; + + insert_order(&order, &mut conn).await.unwrap(); + insert_cfd(cfd.clone(), &mut conn).await.unwrap(); + + let cfd_from_db = load_cfd_by_order_id(order_id, &mut conn).await.unwrap(); + assert_eq!(cfd, cfd_from_db); + } + #[tokio::test] async fn test_insert_new_cfd_state() { let pool = setup_test_db().await;