mirror of https://github.com/Chocobozzz/PeerTube
Fix fetching client comment URL
parent
69017c6e01
commit
a8bc342204
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
import { expect } from 'chai'
|
import { expect } from 'chai'
|
||||||
import { processViewersStats } from '@tests/shared/views.js'
|
import { processViewersStats } from '@tests/shared/views.js'
|
||||||
import { HttpStatusCode, VideoPlaylistPrivacy, WatchActionObject } from '@peertube/peertube-models'
|
import { HttpStatusCode, VideoComment, VideoPlaylistPrivacy, WatchActionObject } from '@peertube/peertube-models'
|
||||||
import {
|
import {
|
||||||
cleanupTests,
|
cleanupTests,
|
||||||
createMultipleServers,
|
createMultipleServers,
|
||||||
|
|
@ -17,6 +17,7 @@ describe('Test activitypub', function () {
|
||||||
let servers: PeerTubeServer[] = []
|
let servers: PeerTubeServer[] = []
|
||||||
let video: { id: number, uuid: string, shortUUID: string }
|
let video: { id: number, uuid: string, shortUUID: string }
|
||||||
let playlist: { id: number, uuid: string, shortUUID: string }
|
let playlist: { id: number, uuid: string, shortUUID: string }
|
||||||
|
let comment: VideoComment
|
||||||
|
|
||||||
async function testAccount (path: string) {
|
async function testAccount (path: string) {
|
||||||
const res = await makeActivityPubGetRequest(servers[0].url, path)
|
const res = await makeActivityPubGetRequest(servers[0].url, path)
|
||||||
|
|
@ -47,6 +48,18 @@ describe('Test activitypub', function () {
|
||||||
expect(object.name).to.equal('video')
|
expect(object.name).to.equal('video')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function testComment (path: string) {
|
||||||
|
const res = await makeActivityPubGetRequest(servers[0].url, path)
|
||||||
|
const object = res.body
|
||||||
|
|
||||||
|
expect(object.type).to.equal('Note')
|
||||||
|
expect(object.id).to.equal(servers[0].url + '/videos/watch/' + video.uuid + '/comments/' + comment.id)
|
||||||
|
expect(object.content).to.contain('thread')
|
||||||
|
expect(object.inReplyTo).to.contain(servers[0].url + '/videos/watch/' + video.uuid)
|
||||||
|
expect(object.attributedTo).to.equal(servers[0].url + '/accounts/root')
|
||||||
|
expect(object.replyApproval).to.equal(servers[0].url + '/videos/watch/' + video.uuid + '/comments/' + comment.id + '/approve-reply')
|
||||||
|
}
|
||||||
|
|
||||||
async function testPlaylist (path: string) {
|
async function testPlaylist (path: string) {
|
||||||
const res = await makeActivityPubGetRequest(servers[0].url, path)
|
const res = await makeActivityPubGetRequest(servers[0].url, path)
|
||||||
const object = res.body
|
const object = res.body
|
||||||
|
|
@ -73,6 +86,8 @@ describe('Test activitypub', function () {
|
||||||
playlist = await servers[0].playlists.create({ attributes })
|
playlist = await servers[0].playlists.create({ attributes })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
comment = await servers[0].comments.createThread({ text: 'thread', videoId: video.id })
|
||||||
|
|
||||||
await doubleFollow(servers[0], servers[1])
|
await doubleFollow(servers[0], servers[1])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -86,6 +101,13 @@ describe('Test activitypub', function () {
|
||||||
await testChannel('/c/root_channel')
|
await testChannel('/c/root_channel')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('Should return the video comment object', async function () {
|
||||||
|
await testComment('/videos/watch/' + video.id + '/comments/' + comment.id)
|
||||||
|
await testComment('/videos/watch/' + video.uuid + '/comments/' + comment.id)
|
||||||
|
await testComment('/videos/watch/' + video.shortUUID + '/comments/' + comment.id)
|
||||||
|
await testComment('/w/' + video.shortUUID + ';threadId=' + comment.id)
|
||||||
|
})
|
||||||
|
|
||||||
it('Should return the video object', async function () {
|
it('Should return the video object', async function () {
|
||||||
await testVideo('/videos/watch/' + video.id)
|
await testVideo('/videos/watch/' + video.id)
|
||||||
await testVideo('/videos/watch/' + video.uuid)
|
await testVideo('/videos/watch/' + video.uuid)
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,36 @@ activityPubClientRouter.get('/accounts?/:name/dislikes/:videoId',
|
||||||
asyncMiddleware(getAccountVideoRateFactory('dislike'))
|
asyncMiddleware(getAccountVideoRateFactory('dislike'))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
activityPubClientRouter.get('/videos/watch/:id/comments',
|
||||||
|
executeIfActivityPub,
|
||||||
|
activityPubRateLimiter,
|
||||||
|
asyncMiddleware(videosCustomGetValidator('only-video-and-blacklist')),
|
||||||
|
asyncMiddleware(videoCommentsController)
|
||||||
|
)
|
||||||
|
activityPubClientRouter.get('/videos/watch/:videoId/comments/:commentId/approve-reply',
|
||||||
|
executeIfActivityPub,
|
||||||
|
activityPubRateLimiter,
|
||||||
|
asyncMiddleware(videoCommentGetValidator),
|
||||||
|
asyncMiddleware(videoCommentApprovedController)
|
||||||
|
)
|
||||||
|
activityPubClientRouter.get('/videos/watch/:videoId/comments/:commentId/activity',
|
||||||
|
executeIfActivityPub,
|
||||||
|
activityPubRateLimiter,
|
||||||
|
asyncMiddleware(videoCommentGetValidator),
|
||||||
|
asyncMiddleware(videoCommentController)
|
||||||
|
)
|
||||||
|
activityPubClientRouter.get(
|
||||||
|
[ '/videos/watch/:videoId/comments/:commentId', '/w/:videoId([^;]+);threadId=:commentId([0-9]+)' ],
|
||||||
|
executeIfActivityPub,
|
||||||
|
activityPubRateLimiter,
|
||||||
|
asyncMiddleware(videoCommentGetValidator),
|
||||||
|
asyncMiddleware(videoCommentController)
|
||||||
|
)
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
activityPubClientRouter.get(
|
activityPubClientRouter.get(
|
||||||
[ '/videos/watch/:id', '/w/:id' ],
|
[ '/videos/watch/:id', '/w/:id' ],
|
||||||
executeIfActivityPub,
|
executeIfActivityPub,
|
||||||
|
|
@ -145,33 +175,6 @@ activityPubClientRouter.get('/videos/watch/:id/dislikes',
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
activityPubClientRouter.get('/videos/watch/:id/comments',
|
|
||||||
executeIfActivityPub,
|
|
||||||
activityPubRateLimiter,
|
|
||||||
asyncMiddleware(videosCustomGetValidator('only-video-and-blacklist')),
|
|
||||||
asyncMiddleware(videoCommentsController)
|
|
||||||
)
|
|
||||||
activityPubClientRouter.get('/videos/watch/:videoId/comments/:commentId/approve-reply',
|
|
||||||
executeIfActivityPub,
|
|
||||||
activityPubRateLimiter,
|
|
||||||
asyncMiddleware(videoCommentGetValidator),
|
|
||||||
asyncMiddleware(videoCommentApprovedController)
|
|
||||||
)
|
|
||||||
activityPubClientRouter.get('/videos/watch/:videoId/comments/:commentId/activity',
|
|
||||||
executeIfActivityPub,
|
|
||||||
activityPubRateLimiter,
|
|
||||||
asyncMiddleware(videoCommentGetValidator),
|
|
||||||
asyncMiddleware(videoCommentController)
|
|
||||||
)
|
|
||||||
activityPubClientRouter.get('/videos/watch/:videoId/comments/:commentId',
|
|
||||||
executeIfActivityPub,
|
|
||||||
activityPubRateLimiter,
|
|
||||||
asyncMiddleware(videoCommentGetValidator),
|
|
||||||
asyncMiddleware(videoCommentController)
|
|
||||||
)
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
const { middleware: chaptersCacheRouteMiddleware, instance: chaptersApiCache } = cacheRouteFactory()
|
const { middleware: chaptersCacheRouteMiddleware, instance: chaptersApiCache } = cacheRouteFactory()
|
||||||
|
|
||||||
InternalEventEmitter.Instance.on('chapters-updated', ({ video }) => {
|
InternalEventEmitter.Instance.on('chapters-updated', ({ video }) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue