mirror of
https://github.com/LemmyNet/lemmy
synced 2024-11-10 06:54:12 +00:00
Add macro assert_length!() for tests (#4348)
* Add macro assert_length!() for tests * fix * number
This commit is contained in:
parent
3cad3b2119
commit
38e64825e6
7 changed files with 48 additions and 33 deletions
|
@ -216,3 +216,12 @@ pub enum PostFeatureType {
|
||||||
/// Features to the top of the community.
|
/// Features to the top of the community.
|
||||||
Community,
|
Community,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Wrapper for assert_eq! macro. Checks that vec matches the given length, and prints the
|
||||||
|
/// vec on failure.
|
||||||
|
#[macro_export]
|
||||||
|
macro_rules! assert_length {
|
||||||
|
($len:expr, $vec:expr) => {{
|
||||||
|
assert_eq!($len, $vec.len(), "Vec has wrong length: {:?}", $vec)
|
||||||
|
}};
|
||||||
|
}
|
||||||
|
|
|
@ -399,6 +399,7 @@ mod tests {
|
||||||
};
|
};
|
||||||
use lemmy_db_schema::{
|
use lemmy_db_schema::{
|
||||||
aggregates::structs::CommentAggregates,
|
aggregates::structs::CommentAggregates,
|
||||||
|
assert_length,
|
||||||
impls::actor_language::UNDETERMINED_ID,
|
impls::actor_language::UNDETERMINED_ID,
|
||||||
newtypes::LanguageId,
|
newtypes::LanguageId,
|
||||||
source::{
|
source::{
|
||||||
|
@ -637,7 +638,7 @@ mod tests {
|
||||||
);
|
);
|
||||||
|
|
||||||
// Make sure its 1, not showing the blocked comment
|
// Make sure its 1, not showing the blocked comment
|
||||||
assert_eq!(5, read_comment_views_with_person.len());
|
assert_length!(5, read_comment_views_with_person);
|
||||||
|
|
||||||
let read_comment_from_blocked_person = CommentView::read(
|
let read_comment_from_blocked_person = CommentView::read(
|
||||||
pool,
|
pool,
|
||||||
|
@ -664,7 +665,7 @@ mod tests {
|
||||||
read_liked_comment_views[0]
|
read_liked_comment_views[0]
|
||||||
);
|
);
|
||||||
|
|
||||||
assert_eq!(1, read_liked_comment_views.len());
|
assert_length!(1, read_liked_comment_views);
|
||||||
|
|
||||||
let read_disliked_comment_views: Vec<CommentView> = CommentQuery {
|
let read_disliked_comment_views: Vec<CommentView> = CommentQuery {
|
||||||
local_user: (Some(&data.timmy_local_user_view)),
|
local_user: (Some(&data.timmy_local_user_view)),
|
||||||
|
@ -708,8 +709,8 @@ mod tests {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
// Make sure the comment parent-limited fetch is correct
|
// Make sure the comment parent-limited fetch is correct
|
||||||
assert_eq!(6, read_comment_views_top_path.len());
|
assert_length!(6, read_comment_views_top_path);
|
||||||
assert_eq!(4, read_comment_views_child_path.len());
|
assert_length!(4, read_comment_views_child_path);
|
||||||
|
|
||||||
// Make sure it contains the parent, but not the comment from the other tree
|
// Make sure it contains the parent, but not the comment from the other tree
|
||||||
let child_comments = read_comment_views_child_path
|
let child_comments = read_comment_views_child_path
|
||||||
|
@ -733,7 +734,7 @@ mod tests {
|
||||||
expected_comment_view(&data, pool).await,
|
expected_comment_view(&data, pool).await,
|
||||||
read_comment_views_top_max_depth[0]
|
read_comment_views_top_max_depth[0]
|
||||||
);
|
);
|
||||||
assert_eq!(1, read_comment_views_top_max_depth.len());
|
assert_length!(1, read_comment_views_top_max_depth);
|
||||||
|
|
||||||
let child_path = data.inserted_comment_1.path.clone();
|
let child_path = data.inserted_comment_1.path.clone();
|
||||||
let read_comment_views_parent_max_depth = CommentQuery {
|
let read_comment_views_parent_max_depth = CommentQuery {
|
||||||
|
@ -752,7 +753,7 @@ mod tests {
|
||||||
.comment
|
.comment
|
||||||
.content
|
.content
|
||||||
.eq("Comment 3"));
|
.eq("Comment 3"));
|
||||||
assert_eq!(3, read_comment_views_parent_max_depth.len());
|
assert_length!(3, read_comment_views_parent_max_depth);
|
||||||
|
|
||||||
cleanup(data, pool).await;
|
cleanup(data, pool).await;
|
||||||
}
|
}
|
||||||
|
@ -773,7 +774,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(5, all_languages.len());
|
assert_length!(5, all_languages);
|
||||||
|
|
||||||
// change user lang to finnish, should only show one post in finnish and one undetermined
|
// change user lang to finnish, should only show one post in finnish and one undetermined
|
||||||
let finnish_id = Language::read_id_from_code(pool, Some("fi"))
|
let finnish_id = Language::read_id_from_code(pool, Some("fi"))
|
||||||
|
@ -794,7 +795,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(2, finnish_comments.len());
|
assert_length!(2, finnish_comments);
|
||||||
let finnish_comment = finnish_comments
|
let finnish_comment = finnish_comments
|
||||||
.iter()
|
.iter()
|
||||||
.find(|c| c.comment.language_id == finnish_id);
|
.find(|c| c.comment.language_id == finnish_id);
|
||||||
|
@ -819,7 +820,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(1, undetermined_comment.len());
|
assert_length!(1, undetermined_comment);
|
||||||
|
|
||||||
cleanup(data, pool).await;
|
cleanup(data, pool).await;
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,6 +196,7 @@ mod tests {
|
||||||
structs::LocalUserView,
|
structs::LocalUserView,
|
||||||
};
|
};
|
||||||
use lemmy_db_schema::{
|
use lemmy_db_schema::{
|
||||||
|
assert_length,
|
||||||
source::{
|
source::{
|
||||||
community::{Community, CommunityInsertForm, CommunityModerator, CommunityModeratorForm},
|
community::{Community, CommunityInsertForm, CommunityModerator, CommunityModeratorForm},
|
||||||
instance::Instance,
|
instance::Instance,
|
||||||
|
@ -383,7 +384,7 @@ mod tests {
|
||||||
.list(pool, &timmy_view)
|
.list(pool, &timmy_view)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(reports_after_resolve.len(), 1);
|
assert_length!(1, reports_after_resolve);
|
||||||
assert_eq!(reports_after_resolve[0].creator.id, inserted_sara.id);
|
assert_eq!(reports_after_resolve[0].creator.id, inserted_sara.id);
|
||||||
|
|
||||||
// Make sure the counts are correct
|
// Make sure the counts are correct
|
||||||
|
|
|
@ -729,6 +729,7 @@ mod tests {
|
||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
use lemmy_db_schema::{
|
use lemmy_db_schema::{
|
||||||
aggregates::structs::PostAggregates,
|
aggregates::structs::PostAggregates,
|
||||||
|
assert_length,
|
||||||
impls::actor_language::UNDETERMINED_ID,
|
impls::actor_language::UNDETERMINED_ID,
|
||||||
newtypes::LanguageId,
|
newtypes::LanguageId,
|
||||||
source::{
|
source::{
|
||||||
|
@ -915,7 +916,7 @@ mod tests {
|
||||||
let mut expected_post_listing_with_user = expected_post_view(&data, pool).await;
|
let mut expected_post_listing_with_user = expected_post_view(&data, pool).await;
|
||||||
|
|
||||||
// Should be only one person, IE the bot post, and blocked should be missing
|
// Should be only one person, IE the bot post, and blocked should be missing
|
||||||
assert_eq!(1, read_post_listing.len());
|
assert_length!(1, read_post_listing);
|
||||||
|
|
||||||
assert_eq!(expected_post_listing_with_user, read_post_listing[0]);
|
assert_eq!(expected_post_listing_with_user, read_post_listing[0]);
|
||||||
expected_post_listing_with_user.my_vote = None;
|
expected_post_listing_with_user.my_vote = None;
|
||||||
|
@ -944,7 +945,7 @@ mod tests {
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
// should include bot post which has "undetermined" language
|
// should include bot post which has "undetermined" language
|
||||||
assert_eq!(2, post_listings_with_bots.len());
|
assert_length!(2, post_listings_with_bots);
|
||||||
|
|
||||||
cleanup(data, pool).await;
|
cleanup(data, pool).await;
|
||||||
}
|
}
|
||||||
|
@ -973,7 +974,7 @@ mod tests {
|
||||||
let expected_post_listing_no_person = expected_post_view(&data, pool).await;
|
let expected_post_listing_no_person = expected_post_view(&data, pool).await;
|
||||||
|
|
||||||
// Should be 2 posts, with the bot post, and the blocked
|
// Should be 2 posts, with the bot post, and the blocked
|
||||||
assert_eq!(3, read_post_listing_multiple_no_person.len());
|
assert_length!(3, read_post_listing_multiple_no_person);
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
expected_post_listing_no_person,
|
expected_post_listing_no_person,
|
||||||
|
@ -1010,7 +1011,7 @@ mod tests {
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
// Should be 0 posts after the community block
|
// Should be 0 posts after the community block
|
||||||
assert_eq!(0, read_post_listings_with_person_after_block.len());
|
assert_length!(0, read_post_listings_with_person_after_block);
|
||||||
|
|
||||||
CommunityBlock::unblock(pool, &community_block)
|
CommunityBlock::unblock(pool, &community_block)
|
||||||
.await
|
.await
|
||||||
|
@ -1075,7 +1076,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(1, read_post_listing.len());
|
assert_length!(1, read_post_listing);
|
||||||
|
|
||||||
assert_eq!(expected_post_with_upvote, read_post_listing[0]);
|
assert_eq!(expected_post_with_upvote, read_post_listing[0]);
|
||||||
|
|
||||||
|
@ -1200,7 +1201,7 @@ mod tests {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
// no language filters specified, all posts should be returned
|
// no language filters specified, all posts should be returned
|
||||||
assert_eq!(3, post_listings_all.len());
|
assert_length!(3, post_listings_all);
|
||||||
|
|
||||||
let french_id = Language::read_id_from_code(pool, Some("fr"))
|
let french_id = Language::read_id_from_code(pool, Some("fr"))
|
||||||
.await
|
.await
|
||||||
|
@ -1220,7 +1221,7 @@ mod tests {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
// only one post in french and one undetermined should be returned
|
// only one post in french and one undetermined should be returned
|
||||||
assert_eq!(2, post_listing_french.len());
|
assert_length!(2, post_listing_french);
|
||||||
assert!(post_listing_french
|
assert!(post_listing_french
|
||||||
.iter()
|
.iter()
|
||||||
.any(|p| p.post.language_id == french_id));
|
.any(|p| p.post.language_id == french_id));
|
||||||
|
@ -1242,7 +1243,7 @@ mod tests {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
// french post and undetermined language post should be returned
|
// french post and undetermined language post should be returned
|
||||||
assert_eq!(2, post_listings_french_und.len());
|
assert_length!(2, post_listings_french_und);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
UNDETERMINED_ID,
|
UNDETERMINED_ID,
|
||||||
post_listings_french_und[0].post.language_id
|
post_listings_french_und[0].post.language_id
|
||||||
|
@ -1280,7 +1281,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(1, post_listings_no_admin.len());
|
assert_length!(1, post_listings_no_admin);
|
||||||
|
|
||||||
// Removed bot post is shown to admins on its profile page
|
// Removed bot post is shown to admins on its profile page
|
||||||
data.local_user_view.local_user.admin = true;
|
data.local_user_view.local_user.admin = true;
|
||||||
|
@ -1379,7 +1380,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(post_listings_all.len(), 3);
|
assert_length!(3, post_listings_all);
|
||||||
|
|
||||||
// block the instance
|
// block the instance
|
||||||
let block_form = InstanceBlockForm {
|
let block_form = InstanceBlockForm {
|
||||||
|
@ -1396,7 +1397,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(post_listings_blocked.len(), 2);
|
assert_length!(2, post_listings_blocked);
|
||||||
assert_ne!(
|
assert_ne!(
|
||||||
post_listings_blocked[0].post.id,
|
post_listings_blocked[0].post.id,
|
||||||
post_from_blocked_instance.id
|
post_from_blocked_instance.id
|
||||||
|
@ -1415,7 +1416,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(post_listings_blocked.len(), 3);
|
assert_length!(3, post_listings_blocked);
|
||||||
|
|
||||||
Instance::delete(pool, blocked_instance.id).await.unwrap();
|
Instance::delete(pool, blocked_instance.id).await.unwrap();
|
||||||
cleanup(data, pool).await;
|
cleanup(data, pool).await;
|
||||||
|
@ -1535,7 +1536,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(1, post_listings_hide_read.len());
|
assert_length!(1, post_listings_hide_read);
|
||||||
|
|
||||||
cleanup(data, pool).await;
|
cleanup(data, pool).await;
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,6 +112,7 @@ mod tests {
|
||||||
|
|
||||||
use crate::private_message_report_view::PrivateMessageReportQuery;
|
use crate::private_message_report_view::PrivateMessageReportQuery;
|
||||||
use lemmy_db_schema::{
|
use lemmy_db_schema::{
|
||||||
|
assert_length,
|
||||||
source::{
|
source::{
|
||||||
instance::Instance,
|
instance::Instance,
|
||||||
person::{Person, PersonInsertForm},
|
person::{Person, PersonInsertForm},
|
||||||
|
@ -171,7 +172,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(1, reports.len());
|
assert_length!(1, reports);
|
||||||
assert!(!reports[0].private_message_report.resolved);
|
assert!(!reports[0].private_message_report.resolved);
|
||||||
assert_eq!(inserted_timmy.name, reports[0].private_message_creator.name);
|
assert_eq!(inserted_timmy.name, reports[0].private_message_creator.name);
|
||||||
assert_eq!(inserted_jessica.name, reports[0].creator.name);
|
assert_eq!(inserted_jessica.name, reports[0].creator.name);
|
||||||
|
@ -197,7 +198,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(1, reports.len());
|
assert_length!(1, reports);
|
||||||
assert!(reports[0].private_message_report.resolved);
|
assert!(reports[0].private_message_report.resolved);
|
||||||
assert!(reports[0].resolver.is_some());
|
assert!(reports[0].resolver.is_some());
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
|
|
@ -159,6 +159,7 @@ mod tests {
|
||||||
|
|
||||||
use crate::{private_message_view::PrivateMessageQuery, structs::PrivateMessageView};
|
use crate::{private_message_view::PrivateMessageQuery, structs::PrivateMessageView};
|
||||||
use lemmy_db_schema::{
|
use lemmy_db_schema::{
|
||||||
|
assert_length,
|
||||||
source::{
|
source::{
|
||||||
instance::Instance,
|
instance::Instance,
|
||||||
person::{Person, PersonInsertForm},
|
person::{Person, PersonInsertForm},
|
||||||
|
@ -251,7 +252,7 @@ mod tests {
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
assert_eq!(timmy_messages.len(), 3);
|
assert_length!(3, &timmy_messages);
|
||||||
assert_eq!(timmy_messages[0].creator.id, jess.id);
|
assert_eq!(timmy_messages[0].creator.id, jess.id);
|
||||||
assert_eq!(timmy_messages[0].recipient.id, timmy.id);
|
assert_eq!(timmy_messages[0].recipient.id, timmy.id);
|
||||||
assert_eq!(timmy_messages[1].creator.id, timmy.id);
|
assert_eq!(timmy_messages[1].creator.id, timmy.id);
|
||||||
|
@ -268,7 +269,7 @@ mod tests {
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
assert_eq!(timmy_unread_messages.len(), 2);
|
assert_length!(2, &timmy_unread_messages);
|
||||||
assert_eq!(timmy_unread_messages[0].creator.id, jess.id);
|
assert_eq!(timmy_unread_messages[0].creator.id, jess.id);
|
||||||
assert_eq!(timmy_unread_messages[0].recipient.id, timmy.id);
|
assert_eq!(timmy_unread_messages[0].recipient.id, timmy.id);
|
||||||
assert_eq!(timmy_unread_messages[1].creator.id, sara.id);
|
assert_eq!(timmy_unread_messages[1].creator.id, sara.id);
|
||||||
|
@ -283,7 +284,7 @@ mod tests {
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
assert_eq!(timmy_sara_messages.len(), 2);
|
assert_length!(2, &timmy_sara_messages);
|
||||||
assert_eq!(timmy_sara_messages[0].creator.id, timmy.id);
|
assert_eq!(timmy_sara_messages[0].creator.id, timmy.id);
|
||||||
assert_eq!(timmy_sara_messages[0].recipient.id, sara.id);
|
assert_eq!(timmy_sara_messages[0].recipient.id, sara.id);
|
||||||
assert_eq!(timmy_sara_messages[1].creator.id, sara.id);
|
assert_eq!(timmy_sara_messages[1].creator.id, sara.id);
|
||||||
|
@ -298,7 +299,7 @@ mod tests {
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
assert_eq!(timmy_sara_unread_messages.len(), 1);
|
assert_length!(1, &timmy_sara_unread_messages);
|
||||||
assert_eq!(timmy_sara_unread_messages[0].creator.id, sara.id);
|
assert_eq!(timmy_sara_unread_messages[0].creator.id, sara.id);
|
||||||
assert_eq!(timmy_sara_unread_messages[0].recipient.id, timmy.id);
|
assert_eq!(timmy_sara_unread_messages[0].recipient.id, timmy.id);
|
||||||
|
|
||||||
|
@ -328,7 +329,7 @@ mod tests {
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
assert_eq!(timmy_messages.len(), 1);
|
assert_length!(1, &timmy_messages);
|
||||||
|
|
||||||
let timmy_unread_messages = PrivateMessageView::get_unread_messages(pool, timmy.id)
|
let timmy_unread_messages = PrivateMessageView::get_unread_messages(pool, timmy.id)
|
||||||
.await
|
.await
|
||||||
|
|
|
@ -159,6 +159,7 @@ mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use diesel::NotFound;
|
use diesel::NotFound;
|
||||||
use lemmy_db_schema::{
|
use lemmy_db_schema::{
|
||||||
|
assert_length,
|
||||||
source::{
|
source::{
|
||||||
instance::Instance,
|
instance::Instance,
|
||||||
local_user::{LocalUser, LocalUserInsertForm, LocalUserUpdateForm},
|
local_user::{LocalUser, LocalUserInsertForm, LocalUserUpdateForm},
|
||||||
|
@ -257,7 +258,7 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(list.len(), 1);
|
assert_length!(1, list);
|
||||||
assert_eq!(list[0].person.id, data.bob.id);
|
assert_eq!(list[0].person.id, data.bob.id);
|
||||||
|
|
||||||
cleanup(data, pool).await;
|
cleanup(data, pool).await;
|
||||||
|
@ -282,7 +283,7 @@ mod tests {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let list = PersonView::banned(pool).await.unwrap();
|
let list = PersonView::banned(pool).await.unwrap();
|
||||||
assert_eq!(list.len(), 1);
|
assert_length!(1, list);
|
||||||
assert_eq!(list[0].person.id, data.alice.id);
|
assert_eq!(list[0].person.id, data.alice.id);
|
||||||
|
|
||||||
cleanup(data, pool).await;
|
cleanup(data, pool).await;
|
||||||
|
@ -307,7 +308,7 @@ mod tests {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let list = PersonView::admins(pool).await.unwrap();
|
let list = PersonView::admins(pool).await.unwrap();
|
||||||
assert_eq!(list.len(), 1);
|
assert_length!(1, list);
|
||||||
assert_eq!(list[0].person.id, data.alice.id);
|
assert_eq!(list[0].person.id, data.alice.id);
|
||||||
|
|
||||||
let is_admin = PersonView::read(pool, data.alice.id)
|
let is_admin = PersonView::read(pool, data.alice.id)
|
||||||
|
|
Loading…
Reference in a new issue