Changeset 19430fa in Klonkt for test/fep1580-migration.test.js
- Timestamp:
- 08/14/2026 12:40:43 AM (4 weeks ago)
- Branches:
- main
- Children:
- 5a49eba
- Parents:
- 919b82d
- File:
-
- 1 edited
-
test/fep1580-migration.test.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
test/fep1580-migration.test.js
r919b82d r19430fa 481 481 }); 482 482 483 test('de [[track:]]-verwijzing in een bericht wordt bijgetrokken', async () => {483 test('de [[track:]]-verwijzing in een bericht blijft naar een bestaand nummer wijzen', async () => { 484 484 // Wat Robin op TikTik zag: het bericht toonde de shorthand zelf in plaats van 485 485 // een speler. Zijn posts kwamen uit de ZIP (die bewaart posts.content … … 515 515 })); 516 516 517 // DE EIS, ongeacht hoe: na een verhuizing wijst de shorthand naar een nummer 518 // dat hier bestaat. Sinds "altijd behouden" (14-8) klopt dat meestal vanzelf, 519 // want het id verandert niet meer. Botst het id wel, dan trekt de ingest de 520 // tekst bij. Deze test toetst de UITKOMST en niet de route ernaartoe. 517 521 const inhoud = db.prepare("SELECT content FROM posts WHERE id = 'pz'").get().content; 518 522 const m = /\[\[track:([^\]]+)\]\]/.exec(inhoud); 519 assert.ok(m, 'de shorthand blijft staan, alleen het id verandert'); 520 assert.notEqual(m[1], 't-oud', 'het oude id wijst hier nergens heen'); 523 assert.ok(m, 'de shorthand blijft staan'); 521 524 const bestaat = db.prepare('SELECT 1 FROM audio_tracks WHERE id = ? AND site_id = ?').get(m[1], 's1'); 522 assert.ok(bestaat, 'en het nieuwe id hoort bij een nummer dat er echt is'); 525 assert.ok(bestaat, `[[track:${m[1]}]] hoort bij een nummer dat er echt is`); 526 assert.equal(m[1], 't-oud', 'en omdat het id behouden blijft, hoefde er niets herschreven'); 527 }); 528 529 test('botst het track-id wel, dan wordt de tekst bijgetrokken', async () => { 530 // Het vangnet. "Altijd behouden" kan niet als er hier al iets anders met dat 531 // id staat; dan krijgt het nummer een ander id en moet de shorthand mee. 532 const s2 = site({ aliases: [BRON] }); 533 db.prepare(`INSERT INTO posts (id, site_id, author_id, slug, title, content, status, published_at) 534 VALUES ('pb','s1','u1','botsing','Botsing','<p>[[track:t-bots]]</p>','published','2026-08-13T10:00:00Z')`).run(); 535 // Een nummer dat hier AL bestaat onder datzelfde id, van iets anders. 536 db.prepare("INSERT INTO media (id, site_id, filename, mime_type, size, storage_path) VALUES ('mx','s1','x.mp3','audio/mpeg',1,'/x')").run(); 537 db.prepare("INSERT INTO audio_tracks (id, site_id, title, media_id) VALUES ('t-bots','s1','Al van mij','mx')").run(); 538 539 const kaart2 = new Map([ 540 [BRON, { id: BRON, type: 'Person', movedTo: IK, outbox: `${BRON}/outbox`, streams: [`${BRON}/tracks`] }], 541 [`${BRON}/outbox`, { type: 'OrderedCollection', orderedItems: [] }], 542 [`${BRON}/tracks`, { 543 type: 'OrderedCollection', 544 orderedItems: [{ 545 id: `${BRON}/tracks/t-bots`, type: 'Audio', name: 'Van de bron', 546 url: [{ type: 'Link', href: `${BRON}/audio/y.mp3`, mediaType: 'audio/mpeg' }], 547 }], 548 }], 549 ]); 550 await stil(() => Mig.ingestFromSource(s2, { 551 deps: { 552 getJson: async (_slug, url) => kaart2.get(url) || null, 553 noteId: (b, id) => `${b}/ap/notes/${id}`, 554 noteVisibility: AP.noteVisibility, 555 audioRoot: '/nep/audio', mediaRoot: '/nep/media', 556 signHeaders: () => ({ Signature: 'nep' }), 557 safeFetch: async () => ({ ok: true, arrayBuffer: async () => Buffer.from('y'), headers: { get: () => 'audio/mpeg' } }), 558 fs: { mkdirSync() {}, writeFileSync() {} }, 559 path, 560 }, 561 })); 562 // Het bestaande nummer blijft van jou; de tekst wijst naar iets dat bestaat. 563 const inhoud = db.prepare("SELECT content FROM posts WHERE id = 'pb'").get().content; 564 const m = /\[\[track:([^\]]+)\]\]/.exec(inhoud); 565 assert.ok(m); 566 assert.ok(db.prepare('SELECT 1 FROM audio_tracks WHERE id = ? AND site_id = ?').get(m[1], 's1'), 567 'wat er ook gebeurde met het id, de verwijzing wijst naar een bestaand nummer'); 523 568 }); 524 569
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)