use protocol::card::{Rank, Suit}; mod common; #[tokio::test] #[ignore] async fn basic_db_query() -> Result<(), anyhow::Error> { let db = common::TestDb::new().await; let db = db.db(); 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(()) }