Changeset dc0da72 in Klonkt for test/gated-propose-c2s.test.js


Ignore:
Timestamp:
08/08/2026 09:03:48 PM (4 weeks ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
a4b903a
Parents:
29eb745
git-author:
Robin <roboburr@…> (08/08/2026 09:03:46 PM)
git-committer:
roboburr <roboburr@…> (08/08/2026 09:03:48 PM)
Message:

Alleen claimen wat je herkent (regressie uit shaer-8ru)

Barts honderd aanbiedingen liepen meteen stuk op "400 unsupported_offer", en dat
was mijn fout van een uur eerder.

Ik zette het gate-voorstel als case 'Offer' in de outbox-switch. Die case
claimde ELKE Offer: wat geen shaer:GatedSetting was kreeg 400 -- dus ook de
adoptie-handshake, en straks elke Offer-vorm die we nog toevoegen. De
guardianship-afhandeling stond ervoor en ving het meestal op, maar zodra die iets
niet herkende viel het in mijn 400 in plaats van door te lopen.

Nu voor de switch, naast de andere Offer-afhandeling, en alleen als
parseGatedSetting iets teruggeeft. De toets die 'unsupported_offer' verwachtte is
vervangen: die legde mijn verkeerde aanname vast. Er staat nu een toets op dat een
adoptie-Offer NIET door de gate-tak wordt afgevangen.

Twee kleinere dingen die dezelfde ronde boven kwamen:

  • Het aanbod-script gebruikte een verzonnen relatie-URI en werd daarom stil geweigerd. isGuardianRelationship accepteert precies twee waarden.
  • De SSRF-toets hing af van wat er toevallig draaide: hij ging ervan uit dat er niets op [::1]:3060 luisterde, en viel om zodra de testkudde daar stond. Nu een poort waar met opzet niets luistert. Een toets die afhangt van wat er draait bewijst niets.

Suite 756/756.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/gated-propose-c2s.test.js

    r29eb745 rdc0da72  
    6161});
    6262
    63 test('een Offer dat GEEN gate-voorstel is wordt niet stilletjes geslikt', async () => {
     63test('een Offer dat GEEN gate-voorstel is wordt NIET geclaimd', async () => {
     64  // WAS: dit gaf 400 unsupported_offer, en dat was fout. Deze tak claimde elke
     65  // Offer, dus ook de adoptie-handshake -- Barts honderd aanbiedingen liepen er
     66  // meteen op stuk. Alleen claimen wat je herkent.
    6467  const uit = await AP.ingestOutboxActivity(site(), user, { type: 'Offer', object: { type: 'Note', content: 'hoi' } });
    65   assert.equal(uit.status, 400);
    66   assert.equal(uit.error, 'unsupported_offer');
     68  assert.notEqual(uit && uit.error, 'unsupported_offer');
     69});
     70
     71test('en een adoptie-Offer komt bij de handshake terecht', async () => {
     72  // De regressie die Bart ving, als toets. Een Relationship-offer hoort NOOIT
     73  // door de gate-tak afgevangen te worden.
     74  const uit = await AP.ingestOutboxActivity(site(), user, {
     75    type: 'Offer', to: [KIND],
     76    object: { type: 'Relationship', subject: KIND, object: 'https://oma.test/ap/users/oma', relationship: 'shaer:Guardian' },
     77  });
     78  assert.notEqual(uit && uit.error, 'unsupported_offer');
    6779});
    6880
Note: See TracChangeset for help on using the changeset viewer.