From 3093f713ef1a306cc66d1b17f516ccc3e34fd55d Mon Sep 17 00:00:00 2001 From: Kitaiti Makoto Date: Sun, 24 Apr 2022 07:03:06 +0900 Subject: [PATCH] Add test for Like::build_undo07() --- plume-models/src/likes.rs | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/plume-models/src/likes.rs b/plume-models/src/likes.rs index 9a405904..cad9d1ef 100644 --- a/plume-models/src/likes.rs +++ b/plume-models/src/likes.rs @@ -3,7 +3,12 @@ use crate::{ users::User, Connection, Error, Result, CONFIG, }; use activitypub::activity; -use activitystreams::{activity::Like as Like07, iri_string::types::IriString, prelude::*}; +use activitystreams::{ + activity::{Like as Like07, Undo as Undo07}, + base::AnyBase, + iri_string::types::IriString, + prelude::*, +}; use chrono::NaiveDateTime; use diesel::{self, ExpressionMethods, QueryDsl, RunQueryDsl}; use plume_common::activity_pub::{ @@ -275,4 +280,35 @@ mod tests { Ok(()) }); } + + #[test] + fn build_undo07() { + let conn = db(); + conn.test_transaction::<_, Error, _>(|| { + let (posts, _users, _blogs) = fill_database(&conn); + let post = &posts[0]; + let user = &post.get_authors(&conn)?[0]; + let like = Like::insert(&*conn, NewLike::new(post, user))?; + let act = like.build_undo07(&*conn)?; + + let expected = json!({ + "actor": "https://plu.me/@/admin/", + "cc": ["https://plu.me/@/admin/followers"], + "id": "https://plu.me/@/admin/like/https://plu.me/~/BlogName/testing#delete", + "object": { + "actor": "https://plu.me/@/admin/", + "cc": ["https://plu.me/@/admin/followers"], + "id": "https://plu.me/@/admin/like/https://plu.me/~/BlogName/testing", + "object": "https://plu.me/~/BlogName/testing", + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "type": "Like", + }, + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "type": "Undo", + }); + assert_json_eq!(to_value(act)?, expected); + + Ok(()) + }); + } }