Add test on AP hooks
This commit is contained in:
parent
866b5d3f52
commit
96d00a997b
|
@ -240,11 +240,11 @@ export class VideoEditComponent implements OnInit, OnDestroy {
|
|||
this.schedulerInterval = setInterval(() => this.minScheduledDate = new Date(), 1000 * 60) // Update every minute
|
||||
})
|
||||
|
||||
const updateForm = (values: any) => {
|
||||
const updateFormForPlugins = (values: any) => {
|
||||
this.form.patchValue(values)
|
||||
this.cd.detectChanges()
|
||||
}
|
||||
this.hooks.runAction('action:video-edit.init', 'video-edit', { type: this.type, updateForm })
|
||||
this.hooks.runAction('action:video-edit.init', 'video-edit', { type: this.type, updateForm: updateFormForPlugins })
|
||||
|
||||
this.form.valueChanges.subscribe(() => {
|
||||
this.hooks.runAction('action:video-edit.form.updated', 'video-edit', { type: this.type, formValues: this.form.value })
|
||||
|
|
|
@ -59,7 +59,7 @@ async function sendUpdateActor (accountOrChannel: MChannelDefault | MAccountDefa
|
|||
logger.info('Creating job to update actor %s.', byActor.url)
|
||||
|
||||
const url = getUpdateActivityPubUrl(byActor.url, byActor.updatedAt.toISOString())
|
||||
const accountOrChannelObject = (accountOrChannel as any).toActivityPubObject() // FIXME: typescript bug?
|
||||
const accountOrChannelObject = await (accountOrChannel as any).toActivityPubObject() // FIXME: typescript bug?
|
||||
const audience = getAudience(byActor)
|
||||
const updateActivity = buildUpdateActivity(url, byActor, accountOrChannelObject, audience)
|
||||
|
||||
|
|
|
@ -1717,7 +1717,7 @@ export class VideoModel extends Model<Partial<AttributesOnly<VideoModel>>> {
|
|||
toActivityPubObject (this: MVideoAP): Promise<VideoObject> {
|
||||
return Hooks.wrapObject(
|
||||
videoModelToActivityPubObject(this),
|
||||
'filter:activity-pub.video.jsonld.build.result',
|
||||
'filter:activity-pub.video.json-ld.build.result',
|
||||
{ video: this }
|
||||
)
|
||||
}
|
||||
|
|
|
@ -207,6 +207,18 @@ async function register ({ registerHook, registerSetting, settingsManager, stora
|
|||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
registerHook({
|
||||
target: 'filter:activity-pub.activity.context.build.result',
|
||||
handler: context => context.concat([ 'https://example.com/new-context' ])
|
||||
})
|
||||
|
||||
registerHook({
|
||||
target: 'filter:activity-pub.video.json-ld.build.result',
|
||||
handler: (jsonld, { video }) => ({ ...jsonld, videoName: video.name })
|
||||
})
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
registerHook({
|
||||
target: 'filter:api.video-threads.list.params',
|
||||
handler: obj => addToCount(obj)
|
||||
|
|
|
@ -14,6 +14,7 @@ import {
|
|||
cleanupTests,
|
||||
createMultipleServers,
|
||||
doubleFollow,
|
||||
makeActivityPubGetRequest,
|
||||
makeGetRequest,
|
||||
makeRawRequest,
|
||||
PeerTubeServer,
|
||||
|
@ -846,6 +847,22 @@ describe('Test plugin filter hooks', function () {
|
|||
})
|
||||
})
|
||||
|
||||
describe('Activity Pub', function () {
|
||||
|
||||
it('Should run filter:activity-pub.activity.context.build.result', async function () {
|
||||
const { body } = await makeActivityPubGetRequest(servers[0].url, '/w/' + videoUUID)
|
||||
expect(body.type).to.equal('Video')
|
||||
|
||||
expect(body['@context'].some(c => c === 'https://example.com/new-context')).to.be.true
|
||||
})
|
||||
|
||||
it('Should run filter:activity-pub.video.json-ld.build.result', async function () {
|
||||
const { body } = await makeActivityPubGetRequest(servers[0].url, '/w/' + videoUUID)
|
||||
expect(body.name).to.equal('default video 0')
|
||||
expect(body.videoName).to.equal('default video 0')
|
||||
})
|
||||
})
|
||||
|
||||
after(async function () {
|
||||
await cleanupTests(servers)
|
||||
})
|
||||
|
|
|
@ -119,7 +119,7 @@ export const serverFilterHookObject = {
|
|||
|
||||
// Filter the result of video JSON LD builder
|
||||
// You may also need to use filter:activity-pub.activity.context.build.result to also update JSON LD context
|
||||
'filter:activity-pub.video.jsonld.build.result': true
|
||||
'filter:activity-pub.video.json-ld.build.result': true
|
||||
}
|
||||
|
||||
export type ServerFilterHookName = keyof typeof serverFilterHookObject
|
||||
|
|
Loading…
Reference in New Issue