Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/fep1580-migration.test.js

    r919b82d r19430fa  
    481481});
    482482
    483 test('de [[track:]]-verwijzing in een bericht wordt bijgetrokken', async () => {
     483test('de [[track:]]-verwijzing in een bericht blijft naar een bestaand nummer wijzen', async () => {
    484484  // Wat Robin op TikTik zag: het bericht toonde de shorthand zelf in plaats van
    485485  // een speler. Zijn posts kwamen uit de ZIP (die bewaart posts.content
     
    515515  }));
    516516
     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.
    517521  const inhoud = db.prepare("SELECT content FROM posts WHERE id = 'pz'").get().content;
    518522  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');
    521524  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
     529test('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');
    523568});
    524569
Note: See TracChangeset for help on using the changeset viewer.