From 04b3b7bd9050b89bffb7ecb2338facb59e12c12d Mon Sep 17 00:00:00 2001 From: Eric Biggs Date: Sat, 12 Oct 2024 19:03:12 -0400 Subject: [PATCH] Added Test Delays Supabase sets rate limits, so a one-minute delay has been added when tests send emails to ensure we don't hit them. --- tests/client_tests.rs | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/tests/client_tests.rs b/tests/client_tests.rs index d2fa7b0..26e35b3 100644 --- a/tests/client_tests.rs +++ b/tests/client_tests.rs @@ -1,4 +1,5 @@ -use std::{collections::HashMap, env}; +use core::time; +use std::{collections::HashMap, env, thread}; use supabase_auth::models::{ AuthClient, DesktopResendParams, LogoutScope, ResendParams, SignInWithOAuthOptions, @@ -95,40 +96,37 @@ async fn send_login_email_with_magic_link() { let demo_email = env::var("DEMO_EMAIL").unwrap(); - let _response = auth_client + let response = auth_client .send_login_email_with_magic_link(demo_email) .await; - assert!(_response.is_ok()) -} - -#[tokio::test] -async fn send_email_with_otp() { - let auth_client = create_test_client(); - - let demo_email = env::var("DEMO_EMAIL").unwrap(); - - let response = auth_client.send_email_with_otp(demo_email, None).await; - if response.is_err() { eprintln!("{:?}", response.as_ref().unwrap_err()) } + // Wait to prevent running into Supabase rate limits when running cargo test + let one_minute = time::Duration::from_secs(60); + thread::sleep(one_minute); + assert!(response.is_ok()) } #[tokio::test] -async fn send_sms_with_otp() { +async fn send_email_with_otp() { let auth_client = create_test_client(); - let demo_phone = env::var("DEMO_PHONE").unwrap(); + let demo_email = env::var("DEMO_EMAIL").unwrap(); - let response = auth_client.send_sms_with_otp(demo_phone).await; + let response = auth_client.send_email_with_otp(demo_email, None).await; if response.is_err() { eprintln!("{:?}", response.as_ref().unwrap_err()) } + // Wait to prevent running into Supabase rate limits when running cargo test + let one_minute = time::Duration::from_secs(60); + thread::sleep(one_minute); + assert!(response.is_ok()) } @@ -316,6 +314,10 @@ async fn reset_password_for_email_test() { let response = auth_client.reset_password_for_email(demo_email).await; + // Wait to prevent running into Supabase rate limits when running cargo test + let one_minute = time::Duration::from_secs(60); + thread::sleep(one_minute); + assert!(response.is_ok()) } @@ -342,6 +344,10 @@ async fn resend_email_test() { options: None, }; + // Wait to prevent running into Supabase rate limits when running cargo test + let one_minute = time::Duration::from_secs(60); + thread::sleep(one_minute); + let response = auth_client.resend(ResendParams::Desktop(credentials)).await; assert!(response.is_ok() && session.unwrap().user.email == demo_email)