refactor: ensure in-memory database consistency
test: update authifier to allow for in-memory tests ci: explicitly run in-memory and mongo tests
This commit is contained in:
@@ -8,6 +8,7 @@ extern crate serde_json;
|
||||
pub mod routes;
|
||||
pub mod util;
|
||||
|
||||
use revolt_database::{Database, MongoDb};
|
||||
use rocket::{Build, Rocket};
|
||||
use rocket_cors::{AllowedOrigins, CorsOptions};
|
||||
use rocket_prometheus::PrometheusMetrics;
|
||||
@@ -33,7 +34,12 @@ pub async fn web() -> Rocket<Build> {
|
||||
|
||||
// Setup Authifier
|
||||
let authifier = Authifier {
|
||||
database: db.clone().into(),
|
||||
database: match db.clone() {
|
||||
Database::Reference(_) => Default::default(),
|
||||
Database::MongoDb(MongoDb(client, _)) => authifier::Database::MongoDb(
|
||||
authifier::database::MongoDb(client.database("revolt")),
|
||||
),
|
||||
},
|
||||
config: revolt_quark::util::authifier::config(),
|
||||
event_channel: Some(sender),
|
||||
};
|
||||
@@ -55,8 +61,14 @@ pub async fn web() -> Rocket<Build> {
|
||||
});
|
||||
|
||||
// Launch background task workers
|
||||
async_std::task::spawn(revolt_database::tasks::start_workers(db.clone()));
|
||||
async_std::task::spawn(revolt_quark::tasks::start_workers(legacy_db.clone()));
|
||||
async_std::task::spawn(revolt_database::tasks::start_workers(
|
||||
db.clone(),
|
||||
authifier.database.clone(),
|
||||
));
|
||||
async_std::task::spawn(revolt_quark::tasks::start_workers(
|
||||
legacy_db.clone(),
|
||||
authifier.database.clone(),
|
||||
));
|
||||
|
||||
// Configure CORS
|
||||
let cors = CorsOptions {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use futures::StreamExt;
|
||||
use rand::Rng;
|
||||
use redis_kiss::redis::aio::PubSub;
|
||||
use revolt_database::{events::client::EventV1, Database, DatabaseInfo, User};
|
||||
use revolt_database::{events::client::EventV1, Database, User};
|
||||
use revolt_quark::authifier::{
|
||||
models::{Account, Session},
|
||||
Authifier,
|
||||
@@ -24,20 +24,27 @@ impl TestHarness {
|
||||
.await
|
||||
.expect("valid rocket instance");
|
||||
|
||||
let db = DatabaseInfo::Auto.connect().await.expect("`Database`");
|
||||
let mut sub = redis_kiss::open_pubsub_connection()
|
||||
.await
|
||||
.expect("`PubSub`");
|
||||
|
||||
sub.psubscribe("*").await.unwrap();
|
||||
|
||||
let db = client
|
||||
.rocket()
|
||||
.state::<Database>()
|
||||
.expect("`Database`")
|
||||
.clone();
|
||||
|
||||
let authifier = client
|
||||
.rocket()
|
||||
.state::<Authifier>()
|
||||
.expect("`Authifier`")
|
||||
.clone();
|
||||
|
||||
TestHarness {
|
||||
client,
|
||||
authifier: Authifier {
|
||||
database: db.clone().into(),
|
||||
config: revolt_quark::util::authifier::config(),
|
||||
event_channel: None,
|
||||
},
|
||||
authifier,
|
||||
db,
|
||||
sub,
|
||||
event_buffer: vec![],
|
||||
|
||||
Reference in New Issue
Block a user