use serde::{Deserialize, Serialize}; use url::Url; pub(crate) mod chat_message; pub(crate) mod group; pub(crate) mod instance; pub(crate) mod note; pub(crate) mod page; pub(crate) mod person; pub(crate) mod tombstone; #[derive(Clone, Debug, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct Endpoints { pub shared_inbox: Url, } #[cfg(test)] mod tests { use crate::{ context::WithContext, objects::tests::file_to_json_object, protocol::{ objects::{ chat_message::ChatMessage, group::Group, instance::Instance, note::Note, page::Page, person::Person, tombstone::Tombstone, }, tests::test_parse_lemmy_item, }, }; #[actix_rt::test] async fn test_parse_objects_lemmy() { test_parse_lemmy_item::("assets/lemmy/objects/instance.json").unwrap(); test_parse_lemmy_item::("assets/lemmy/objects/group.json").unwrap(); test_parse_lemmy_item::("assets/lemmy/objects/person.json").unwrap(); test_parse_lemmy_item::("assets/lemmy/objects/page.json").unwrap(); test_parse_lemmy_item::("assets/lemmy/objects/note.json").unwrap(); test_parse_lemmy_item::("assets/lemmy/objects/chat_message.json").unwrap(); test_parse_lemmy_item::("assets/lemmy/objects/tombstone.json").unwrap(); } #[actix_rt::test] async fn test_parse_objects_pleroma() { file_to_json_object::>("assets/pleroma/objects/person.json").unwrap(); file_to_json_object::>("assets/pleroma/objects/note.json").unwrap(); file_to_json_object::>("assets/pleroma/objects/chat_message.json") .unwrap(); } #[actix_rt::test] async fn test_parse_objects_smithereen() { file_to_json_object::>("assets/smithereen/objects/person.json").unwrap(); file_to_json_object::("assets/smithereen/objects/note.json").unwrap(); } #[actix_rt::test] async fn test_parse_objects_mastodon() { file_to_json_object::>("assets/mastodon/objects/person.json").unwrap(); file_to_json_object::>("assets/mastodon/objects/note.json").unwrap(); } #[actix_rt::test] async fn test_parse_objects_lotide() { file_to_json_object::>("assets/lotide/objects/group.json").unwrap(); file_to_json_object::>("assets/lotide/objects/person.json").unwrap(); file_to_json_object::>("assets/lotide/objects/note.json").unwrap(); file_to_json_object::>("assets/lotide/objects/page.json").unwrap(); file_to_json_object::>("assets/lotide/objects/tombstone.json").unwrap(); } #[actix_rt::test] async fn test_parse_object_friendica() { file_to_json_object::>("assets/friendica/objects/person.json").unwrap(); file_to_json_object::>("assets/friendica/objects/note.json").unwrap(); } }