Changeset 7e474f7 in Klonkt for test/fep1580-migration.test.js
- Timestamp:
- 08/14/2026 03:12:04 AM (4 weeks ago)
- Branches:
- main
- Children:
- bfadc15
- Parents:
- 47f1183
- File:
-
- 1 edited
-
test/fep1580-migration.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
test/fep1580-migration.test.js
r47f1183 r7e474f7 149 149 Mig.recordMigrated('ik', { origin: `${BRON}/notes/1`, target: `${IK}/notes/a`, sourceActor: BRON }); 150 150 Mig.recordMigrated('ik', { origin: `${BRON}/notes/2`, target: `${IK}/notes/b`, sourceActor: BRON }); 151 const coll = Mig.buildMigration('https://nieuw.example', s); 151 // De KALE collectie draagt alleen de telling en de wegwijzers. Bewust: dit is 152 // een publiek endpoint dat derden herhaaldelijk pollen, en alle rijen laden om 153 // er twintig te tonen is bij honderdduizend berichten een hefboom. Bovendien 154 // was een kale collectie MET items precies de valstrik waar onze eigen ingest 155 // in liep: hij zag items, sloeg `first` over en miste de helft. 156 const kaal = Mig.buildMigration('https://nieuw.example', s); 157 assert.equal(kaal.totalItems, 2, 'de telling staat er wel'); 158 assert.equal((kaal.orderedItems || []).length, 0, 'maar de rijen niet'); 159 assert.ok(kaal.first, 'wie ze wil volgt first'); 160 161 const coll = Mig.buildMigration('https://nieuw.example', s, { page: 1 }); 152 162 assert.equal(coll.totalItems, 2); 153 163 const items = coll.orderedItems || coll.items; 164 assert.equal(items.length, 2); 154 165 assert.equal(items[0].origin, `${BRON}/notes/2`, 'omgekeerd chronologisch op aanmaakmoment HIER'); 155 166 assert.equal(items[0].type, 'Move'); 156 167 assert.equal(items[0].target, `${IK}/notes/b`); 168 }); 169 170 test('de publieke vertaaltabel laadt niet alles om twintig te tonen', () => { 171 // Robins herinnering: honderd miljoen Klonkt-gebruikers. Dit endpoint is 172 // publiek en derden pollen het tot migrationComplete waar is, dus een query 173 // zonder LIMIT is hier geen inefficientie maar een hefboom. 174 const s = site(); 175 for (let i = 0; i < 45; i++) { 176 Mig.recordMigrated('ik', { origin: `${BRON}/notes/n${i}`, target: `${IK}/notes/n${i}` }); 177 } 178 const p1 = Mig.buildMigration('https://nieuw.example', s, { page: 1 }); 179 assert.equal(p1.totalItems, 45, 'de telling klopt over het geheel'); 180 assert.equal(p1.orderedItems.length, 20, 'maar er komt een PAGINA uit, geen bak van 45'); 181 assert.ok(p1.next, 'en er is een volgende'); 182 const p3 = Mig.buildMigration('https://nieuw.example', s, { page: 3 }); 183 assert.equal(p3.orderedItems.length, 5, 'de laatste pagina is de rest'); 184 assert.equal(p3.next, undefined, 'en die biedt geen volgende meer aan'); 185 // De pagina's overlappen niet en samen zijn ze het geheel. 186 const p2 = Mig.buildMigration('https://nieuw.example', s, { page: 2 }); 187 const alle = [...p1.orderedItems, ...p2.orderedItems, ...p3.orderedItems].map((x) => x.origin); 188 assert.equal(new Set(alle).size, 45, 'geen dubbele en niets kwijt'); 157 189 }); 158 190
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)