Changeset 8b07c12 in Klonkt for test/c2s-block.test.js


Ignore:
Timestamp:
07/22/2026 12:26:08 AM (7 weeks ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
dc4aa08
Parents:
4c70ecb
Message:

The AP blocked collection: the server blocklist drives Shaer's Orbit

Robins call: no separate client-side Orbit state; the block list on the
server is the source of truth. The actor now advertises the standard
ActivityPub blocked collection (spec 5.6) and the owner reads it over C2S;
Shaer hydrates "in Orbit" from it and keeps nothing locally.

Changed files:
src/services/ActivityPubService.js

  • buildActor: blocked: {id}/blocked (AP 5.6, owner-only GET)

src/routes/activitypub.js

  • GET /ap/users/:slug/blocked (bearer, owner-only): actor-kind blocks as an OrderedCollection of actor uris; domain blocks stay out (instance policy, not an Orbit member)

test/c2s-block.test.js

  • the actor advertises blocked; actor-kind items only

test/activitypub-as2.test.js

  • blocked added to the AS2 allowlist (a spec term, same family as liked/streams)

153 tests, all green.

-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/c2s-block.test.js

    r4c70ecb r8b07c12  
    4343  assert.equal(out.status, 400);
    4444});
     45
     46test('the actor advertises the blocked collection (AP 5.6)', () => {
     47  site.primary_slug = 'me';
     48  const actor = AP.buildActor('https://test.example', site);
     49  assert.equal(actor.blocked, 'https://test.example/ap/users/me/blocked');
     50});
     51
     52test('actor-kind blocks form the collection items; domain blocks stay out', async () => {
     53  await AP.ingestOutboxActivity(site, user, { type: 'Block', object: BULLY });
     54  await AP.blockTarget(site, 'nare-server.example');   // domain block
     55  const items = AP.listBlocks('me').filter((b) => b.kind === 'actor').map((b) => b.target);
     56  assert.deepEqual(items, [BULLY]);
     57});
Note: See TracChangeset for help on using the changeset viewer.