Replies a post's author approves (FEP-5624), checked live with PeerTube
PeerTube puts canReply on a video whose comments wait for approval, and answers each comment with ApproveReply. A persona's reply to such a post now waits (privapub.approval: pending), its Create going to the author alone; the author's ApproveReply, signed by the author and naming the post answered, lets it out to its audience with replyApproval, and RejectReply leaves it ours. A null canReply (PeerTube's open comments) says nothing; an empty one refuses. The PeerTube scenario holds a comment for review and approves it through PeerTube's API (28 checks). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
5d5f1d6909
commit
a3a66b6db2
17 files changed
+256
-25
No files matched your search
@@ -90,6 +90,26 @@ namespace PrivaPub.Tests.Federation
|
||||
Assert.Equal(["https://privapub.test/peasants/flor_pp98"], note.Cc);
|
||||
}
|
||||
|
||||
// PeerTube's video whose comments wait for approval names who may comment (FEP-5624), apart from GoToSocial's policy
|
||||
[Fact]
|
||||
public void Reads_who_may_reply_pending_approval()
|
||||
{
|
||||
var video = NoteParser.Parse(JsonNode.Parse("""
|
||||
{"id":"https://peertube.test/videos/watch/1","type":"Video","name":"a video","attributedTo":["https://peertube.test/accounts/pt"],
|
||||
"canReply":"https://www.w3.org/ns/activitystreams#Public","commentsEnabled":true}
|
||||
"""));
|
||||
var open = NoteParser.Parse(JsonNode.Parse("""
|
||||
{"id":"https://peertube.test/videos/watch/2","type":"Video","name":"an open video","attributedTo":["https://peertube.test/accounts/pt"],
|
||||
"canReply":null,"commentsPolicy":1}
|
||||
"""));
|
||||
var note = NoteParser.Parse(JsonNode.Parse(MastodonNote));
|
||||
|
||||
Assert.Equal(["https://www.w3.org/ns/activitystreams#Public"], video.ReplyApprovals.Manual);
|
||||
Assert.Null(video.ReplyPolicy);
|
||||
Assert.Null(open.ReplyApprovals);
|
||||
Assert.Null(note.ReplyApprovals);
|
||||
}
|
||||
|
||||
// Pleroma's edited post carries its earlier versions (formerRepresentations, newest first)
|
||||
[Fact]
|
||||
public void Reads_the_earlier_versions_of_a_pleroma_edit()
|
||||
|
||||
Reference in new issue
Block a user