add test for comment view languages
This commit is contained in:
parent
f5b1ee6c34
commit
bc7450ae3e
2 changed files with 64 additions and 2 deletions
|
@ -233,7 +233,7 @@ impl<'a> CommentQuery<'a> {
|
|||
.inner_join(language::table)
|
||||
.left_join(
|
||||
local_user_language::table.on(
|
||||
post::language_id
|
||||
comment::language_id
|
||||
.eq(local_user_language::language_id)
|
||||
.and(local_user_language::local_user_id.eq(local_user_id_join)),
|
||||
),
|
||||
|
@ -391,7 +391,9 @@ mod tests {
|
|||
source::{
|
||||
comment::*,
|
||||
community::*,
|
||||
language::Language,
|
||||
local_user::LocalUserForm,
|
||||
local_user_language::LocalUserLanguage,
|
||||
person::*,
|
||||
person_block::PersonBlockForm,
|
||||
post::*,
|
||||
|
@ -479,10 +481,12 @@ mod tests {
|
|||
let inserted_comment_1 =
|
||||
Comment::create(&conn, &comment_form_1, Some(&inserted_comment_0.path)).unwrap();
|
||||
|
||||
let finnish_id = Language::read_id_from_code(&conn, "fi").unwrap();
|
||||
let comment_form_2 = CommentForm {
|
||||
content: "Comment 2".into(),
|
||||
creator_id: inserted_person.id,
|
||||
post_id: inserted_post.id,
|
||||
language_id: Some(finnish_id),
|
||||
..CommentForm::default()
|
||||
};
|
||||
|
||||
|
@ -499,10 +503,12 @@ mod tests {
|
|||
let _inserted_comment_3 =
|
||||
Comment::create(&conn, &comment_form_3, Some(&inserted_comment_1.path)).unwrap();
|
||||
|
||||
let polish_id = Language::read_id_from_code(&conn, "pl").unwrap();
|
||||
let comment_form_4 = CommentForm {
|
||||
content: "Comment 4".into(),
|
||||
creator_id: inserted_person.id,
|
||||
post_id: inserted_post.id,
|
||||
language_id: Some(polish_id),
|
||||
..CommentForm::default()
|
||||
};
|
||||
|
||||
|
@ -679,6 +685,62 @@ mod tests {
|
|||
cleanup(data, &conn);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_languages() {
|
||||
let conn = establish_unpooled_connection();
|
||||
let data = init_data(&conn);
|
||||
|
||||
// by default, user has all languages enabled and should see all comments
|
||||
// (except from blocked user)
|
||||
let all_languages = CommentQuery::builder()
|
||||
.conn(&conn)
|
||||
.local_user(Some(&data.inserted_local_user))
|
||||
.build()
|
||||
.list()
|
||||
.unwrap();
|
||||
assert_eq!(5, all_languages.len());
|
||||
|
||||
// change user lang to finnish, should only show single finnish comment
|
||||
let finnish_id = Language::read_id_from_code(&conn, "fi").unwrap();
|
||||
LocalUserLanguage::update_user_languages(
|
||||
&conn,
|
||||
Some(vec![finnish_id]),
|
||||
data.inserted_local_user.id,
|
||||
)
|
||||
.unwrap();
|
||||
let finnish_comment = CommentQuery::builder()
|
||||
.conn(&conn)
|
||||
.local_user(Some(&data.inserted_local_user))
|
||||
.build()
|
||||
.list()
|
||||
.unwrap();
|
||||
assert_eq!(1, finnish_comment.len());
|
||||
assert_eq!(
|
||||
data.inserted_comment_2.content,
|
||||
finnish_comment[0].comment.content
|
||||
);
|
||||
assert_eq!(finnish_id, finnish_comment[0].comment.language_id);
|
||||
|
||||
// now show all comments with undetermined language (which is the default value)
|
||||
let undetermined_id = Language::read_id_from_code(&conn, "und").unwrap();
|
||||
LocalUserLanguage::update_user_languages(
|
||||
&conn,
|
||||
Some(vec![undetermined_id]),
|
||||
data.inserted_local_user.id,
|
||||
)
|
||||
.unwrap();
|
||||
let undetermined_comment = CommentQuery::builder()
|
||||
.conn(&conn)
|
||||
.local_user(Some(&data.inserted_local_user))
|
||||
.build()
|
||||
.list()
|
||||
.unwrap();
|
||||
assert_eq!(3, undetermined_comment.len());
|
||||
|
||||
cleanup(data, &conn);
|
||||
}
|
||||
|
||||
fn cleanup(data: Data, conn: &PgConnection) {
|
||||
CommentLike::remove(&conn, data.inserted_person.id, data.inserted_comment_0.id).unwrap();
|
||||
Comment::delete(&conn, data.inserted_comment_0.id).unwrap();
|
||||
|
|
|
@ -9,5 +9,5 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
|
|||
# so to load the config we need to traverse to the repo root
|
||||
export LEMMY_CONFIG_LOCATION=../../config/config.hjson
|
||||
RUST_BACKTRACE=1 \
|
||||
cargo test -p lemmy_db_views --no-fail-fast --all-features
|
||||
cargo test -p lemmy_db_views --no-fail-fast --all-features -- --nocapture
|
||||
# Add this to do printlns: -- --nocapture
|
||||
|
|
Loading…
Reference in a new issue