mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-11-24 05:11:18 +00:00
Merge branch 'main' into reenable-crates-publish
This commit is contained in:
commit
eb56ce8cbe
14 changed files with 149 additions and 45 deletions
24
Cargo.lock
generated
24
Cargo.lock
generated
|
@ -2523,7 +2523,7 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_api"
|
name = "lemmy_api"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"activitypub_federation",
|
"activitypub_federation",
|
||||||
"actix-web",
|
"actix-web",
|
||||||
|
@ -2551,7 +2551,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_api_common"
|
name = "lemmy_api_common"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"activitypub_federation",
|
"activitypub_federation",
|
||||||
"actix-web",
|
"actix-web",
|
||||||
|
@ -2585,7 +2585,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_api_crud"
|
name = "lemmy_api_crud"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"activitypub_federation",
|
"activitypub_federation",
|
||||||
"actix-web",
|
"actix-web",
|
||||||
|
@ -2607,7 +2607,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_apub"
|
name = "lemmy_apub"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"activitypub_federation",
|
"activitypub_federation",
|
||||||
"actix-web",
|
"actix-web",
|
||||||
|
@ -2646,7 +2646,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_db_schema"
|
name = "lemmy_db_schema"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"activitypub_federation",
|
"activitypub_federation",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
@ -2682,7 +2682,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_db_views"
|
name = "lemmy_db_views"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix-web",
|
"actix-web",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
@ -2701,7 +2701,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_db_views_actor"
|
name = "lemmy_db_views_actor"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"diesel",
|
"diesel",
|
||||||
|
@ -2718,7 +2718,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_db_views_moderator"
|
name = "lemmy_db_views_moderator"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"diesel",
|
"diesel",
|
||||||
"diesel-async",
|
"diesel-async",
|
||||||
|
@ -2730,7 +2730,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_federate"
|
name = "lemmy_federate"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"activitypub_federation",
|
"activitypub_federation",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
@ -2753,7 +2753,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_routes"
|
name = "lemmy_routes"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"activitypub_federation",
|
"activitypub_federation",
|
||||||
"actix-web",
|
"actix-web",
|
||||||
|
@ -2777,7 +2777,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_server"
|
name = "lemmy_server"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"activitypub_federation",
|
"activitypub_federation",
|
||||||
"actix-cors",
|
"actix-cors",
|
||||||
|
@ -2819,7 +2819,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lemmy_utils"
|
name = "lemmy_utils"
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix-web",
|
"actix-web",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
|
24
Cargo.toml
24
Cargo.toml
|
@ -1,5 +1,5 @@
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.19.0"
|
version = "0.19.1-rc.1"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "A link aggregator for the fediverse"
|
description = "A link aggregator for the fediverse"
|
||||||
license = "AGPL-3.0"
|
license = "AGPL-3.0"
|
||||||
|
@ -84,16 +84,16 @@ unused_self = "deny"
|
||||||
unwrap_used = "deny"
|
unwrap_used = "deny"
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
lemmy_api = { version = "=0.19.0", path = "./crates/api" }
|
lemmy_api = { version = "=0.19.1-rc.1", path = "./crates/api" }
|
||||||
lemmy_api_crud = { version = "=0.19.0", path = "./crates/api_crud" }
|
lemmy_api_crud = { version = "=0.19.1-rc.1", path = "./crates/api_crud" }
|
||||||
lemmy_apub = { version = "=0.19.0", path = "./crates/apub" }
|
lemmy_apub = { version = "=0.19.1-rc.1", path = "./crates/apub" }
|
||||||
lemmy_utils = { version = "=0.19.0", path = "./crates/utils" }
|
lemmy_utils = { version = "=0.19.1-rc.1", path = "./crates/utils" }
|
||||||
lemmy_db_schema = { version = "=0.19.0", path = "./crates/db_schema" }
|
lemmy_db_schema = { version = "=0.19.1-rc.1", path = "./crates/db_schema" }
|
||||||
lemmy_api_common = { version = "=0.19.0", path = "./crates/api_common" }
|
lemmy_api_common = { version = "=0.19.1-rc.1", path = "./crates/api_common" }
|
||||||
lemmy_routes = { version = "=0.19.0", path = "./crates/routes" }
|
lemmy_routes = { version = "=0.19.1-rc.1", path = "./crates/routes" }
|
||||||
lemmy_db_views = { version = "=0.19.0", path = "./crates/db_views" }
|
lemmy_db_views = { version = "=0.19.1-rc.1", path = "./crates/db_views" }
|
||||||
lemmy_db_views_actor = { version = "=0.19.0", path = "./crates/db_views_actor" }
|
lemmy_db_views_actor = { version = "=0.19.1-rc.1", path = "./crates/db_views_actor" }
|
||||||
lemmy_db_views_moderator = { version = "=0.19.0", path = "./crates/db_views_moderator" }
|
lemmy_db_views_moderator = { version = "=0.19.1-rc.1", path = "./crates/db_views_moderator" }
|
||||||
activitypub_federation = { version = "0.5.0-beta.6", default-features = false, features = [
|
activitypub_federation = { version = "0.5.0-beta.6", default-features = false, features = [
|
||||||
"actix-web",
|
"actix-web",
|
||||||
] }
|
] }
|
||||||
|
@ -164,7 +164,7 @@ lemmy_utils = { workspace = true }
|
||||||
lemmy_db_schema = { workspace = true }
|
lemmy_db_schema = { workspace = true }
|
||||||
lemmy_api_common = { workspace = true }
|
lemmy_api_common = { workspace = true }
|
||||||
lemmy_routes = { workspace = true }
|
lemmy_routes = { workspace = true }
|
||||||
lemmy_federate = { version = "0.19.0", path = "crates/federate" }
|
lemmy_federate = { version = "0.19.1-rc.1", path = "crates/federate" }
|
||||||
activitypub_federation = { workspace = true }
|
activitypub_federation = { workspace = true }
|
||||||
diesel = { workspace = true }
|
diesel = { workspace = true }
|
||||||
diesel-async = { workspace = true }
|
diesel-async = { workspace = true }
|
||||||
|
|
|
@ -9,7 +9,7 @@ export RUST_LOG="warn,lemmy_server=debug,lemmy_federate=debug,lemmy_api=debug,le
|
||||||
export LEMMY_TEST_FAST_FEDERATION=1 # by default, the persistent federation queue has delays in the scale of 30s-5min
|
export LEMMY_TEST_FAST_FEDERATION=1 # by default, the persistent federation queue has delays in the scale of 30s-5min
|
||||||
|
|
||||||
# pictrs setup
|
# pictrs setup
|
||||||
if ! [ -f "pict-rs" ]; then
|
if [ ! -f "pict-rs" ]; then
|
||||||
curl "https://git.asonix.dog/asonix/pict-rs/releases/download/v0.5.0-beta.2/pict-rs-linux-amd64" -o api_tests/pict-rs
|
curl "https://git.asonix.dog/asonix/pict-rs/releases/download/v0.5.0-beta.2/pict-rs-linux-amd64" -o api_tests/pict-rs
|
||||||
chmod +x api_tests/pict-rs
|
chmod +x api_tests/pict-rs
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -10,6 +10,7 @@ import {
|
||||||
deletePrivateMessage,
|
deletePrivateMessage,
|
||||||
unfollowRemotes,
|
unfollowRemotes,
|
||||||
waitUntil,
|
waitUntil,
|
||||||
|
reportPrivateMessage,
|
||||||
} from "./shared";
|
} from "./shared";
|
||||||
|
|
||||||
let recipient_id: number;
|
let recipient_id: number;
|
||||||
|
@ -109,3 +110,42 @@ test("Delete a private message", async () => {
|
||||||
betaPms1.private_messages.length,
|
betaPms1.private_messages.length,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("Create a private message report", async () => {
|
||||||
|
let pmRes = await createPrivateMessage(alpha, recipient_id);
|
||||||
|
let betaPms1 = await waitUntil(
|
||||||
|
() => listPrivateMessages(beta),
|
||||||
|
m =>
|
||||||
|
!!m.private_messages.find(
|
||||||
|
e =>
|
||||||
|
e.private_message.ap_id ===
|
||||||
|
pmRes.private_message_view.private_message.ap_id,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
let betaPm = betaPms1.private_messages[0];
|
||||||
|
expect(betaPm).toBeDefined();
|
||||||
|
|
||||||
|
// Make sure that only the recipient can report it, so this should fail
|
||||||
|
await expect(
|
||||||
|
reportPrivateMessage(
|
||||||
|
alpha,
|
||||||
|
pmRes.private_message_view.private_message.id,
|
||||||
|
"a reason",
|
||||||
|
),
|
||||||
|
).rejects.toStrictEqual(Error("couldnt_create_report"));
|
||||||
|
|
||||||
|
// This one should pass
|
||||||
|
let reason = "another reason";
|
||||||
|
let report = await reportPrivateMessage(
|
||||||
|
beta,
|
||||||
|
betaPm.private_message.id,
|
||||||
|
reason,
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(report.private_message_report_view.private_message.id).toBe(
|
||||||
|
betaPm.private_message.id,
|
||||||
|
);
|
||||||
|
expect(report.private_message_report_view.private_message_report.reason).toBe(
|
||||||
|
reason,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
|
@ -4,12 +4,14 @@ import {
|
||||||
BlockInstance,
|
BlockInstance,
|
||||||
BlockInstanceResponse,
|
BlockInstanceResponse,
|
||||||
CommunityId,
|
CommunityId,
|
||||||
|
CreatePrivateMessageReport,
|
||||||
GetReplies,
|
GetReplies,
|
||||||
GetRepliesResponse,
|
GetRepliesResponse,
|
||||||
GetUnreadCountResponse,
|
GetUnreadCountResponse,
|
||||||
InstanceId,
|
InstanceId,
|
||||||
LemmyHttp,
|
LemmyHttp,
|
||||||
PostView,
|
PostView,
|
||||||
|
PrivateMessageReportResponse,
|
||||||
SuccessResponse,
|
SuccessResponse,
|
||||||
} from "lemmy-js-client";
|
} from "lemmy-js-client";
|
||||||
import { CreatePost } from "lemmy-js-client/dist/types/CreatePost";
|
import { CreatePost } from "lemmy-js-client/dist/types/CreatePost";
|
||||||
|
@ -781,6 +783,18 @@ export async function reportComment(
|
||||||
return api.createCommentReport(form);
|
return api.createCommentReport(form);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function reportPrivateMessage(
|
||||||
|
api: LemmyHttp,
|
||||||
|
private_message_id: number,
|
||||||
|
reason: string,
|
||||||
|
): Promise<PrivateMessageReportResponse> {
|
||||||
|
let form: CreatePrivateMessageReport = {
|
||||||
|
private_message_id,
|
||||||
|
reason,
|
||||||
|
};
|
||||||
|
return api.createPrivateMessageReport(form);
|
||||||
|
}
|
||||||
|
|
||||||
export async function listCommentReports(
|
export async function listCommentReports(
|
||||||
api: LemmyHttp,
|
api: LemmyHttp,
|
||||||
): Promise<ListCommentReportsResponse> {
|
): Promise<ListCommentReportsResponse> {
|
||||||
|
|
|
@ -31,6 +31,11 @@ pub async fn create_pm_report(
|
||||||
let private_message_id = data.private_message_id;
|
let private_message_id = data.private_message_id;
|
||||||
let private_message = PrivateMessage::read(&mut context.pool(), private_message_id).await?;
|
let private_message = PrivateMessage::read(&mut context.pool(), private_message_id).await?;
|
||||||
|
|
||||||
|
// Make sure that only the recipient of the private message can create a report
|
||||||
|
if person_id != private_message.recipient_id {
|
||||||
|
Err(LemmyErrorType::CouldntCreateReport)?
|
||||||
|
}
|
||||||
|
|
||||||
let report_form = PrivateMessageReportForm {
|
let report_form = PrivateMessageReportForm {
|
||||||
creator_id: person_id,
|
creator_id: person_id,
|
||||||
private_message_id,
|
private_message_id,
|
||||||
|
|
|
@ -98,9 +98,9 @@ impl ActivityChannel {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn close(outgoing_activities_task: JoinHandle<LemmyResult<()>>) -> LemmyResult<()> {
|
pub async fn close(outgoing_activities_task: JoinHandle<()>) -> LemmyResult<()> {
|
||||||
ACTIVITY_CHANNEL.keepalive_sender.lock().await.take();
|
ACTIVITY_CHANNEL.keepalive_sender.lock().await.take();
|
||||||
outgoing_activities_task.await??;
|
outgoing_activities_task.await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -225,11 +225,12 @@ where
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn handle_outgoing_activities(context: Data<LemmyContext>) -> LemmyResult<()> {
|
pub async fn handle_outgoing_activities(context: Data<LemmyContext>) {
|
||||||
while let Some(data) = ActivityChannel::retrieve_activity().await {
|
while let Some(data) = ActivityChannel::retrieve_activity().await {
|
||||||
match_outgoing_activities(data, &context.reset_request_count()).await?
|
if let Err(e) = match_outgoing_activities(data, &context.reset_request_count()).await {
|
||||||
|
tracing::warn!("error while saving outgoing activity to db: {e}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn match_outgoing_activities(
|
pub async fn match_outgoing_activities(
|
||||||
|
|
|
@ -87,7 +87,7 @@ impl Comment {
|
||||||
let updated_comment = diesel::update(comment.find(comment_id))
|
let updated_comment = diesel::update(comment.find(comment_id))
|
||||||
.set(path.eq(ltree))
|
.set(path.eq(ltree))
|
||||||
.get_result::<Self>(conn)
|
.get_result::<Self>(conn)
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
// Update the child count for the parent comment_aggregates
|
// Update the child count for the parent comment_aggregates
|
||||||
// You could do this with a trigger, but since you have to do this manually anyway,
|
// You could do this with a trigger, but since you have to do this manually anyway,
|
||||||
|
@ -121,7 +121,7 @@ where ca.comment_id = c.id"
|
||||||
sql_query(update_child_count_stmt).execute(conn).await?;
|
sql_query(update_child_count_stmt).execute(conn).await?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
updated_comment
|
Ok(updated_comment)
|
||||||
}) as _
|
}) as _
|
||||||
})
|
})
|
||||||
.await
|
.await
|
||||||
|
|
|
@ -412,7 +412,8 @@ fn queries<'a>() -> Queries<
|
||||||
.unwrap_or(true)
|
.unwrap_or(true)
|
||||||
{
|
{
|
||||||
// Do not hide read posts when it is a user profile view
|
// Do not hide read posts when it is a user profile view
|
||||||
if let (Some(_creator_id), Some(person_id)) = (options.creator_id, my_person_id) {
|
// Or, only hide read posts on non-profile views
|
||||||
|
if let (None, Some(person_id)) = (options.creator_id, my_person_id) {
|
||||||
query = query.filter(not(is_read(person_id)));
|
query = query.filter(not(is_read(person_id)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -741,7 +742,7 @@ mod tests {
|
||||||
local_user::{LocalUser, LocalUserInsertForm, LocalUserUpdateForm},
|
local_user::{LocalUser, LocalUserInsertForm, LocalUserUpdateForm},
|
||||||
person::{Person, PersonInsertForm},
|
person::{Person, PersonInsertForm},
|
||||||
person_block::{PersonBlock, PersonBlockForm},
|
person_block::{PersonBlock, PersonBlockForm},
|
||||||
post::{Post, PostInsertForm, PostLike, PostLikeForm, PostUpdateForm},
|
post::{Post, PostInsertForm, PostLike, PostLikeForm, PostRead, PostUpdateForm},
|
||||||
},
|
},
|
||||||
traits::{Blockable, Crud, Joinable, Likeable},
|
traits::{Blockable, Crud, Joinable, Likeable},
|
||||||
utils::{build_db_pool_for_tests, DbPool, RANK_DEFAULT},
|
utils::{build_db_pool_for_tests, DbPool, RANK_DEFAULT},
|
||||||
|
@ -749,7 +750,7 @@ mod tests {
|
||||||
SubscribedType,
|
SubscribedType,
|
||||||
};
|
};
|
||||||
use serial_test::serial;
|
use serial_test::serial;
|
||||||
use std::time::Duration;
|
use std::{collections::HashSet, time::Duration};
|
||||||
|
|
||||||
struct Data {
|
struct Data {
|
||||||
inserted_instance: Instance,
|
inserted_instance: Instance,
|
||||||
|
@ -1497,6 +1498,47 @@ mod tests {
|
||||||
cleanup(data, pool).await;
|
cleanup(data, pool).await;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
#[serial]
|
||||||
|
async fn post_listings_hide_read() {
|
||||||
|
let pool = &build_db_pool_for_tests().await;
|
||||||
|
let pool = &mut pool.into();
|
||||||
|
let mut data = init_data(pool).await;
|
||||||
|
|
||||||
|
// Make sure local user hides read posts
|
||||||
|
let local_user_form = LocalUserUpdateForm {
|
||||||
|
show_read_posts: Some(false),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
let inserted_local_user =
|
||||||
|
LocalUser::update(pool, data.local_user_view.local_user.id, &local_user_form)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
data.local_user_view.local_user = inserted_local_user;
|
||||||
|
|
||||||
|
// Mark a post as read
|
||||||
|
PostRead::mark_as_read(
|
||||||
|
pool,
|
||||||
|
HashSet::from([data.inserted_bot_post.id]),
|
||||||
|
data.local_user_view.person.id,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
// Make sure you don't see the read post in the results
|
||||||
|
let post_listings_hide_read = PostQuery {
|
||||||
|
sort: Some(SortType::New),
|
||||||
|
local_user: Some(&data.local_user_view),
|
||||||
|
..Default::default()
|
||||||
|
}
|
||||||
|
.list(pool)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
assert_eq!(1, post_listings_hide_read.len());
|
||||||
|
|
||||||
|
cleanup(data, pool).await;
|
||||||
|
}
|
||||||
|
|
||||||
async fn cleanup(data: Data, pool: &mut DbPool<'_>) {
|
async fn cleanup(data: Data, pool: &mut DbPool<'_>) {
|
||||||
let num_deleted = Post::delete(pool, data.inserted_post.id).await.unwrap();
|
let num_deleted = Post::delete(pool, data.inserted_post.id).await.unwrap();
|
||||||
Community::delete(pool, data.inserted_community.id)
|
Community::delete(pool, data.inserted_community.id)
|
||||||
|
|
|
@ -210,7 +210,7 @@ mod tests {
|
||||||
.recipient_id(timmy.id)
|
.recipient_id(timmy.id)
|
||||||
.content(message_content.clone())
|
.content(message_content.clone())
|
||||||
.build();
|
.build();
|
||||||
let _inserted_sara_timmy_message_form = PrivateMessage::create(pool, &sara_timmy_message_form)
|
PrivateMessage::create(pool, &sara_timmy_message_form)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ mod tests {
|
||||||
.recipient_id(jess.id)
|
.recipient_id(jess.id)
|
||||||
.content(message_content.clone())
|
.content(message_content.clone())
|
||||||
.build();
|
.build();
|
||||||
let _inserted_sara_jess_message_form = PrivateMessage::create(pool, &sara_jess_message_form)
|
PrivateMessage::create(pool, &sara_jess_message_form)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
@ -228,7 +228,7 @@ mod tests {
|
||||||
.recipient_id(sara.id)
|
.recipient_id(sara.id)
|
||||||
.content(message_content.clone())
|
.content(message_content.clone())
|
||||||
.build();
|
.build();
|
||||||
let _inserted_timmy_sara_message_form = PrivateMessage::create(pool, &timmy_sara_message_form)
|
PrivateMessage::create(pool, &timmy_sara_message_form)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
@ -237,13 +237,13 @@ mod tests {
|
||||||
.recipient_id(timmy.id)
|
.recipient_id(timmy.id)
|
||||||
.content(message_content.clone())
|
.content(message_content.clone())
|
||||||
.build();
|
.build();
|
||||||
let _inserted_jess_timmy_message_form = PrivateMessage::create(pool, &jess_timmy_message_form)
|
PrivateMessage::create(pool, &jess_timmy_message_form)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let timmy_messages = PrivateMessageQuery {
|
let timmy_messages = PrivateMessageQuery {
|
||||||
unread_only: false,
|
unread_only: false,
|
||||||
creator_id: Option::None,
|
creator_id: None,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}
|
}
|
||||||
.list(pool, timmy.id)
|
.list(pool, timmy.id)
|
||||||
|
@ -260,7 +260,7 @@ mod tests {
|
||||||
|
|
||||||
let timmy_unread_messages = PrivateMessageQuery {
|
let timmy_unread_messages = PrivateMessageQuery {
|
||||||
unread_only: true,
|
unread_only: true,
|
||||||
creator_id: Option::None,
|
creator_id: None,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}
|
}
|
||||||
.list(pool, timmy.id)
|
.list(pool, timmy.id)
|
||||||
|
@ -320,7 +320,7 @@ mod tests {
|
||||||
|
|
||||||
let timmy_messages = PrivateMessageQuery {
|
let timmy_messages = PrivateMessageQuery {
|
||||||
unread_only: true,
|
unread_only: true,
|
||||||
creator_id: Option::None,
|
creator_id: None,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}
|
}
|
||||||
.list(pool, timmy.id)
|
.list(pool, timmy.id)
|
||||||
|
@ -333,5 +333,8 @@ mod tests {
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert_eq!(timmy_unread_messages, 1);
|
assert_eq!(timmy_unread_messages, 1);
|
||||||
|
|
||||||
|
// This also deletes all persons and private messages thanks to sql `on delete cascade`
|
||||||
|
Instance::delete(pool, instance.id).await.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,7 +230,6 @@ mod tests {
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
#[serial]
|
#[serial]
|
||||||
#[allow(clippy::dbg_macro)]
|
|
||||||
async fn exclude_deleted() {
|
async fn exclude_deleted() {
|
||||||
let pool = &build_db_pool_for_tests().await;
|
let pool = &build_db_pool_for_tests().await;
|
||||||
let pool = &mut pool.into();
|
let pool = &mut pool.into();
|
||||||
|
@ -257,7 +256,6 @@ mod tests {
|
||||||
.list(pool)
|
.list(pool)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
dbg!(&list);
|
|
||||||
assert_eq!(list.len(), 1);
|
assert_eq!(list.len(), 1);
|
||||||
assert_eq!(list[0].person.id, data.bob.id);
|
assert_eq!(list[0].person.id, data.bob.id);
|
||||||
|
|
||||||
|
|
|
@ -171,6 +171,7 @@ impl InstanceWorker {
|
||||||
.await
|
.await
|
||||||
.context("failed reading activity from db")?
|
.context("failed reading activity from db")?
|
||||||
else {
|
else {
|
||||||
|
tracing::debug!("{}: {:?} does not exist", self.instance.domain, id);
|
||||||
self.state.last_successful_id = Some(id);
|
self.state.last_successful_id = Some(id);
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 7a38baa7341cfa9299df5a80ebe42fe298380e40
|
Subproject commit 9474a7c0fbc968b8da29251bf5183b7de383cebf
|
Loading…
Reference in a new issue