- Timestamp:
- 08/14/2026 01:36:52 AM (4 weeks ago)
- Branches:
- main
- Children:
- 861c228
- Parents:
- f894be5
- File:
-
- 1 edited
-
test/fep1580-migration.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
test/fep1580-migration.test.js
rf894be5 r9f9b45f 536 536 }); 537 537 538 test('de omslag komt ook mee als hij in `image` zit in plaats van in attachment', async () => { 539 // Robins 9 covers van de 36. Klonkt onderdrukt de beeldbijlage met opzet 540 // zodra een post een speler of embed heeft (noImages in buildNote), en zet 541 // de omslag dan in `image` zodat Mastodon zijn spelerkaart toont. 18 van de 542 // 20 berichten op pagina 1 hadden daardoor geen enkele bijlage, en toch een 543 // cover. Mijn ingest keek alleen naar attachment. 544 const s = site({ aliases: [BRON] }); 545 const OMSLAG = 'https://oud.example/media/post-images/omslag.png'; 546 const HOES = 'https://oud.example/media/audio-covers/hoes.webp'; 547 const kaart = new Map([ 548 [BRON, { id: BRON, type: 'Person', movedTo: IK, outbox: `${BRON}/outbox` }], 549 [`${BRON}/outbox`, { type: 'OrderedCollection', totalItems: 2, first: `${BRON}/outbox?page=1` }], 550 [`${BRON}/outbox?page=1`, { type: 'OrderedCollectionPage', orderedItems: [ 551 // een speler-post: GEEN attachment, omslag in image 552 note(`${BRON}/notes/speler`, { content: '<p>muziek</p>', image: { type: 'Image', url: OMSLAG } }), 553 // een audio-bijlage draagt zijn eigen hoes in icon 554 note(`${BRON}/notes/audio`, { content: '<p>track</p>', attachment: [ 555 { type: 'Audio', mediaType: 'audio/mpeg', url: 'https://oud.example/audio/stream/x.mp3', 556 icon: { type: 'Image', mediaType: 'image/webp', url: HOES } }, 557 ] }), 558 ] }], 559 ]); 560 const opgehaald = []; 561 const r = await stil(() => Mig.ingestFromSource(s, { deps: { 562 getJson: async (_s, url) => kaart.get(url) || null, 563 noteId: (b, id) => `${b}/ap/notes/${id}`, 564 noteVisibility: AP.noteVisibility, 565 mediaRoot: '/nep/media', audioRoot: '/nep/audio', 566 signHeaders: () => ({ Signature: 'nep' }), 567 safeFetch: async (url) => { opgehaald.push(url); return { ok: true, arrayBuffer: async () => Buffer.from('x'), headers: { get: () => 'image/png' } }; }, 568 fs: { mkdirSync() {}, writeFileSync() {}, statSync() { throw new Error('ENOENT'); } }, 569 path, 570 } })); 571 assert.equal(r.posts, 2); 572 assert.ok(opgehaald.includes(OMSLAG), 'de omslag uit `image` hoort opgehaald te worden'); 573 assert.ok(opgehaald.includes(HOES), 'en de hoes uit de icon van een Audio-bijlage ook'); 574 const covers = db.prepare('SELECT cover_image_url c FROM posts WHERE site_id = ?').all('s1').map((x) => x.c); 575 assert.equal(covers.filter(Boolean).length, 2, 'beide berichten krijgen hun omslag'); 576 assert.ok(covers.includes('/media/post-images/omslag.png'), 'op het pad van de bron'); 577 }); 578 538 579 test('een bericht dat je zelf hebt verwijderd komt bij een tweede ronde terug', async () => { 539 580 // Robin: "ik kan handmatig deze keer de posts verwijderen en opnieuw ophalen."
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)