aboutsummaryrefslogtreecommitdiff
path: root/backend/tests/util/mod.rs
diff options
context:
space:
mode:
authorIlion Beyst <ilion.beyst@gmail.com>2021-12-30 11:45:59 +0100
committerIlion Beyst <ilion.beyst@gmail.com>2021-12-30 11:45:59 +0100
commit3edf5d60f54bfd0cd2c818e5fb1ca133e324325d (patch)
tree9b8bd057e3e27c9e2488957f02ffc8de4ed4c438 /backend/tests/util/mod.rs
parent71ee6c99e963d96286cae8d0bfc2f20a9c9c920b (diff)
downloadplanetwars.dev-3edf5d60f54bfd0cd2c818e5fb1ca133e324325d.tar.xz
planetwars.dev-3edf5d60f54bfd0cd2c818e5fb1ca133e324325d.zip
rename to planetwars-server
Diffstat (limited to 'backend/tests/util/mod.rs')
-rw-r--r--backend/tests/util/mod.rs59
1 files changed, 0 insertions, 59 deletions
diff --git a/backend/tests/util/mod.rs b/backend/tests/util/mod.rs
deleted file mode 100644
index f34e9f3..0000000
--- a/backend/tests/util/mod.rs
+++ /dev/null
@@ -1,59 +0,0 @@
-use std::future::Future;
-
-use diesel::RunQueryDsl;
-use mozaic4_backend::DbConn;
-use rocket::{http::Header, local::asynchronous::Client};
-
-// We use a lock to synchronize between tests so DB operations don't collide.
-// For now. In the future, we'll have a nice way to run each test in a DB
-// transaction so we can regain concurrency.
-static DB_LOCK: parking_lot::Mutex<()> = parking_lot::const_mutex(());
-
-async fn reset_db(db: &DbConn) {
- db.run(|conn| {
- diesel::sql_query(
- r#"
- TRUNCATE TABLE users, sessions,
- bots, code_bundles"#,
- )
- .execute(conn)
- .expect("drop all tables");
- })
- .await
-}
-
-pub async fn run_test<F, R>(test_closure: F)
-where
- F: FnOnce(Client, DbConn) -> R,
- R: Future<Output = ()>,
-{
- let _lock = DB_LOCK.lock();
-
- let client = Client::untracked(mozaic4_backend::rocket())
- .await
- .expect("failed to create test client");
- let db = mozaic4_backend::DbConn::get_one(client.rocket())
- .await
- .expect("failed to get db connection");
-
- // make sure we start with a clean DB
- reset_db(&db).await;
-
- test_closure(client, db).await;
-}
-
-pub struct BearerAuth {
- token: String,
-}
-
-impl BearerAuth {
- pub fn new(token: String) -> Self {
- Self { token }
- }
-}
-
-impl<'a> Into<Header<'a>> for BearerAuth {
- fn into(self) -> Header<'a> {
- Header::new("Authorization", format!("Bearer {}", self.token))
- }
-}