Changeset 0517013 in Klonkt for test/follow-accept-match.test.js


Ignore:
Timestamp:
08/08/2026 04:15:57 AM (5 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
553bd70
Parents:
06bae1e
git-author:
Robin <roboburr@…> (08/08/2026 04:15:44 AM)
git-committer:
Robin <roboburr@…> (08/08/2026 04:15:57 AM)
Message:

De Accept-terugval werkt nu ook op de gedeelde inbox

Vervolg op 06bae1e, en de fout die daar in zat: de terugval hing aan
slugParam, en die is LEEG wanneer er op /ap/inbox wordt afgeleverd in plaats
van op /ap/users/<slug>/inbox. Funkwhale doet precies dat, dus de terugval
werd overgeslagen en de rij bleef alsnog op pending -- alleen zei de log nu
tenminste eerlijk "accept UNMATCHED".

Wie wij zijn staat gewoon in de ingesloten Follow: die hebben wij zelf
verstuurd, dus object.actor is onze eigen actor-URI. Daar leiden we de slug
uit af als slugParam ontbreekt.

Zonder bruikbare Follow raden we niets: dan blijft het pending. Er is een test
die dat vastlegt, naast de test voor de gedeelde-inbox-weg zelf.

7 tests.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/follow-accept-match.test.js

    r06bae1e r0517013  
    6464});
    6565
     66test('bezorgd op de GEDEELDE inbox: de slug komt uit de ingesloten Follow', async () => {
     67  // Funkwhale levert af op /ap/inbox, niet op /ap/users/<slug>/inbox. Dan is
     68  // slugParam null en moeten we uit `object.actor` afleiden wie wij zijn --
     69  // die Follow hebben wij immers zelf verstuurd.
     70  zetPending();
     71  await AP.handleInbox({
     72    body: {
     73      type: 'Accept', actor: REMOTE,
     74      object: {
     75        id: 'https://test.example/ap/users/dev#follows/389cf422-7e38-4bad-858e-35def4c3e2e9',
     76        type: 'Follow', actor: 'https://test.example/ap/users/dev', object: REMOTE,
     77      },
     78    },
     79    headers: {}, get: () => undefined, socket: {},
     80  }, null, { id: REMOTE });
     81  assert.equal(status(), 'accepted');
     82});
     83
     84test('op de gedeelde inbox zonder bruikbare Follow blijft het pending', async () => {
     85  zetPending();
     86  await AP.handleInbox({
     87    body: { type: 'Accept', actor: REMOTE, object: { id: 'https://elders.example/x', type: 'Follow' } },
     88    headers: {}, get: () => undefined, socket: {},
     89  }, null, { id: REMOTE });
     90  assert.equal(status(), 'pending', 'zonder te weten wie wij zijn, raden we niet');
     91});
     92
    6693test('een Accept van een ANDERE actor raakt onze rij niet', async () => {
    6794  zetPending();
Note: See TracChangeset for help on using the changeset viewer.