Verified that the join function is working as intended
This commit is contained in:
parent
cd41dc64c3
commit
4703116e32
@ -112,18 +112,49 @@ pub fn leave(conn: DBConn, api_key: Form<AuthKey>) -> Status {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod auth_tests {
|
mod auth_tests {
|
||||||
|
use crate::invites::static_rocket_route_info_for_use_invite;
|
||||||
|
use crate::schema;
|
||||||
|
use crate::models::{Invite};
|
||||||
use super::*;
|
use super::*;
|
||||||
use rocket;
|
use rocket::{self, local::Client};
|
||||||
use diesel::mysql::MysqlConnection;
|
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() {
|
fn feed_n_leave() {
|
||||||
// Create an invite in our db manually
|
// Create an invite in our db manually
|
||||||
// Use that invite to join
|
// Use that invite to join
|
||||||
// Then leave using our neato /auth/leave route
|
// Then leave using our neato /auth/leave route
|
||||||
|
if let Err(_denv) = setup_dotenv() {
|
||||||
|
panic!("env failed fukc")
|
||||||
|
}
|
||||||
let app = rocket::ignite()
|
let app = rocket::ignite()
|
||||||
.mount("/auth", routes![crate::invites::use_invite, leave])
|
.mount("/invite", routes![use_invite])
|
||||||
.attach(super::DBConn::fairing());
|
.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::<u64>(),
|
||||||
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user