diff options
| author | Daiki Mizukami <tesaguriguma@gmail.com> | 2024-05-01 07:33:58 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-01 16:33:58 +0900 |
| commit | d2a5bb39e344fcb84a24ae60faafe4694b227b88 (patch) | |
| tree | eb21c1be40a4406153d633ca59682b8e891f9a59 /packages/backend/test/unit/activitypub.ts | |
| parent | fix(frontend): 連合なしの状態の読み書きができない問題 (#13... (diff) | |
| download | sharkey-d2a5bb39e344fcb84a24ae60faafe4694b227b88.tar.gz sharkey-d2a5bb39e344fcb84a24ae60faafe4694b227b88.tar.bz2 sharkey-d2a5bb39e344fcb84a24ae60faafe4694b227b88.zip | |
Merge pull request from GHSA-2vxv-pv3m-3wvj
* fix: normalize incoming signed activities
* Tweak style
* Update CHANGELOG.md
* Log compacted activity as well
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Diffstat (limited to 'packages/backend/test/unit/activitypub.ts')
| -rw-r--r-- | packages/backend/test/unit/activitypub.ts | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/packages/backend/test/unit/activitypub.ts b/packages/backend/test/unit/activitypub.ts index aa3f3a4ff1..6962608106 100644 --- a/packages/backend/test/unit/activitypub.ts +++ b/packages/backend/test/unit/activitypub.ts @@ -13,6 +13,8 @@ import { ApImageService } from '@/core/activitypub/models/ApImageService.js'; import { ApNoteService } from '@/core/activitypub/models/ApNoteService.js'; import { ApPersonService } from '@/core/activitypub/models/ApPersonService.js'; import { ApRendererService } from '@/core/activitypub/ApRendererService.js'; +import { JsonLdService } from '@/core/activitypub/JsonLdService.js'; +import { CONTEXT } from '@/core/activitypub/misc/contexts.js'; import { GlobalModule } from '@/GlobalModule.js'; import { CoreModule } from '@/core/CoreModule.js'; import { FederatedInstanceService } from '@/core/FederatedInstanceService.js'; @@ -88,6 +90,7 @@ describe('ActivityPub', () => { let noteService: ApNoteService; let personService: ApPersonService; let rendererService: ApRendererService; + let jsonLdService: JsonLdService; let resolver: MockResolver; const metaInitial = { @@ -128,6 +131,7 @@ describe('ActivityPub', () => { personService = app.get<ApPersonService>(ApPersonService); rendererService = app.get<ApRendererService>(ApRendererService); imageService = app.get<ApImageService>(ApImageService); + jsonLdService = app.get<JsonLdService>(JsonLdService); resolver = new MockResolver(await app.resolve<LoggerService>(LoggerService)); // Prevent ApPersonService from fetching instance, as it causes Jest import-after-test error @@ -381,4 +385,42 @@ describe('ActivityPub', () => { assert.strictEqual(driveFile, null); }); }); + + describe('JSON-LD', () =>{ + test('Compaction', async () => { + const jsonLd = jsonLdService.use(); + + const object = { + '@context': [ + 'https://www.w3.org/ns/activitystreams', + { + _misskey_quote: 'https://misskey-hub.net/ns#_misskey_quote', + unknown: 'https://example.org/ns#unknown', + undefined: null, + }, + ], + id: 'https://example.com/notes/42', + type: 'Note', + attributedTo: 'https://example.com/users/1', + to: ['https://www.w3.org/ns/activitystreams#Public'], + content: 'test test foo', + _misskey_quote: 'https://example.com/notes/1', + unknown: 'test test bar', + undefined: 'test test baz', + }; + const compacted = await jsonLd.compact(object); + + assert.deepStrictEqual(compacted, { + '@context': CONTEXT, + id: 'https://example.com/notes/42', + type: 'Note', + attributedTo: 'https://example.com/users/1', + to: 'as:Public', + content: 'test test foo', + _misskey_quote: 'https://example.com/notes/1', + 'https://example.org/ns#unknown': 'test test bar', + // undefined: 'test test baz', + }); + }); + }); }); |