Attempt to fix test for fetching deeply nested comment (#5072)

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
This commit is contained in:
Nutomic 2024-10-01 15:21:41 +02:00 committed by Felix Ableitner
parent 1ba848f99d
commit ac89339724

View file

@ -136,6 +136,8 @@ impl Object for ApubComment {
Ok(note) Ok(note)
} }
/// Recursively fetches all parent comments. This can lead to a stack overflow so we need to
/// Box::pin all large futures on the heap.
#[tracing::instrument(skip_all)] #[tracing::instrument(skip_all)]
async fn verify( async fn verify(
note: &Note, note: &Note,
@ -145,14 +147,24 @@ impl Object for ApubComment {
verify_domains_match(note.id.inner(), expected_domain)?; verify_domains_match(note.id.inner(), expected_domain)?;
verify_domains_match(note.attributed_to.inner(), note.id.inner())?; verify_domains_match(note.attributed_to.inner(), note.id.inner())?;
verify_is_public(&note.to, &note.cc)?; verify_is_public(&note.to, &note.cc)?;
let community = note.community(context).await?; let community = Box::pin(note.community(context)).await?;
check_apub_id_valid_with_strictness(note.id.inner(), community.local, context).await?; Box::pin(check_apub_id_valid_with_strictness(
note.id.inner(),
community.local,
context,
))
.await?;
verify_is_remote_object(&note.id, context)?; verify_is_remote_object(&note.id, context)?;
verify_person_in_community(&note.attributed_to, &community, context).await?; Box::pin(verify_person_in_community(
&note.attributed_to,
&community,
context,
))
.await?;
let (post, _) = note.get_parents(context).await?; let (post, _) = Box::pin(note.get_parents(context)).await?;
let creator = note.attributed_to.dereference(context).await?; let creator = Box::pin(note.attributed_to.dereference(context)).await?;
let is_mod_or_admin = is_mod_or_admin(&mut context.pool(), &creator, community.id) let is_mod_or_admin = is_mod_or_admin(&mut context.pool(), &creator, community.id)
.await .await
.is_ok(); .is_ok();