From 64267f7de01d0b7ec53dceab24bcd7bab67a9d58 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 25 Feb 2025 14:24:56 -0500 Subject: [PATCH] test: remove extra .only, add basic tests for public note assertion --- test/activitypub.js | 2 +- test/activitypub/notes.js | 58 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/test/activitypub.js b/test/activitypub.js index d2c2334140..d05f50e4e6 100644 --- a/test/activitypub.js +++ b/test/activitypub.js @@ -350,7 +350,7 @@ describe('ActivityPub integration', () => { }); }); - describe.only('Category Actor endpoint', () => { + describe('Category Actor endpoint', () => { let cid; let slug; let description; diff --git a/test/activitypub/notes.js b/test/activitypub/notes.js index 482b706d14..803c345c4b 100644 --- a/test/activitypub/notes.js +++ b/test/activitypub/notes.js @@ -3,6 +3,8 @@ const assert = require('assert'); const db = require('../../src/database'); +const meta = require('../../src/meta'); +const install = require('../../src/install'); const user = require('../../src/user'); const categories = require('../../src/categories'); const topics = require('../../src/topics'); @@ -10,6 +12,62 @@ const activitypub = require('../../src/activitypub'); const utils = require('../../src/utils'); describe('Notes', () => { + describe('Assertion', () => { + const baseUrl = 'https://example.org'; + + before(async () => { + meta.config.activitypubEnabled = 1; + await install.giveWorldPrivileges(); + }); + + it('should pull a remote root-level object by its id and create a new topic', async () => { + const uuid = utils.generateUUID(); + const id = `${baseUrl}/resource/${uuid}`; + activitypub._cache.set(`0;${id}`, { + '@context': 'https://www.w3.org/ns/activitystreams', + id, + url: id, + type: 'Note', + to: ['https://www.w3.org/ns/activitystreams#Public'], + cc: ['https://example.org/user/foobar/followers'], + inReplyTo: null, + attributedTo: 'https://example.org/user/foobar', + name: 'Foo Bar', + content: 'Baz quux', + published: new Date().toISOString(), + }); + + const { tid, count } = await activitypub.notes.assert(0, id, { skipChecks: true }); + assert.strictEqual(count, 1); + + const exists = await topics.exists(tid); + assert(exists); + }); + + it('should assert if the cc property is missing', async () => { + const uuid = utils.generateUUID(); + const id = `${baseUrl}/resource/${uuid}`; + activitypub._cache.set(`0;${id}`, { + '@context': 'https://www.w3.org/ns/activitystreams', + id, + url: id, + type: 'Note', + to: ['https://www.w3.org/ns/activitystreams#Public'], + inReplyTo: null, + attributedTo: 'https://example.org/user/foobar', + name: 'Foo Bar', + content: 'Baz quux', + published: new Date().toISOString(), + }); + + const { tid, count } = await activitypub.notes.assert(0, id, { skipChecks: true }); + assert.strictEqual(count, 1); + + const exists = await topics.exists(tid); + assert(exists); + }); + }); + describe('Inbox Synchronization', () => { let cid; let uid;