From 4703116e3299d746593370ff4696444353261f21 Mon Sep 17 00:00:00 2001 From: shockrah Date: Thu, 7 May 2020 22:14:44 -0700 Subject: [PATCH] Verified that the join function is working as intended --- server/src/auth.rs | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/server/src/auth.rs b/server/src/auth.rs index 6967fe6..4459385 100644 --- a/server/src/auth.rs +++ b/server/src/auth.rs @@ -112,18 +112,49 @@ pub fn leave(conn: DBConn, api_key: Form) -> Status { #[cfg(test)] mod auth_tests { + use crate::invites::static_rocket_route_info_for_use_invite; + use crate::schema; + use crate::models::{Invite}; use super::*; - use rocket; + use rocket::{self, local::Client}; use diesel::mysql::MysqlConnection; + use chrono::{Duration, Utc}; + use rand::random; + use std::env; + use dotenv::dotenv; + fn setup_dotenv() -> Result<(), i32> { + match dotenv() { + Ok(_) => Ok(()), + Err(e) => panic!("`.env` could not be loaded: {:?}", e) + } + } + #[test] fn feed_n_leave() { // Create an invite in our db manually // Use that invite to join // Then leave using our neato /auth/leave route + if let Err(_denv) = setup_dotenv() { + panic!("env failed fukc") + } let app = rocket::ignite() - .mount("/auth", routes![crate::invites::use_invite, leave]) - .attach(super::DBConn::fairing()); + .mount("/invite", routes![use_invite]) + .attach(DBConn::fairing()); + let conn = MysqlConnection::establish(&env::var("DATABASE_URL").unwrap()).unwrap(); + let dt = Utc::now() + Duration::minutes(30); + let invite = Invite { + id: random::(), + uses: 1, + expires: dt.timestamp() as u64, + }; + let _ = diesel::insert_into(schema::invites::table) + .values(&invite) + .execute(&conn); - let conn = MysqlConnection::establish("mysql://freechat_dev:password@localhost:3306/freechat"); + // use our new invite to "join" the server + let rocket_c = Client::new(app).expect("Invalid rocket instance"); + let mut response = rocket_c.get(format!("/invite/join/{}/{}", invite.id, "billybob")).dispatch(); + let body: String = response.body_string().unwrap(); + println!("{}", body) } } \ No newline at end of file