Changeset 44dfbd2 in Klonkt for test/move-guardianship.test.js


Ignore:
Timestamp:
08/13/2026 08:32:21 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
4766720
Parents:
54b027a
Message:

Eerst de guardianship verhuizen, dan pas de follow

Robins regel na zijn eigen verhuizing, en het log van beta bewijst hem:

[AP] outgoing Follow beta → https://soundfabrics.nl/ap/users/robo

(gated, awaiting guardians)

Beta is zelf een ward. Zijn UITGAANDE follow naar de verhuisde guardian werd
gepoort door §5.3, want op dat moment stond het nieuwe adres nog niet in zijn
guardian-lijst: handleMoveInbox werkte de relatie pas NA de follows bij. De
inkomende kant heeft precies hetzelfde: de ward gate't een Follow van een
onbekende, en de verhuisde guardian is op dat moment een onbekende.

Dus beide richtingen bleven hangen op een goedkeuring die niemand hoefde te geven,
omdat het om een guardian ging die er al was. Met de relatie eerst is de verhuisde
actor al erkend als de follows langskomen en gaat de auto-acceptatie door.

De volgorde is hier dus geen netheid maar de werking.

Changed files:
src/services/ActivityPubService.js

  • het guardianship-blok staat nu VOOR de follow-lus, met het waarom erbij

test/move-guardianship.test.js

  • test 5 meet de VOLGORDE, niet de uitkomst: hij leest de relatie uit binnen de injecteerbare followFn en eist dat die daar al op het nieuwe adres staat

remarks: de tegenproef is hier het punt. De vijf bestaande tests slagen ook met de
oude volgorde, want die kijken naar de eindtoestand. Met de guardianship-update er
wel in maar NA de follows valt alleen test 5 om. Suite 938 groen in UTC en
Europe/Amsterdam.

Dit is handmatig al rechtgezet voor beta en robo (relatie overgezet, follow opnieuw
gestuurd, beta's log gaat van "gated, awaiting guardians" naar "sig ok"). Deze commit
zorgt dat de volgende verhuizing die handmatige stap niet meer nodig heeft.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/move-guardianship.test.js

    r54b027a r44dfbd2  
    9292});
    9393
     94// De VOLGORDE, niet de uitkomst. De tests hierboven slagen ook als de relatie pas
     95// na de follows wordt bijgewerkt, en juist dat ging mis bij Robins verhuizing:
     96//
     97//   [AP] outgoing Follow beta → .../robo (gated, awaiting guardians)
     98//
     99// Beta is zelf een ward, dus zijn uitgaande follow naar de verhuisde guardian werd
     100// gepoort omdat het nieuwe adres nog niet in zijn guardian-lijst stond. Beide
     101// richtingen bleven hangen op een goedkeuring die niemand hoefde te geven.
     102test('de guardianship is al bijgewerkt VOORDAT de follow uitgaat', async () => {
     103  let standTijdensFollow = null;
     104  const stil = console.log; console.log = () => {};
     105  try {
     106    await AP.handleMoveInbox(move, {
     107      ...stubs,
     108      followFn: async () => {
     109        // Op dit moment moet de gate aan de andere kant ons al kennen.
     110        standTijdensFollow = db.prepare('SELECT other_uri FROM ap_guardianships').get().other_uri;
     111        return true;
     112      },
     113    });
     114  } finally { console.log = stil; }
     115
     116  assert.equal(standTijdensFollow, NIEUW,
     117    'staat de relatie hier nog op het oude adres, dan gate\'t de ward de follow van zijn eigen guardian');
     118});
     119
    94120test('een Move naar een geblokkeerde bestemming verandert niets', async () => {
    95121  db.prepare('INSERT INTO ap_blocks (slug, target, kind) VALUES (?,?,?)').run('voogd', NIEUW, 'actor');
Note: See TracChangeset for help on using the changeset viewer.