simplify test context

upgrade-apub-lib
Felix Ableitner 3 months ago
parent cca2a123d0
commit d202838670

@ -55,32 +55,16 @@ impl LemmyContext {
&self.rate_limit_cell
}
/// Initialize a context for use in tests, optionally blocks network requests.
/// Initialize a context for use in tests which blocks federation network calls.
///
/// Do not use this in production code.
pub async fn init_test_context() -> Data<LemmyContext> {
Self::build_test_context(true).await
}
/// Initialize a context for use in tests, with network requests allowed.
/// TODO: get rid of this if possible.
///
/// Do not use this in production code.
pub async fn init_test_context_with_networking() -> Data<LemmyContext> {
Self::build_test_context(false).await
}
async fn build_test_context(block_networking: bool) -> Data<LemmyContext> {
// call this to run migrations
let pool = build_db_pool_for_tests().await;
let client = client_builder(&SETTINGS).build().expect("build client");
let mut client = ClientBuilder::new(client);
if block_networking {
client = client.with(BlockedMiddleware);
}
let client = client.build();
let client = ClientBuilder::new(client).build();
let secret = Secret {
id: 0,
jwt_secret: String::new(),
@ -92,6 +76,7 @@ impl LemmyContext {
let config = FederationConfig::builder()
.domain(context.settings().hostname.clone())
.app_data(context)
// Dont allow any network fetches
.http_fetch_limit(0)
.build()
.await
@ -99,18 +84,3 @@ impl LemmyContext {
config.to_request_data()
}
}
struct BlockedMiddleware;
/// A reqwest middleware which blocks all requests
#[async_trait::async_trait]
impl Middleware for BlockedMiddleware {
async fn handle(
&self,
_req: Request,
_extensions: &mut Extensions,
_next: Next<'_>,
) -> reqwest_middleware::Result<Response> {
Err(anyhow!("Network requests not allowed").into())
}
}

@ -327,7 +327,7 @@ mod tests {
#[tokio::test]
#[serial]
async fn test_link_metadata() {
let context = LemmyContext::init_test_context_with_networking().await;
let context = LemmyContext::init_test_context().await;
let sample_url = Url::parse("https://gitlab.com/IzzyOnDroid/repo/-/wikis/FAQ").unwrap();
let sample_res = fetch_link_metadata(&sample_url, false, &context)
.await

Loading…
Cancel
Save