summaryrefslogtreecommitdiff
path: root/server/tests/db_test.rs
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-12-31 12:17:35 -0500
committerKjetil Orbekk <kj@orbekk.com>2022-12-31 12:55:45 -0500
commit88366acba07b678466b42829887dcdda4f583686 (patch)
treee3450615a6b4b654ea7106a00cc6b551dd4ddb26 /server/tests/db_test.rs
parentaa6d050b09dfbf3e5be112325e8e8d8a1f4dacf9 (diff)
Add database conversion for bridge types
Diffstat (limited to 'server/tests/db_test.rs')
-rw-r--r--server/tests/db_test.rs45
1 files changed, 43 insertions, 2 deletions
diff --git a/server/tests/db_test.rs b/server/tests/db_test.rs
index 6acc21e..e495d78 100644
--- a/server/tests/db_test.rs
+++ b/server/tests/db_test.rs
@@ -1,3 +1,4 @@
+use protocol::card::{Rank, Suit};
use sqlx::Row;
use tracing::info;
@@ -8,7 +9,47 @@ mod common;
async fn basic_db_query() -> Result<(), anyhow::Error> {
let db = common::TestDb::new().await;
let db = db.db();
- let number = sqlx::query!(r#"select 1 + 1 as number"#).fetch_one(&db).await?;
- assert_eq!(number.number, Some(2));
+ let row = sqlx::query!(r#"select 1 + 1 as number"#)
+ .fetch_one(&db)
+ .await?;
+ assert_eq!(row.number, Some(2));
+ Ok(())
+}
+
+#[tokio::test]
+#[ignore]
+async fn rank_type_conversion() -> Result<(), anyhow::Error> {
+ let db = common::TestDb::new().await;
+ let db = db.db();
+ let row = sqlx::query!(r#"select cast (2 as rank) as "rank!: Rank""#)
+ .fetch_one(&db)
+ .await?;
+ assert_eq!(Rank::Two, row.rank);
+
+ let rank = Rank::Ace;
+ let (equal,): (bool,) = sqlx::query_as(r#"select ($1 is not distinct from 14)"#)
+ .bind(rank)
+ .fetch_one(&db)
+ .await?;
+ assert!(equal);
+ Ok(())
+}
+
+#[tokio::test]
+#[ignore]
+async fn suit_type_conversion() -> Result<(), anyhow::Error> {
+ let db = common::TestDb::new().await;
+ let db = db.db();
+ let row = sqlx::query!(r#"select cast ('heart' as suit) as "suit!: Suit""#)
+ .fetch_one(&db)
+ .await?;
+ assert_eq!(Suit::Heart, row.suit);
+
+ let suit = Suit::Spade;
+ let (equal,): (bool,) = sqlx::query_as(r#"select ($1 is not distinct from 'spade')"#)
+ .bind(suit)
+ .fetch_one(&db)
+ .await?;
+ assert!(equal);
Ok(())
}