Changeset f50a84b in Klonkt for test


Ignore:
Timestamp:
08/13/2026 01:09:55 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
c3e736c
Parents:
013e16c
Message:

Jouw teksten, en de twee dingen die ze beloofden (shaer-mbz)

De titel is nu "MusicBrainz Koppeling" met jouw omschrijving eronder, in drie
talen. Maar die omschrijving belooft twee dingen die de code nog niet deed, en
een label dat liegt is erger dan een lelijk label. Dus allebei gebouwd.

"OF JE MUSICBRAINZ ID ALS JE DIE KENT". Plak je een UUID, dan wordt hij
rechtstreeks opgezocht in plaats van gezocht. Dat is geen luxe: een
zoekopdracht OP een UUID levert bij MusicBrainz niets op, dus zonder deze tak
gaf plakken juist het slechtste resultaat.

"MET TERUG-WEG VALIDATIE". Een koppeling van onze kant is een bewering --
iedereen kan een id in een veld typen. Pas als de MusicBrainz-pagina TERUGWIJST
naar dit domein is het een paar, en dan weet een lezer dat dezelfde persoon aan
allebei de kanten stond. Dezelfde gedachte als rel="me". Het paneel zegt
"wederzijds" of "nog eenzijdig", en bij dat laatste staat erbij WAT je moet doen:
het domein op je MusicBrainz-pagina zetten onder "social networking".

Wij zetten die terugwijzing niet zelf. Kan niet via hun API, en hoort ook niet.

ECHT GEMETEN, en dat gaf de test zijn vorm: robo-burr staat in MusicBrainz met
score 100 (24abe2be-c0bc-4c63-9642-d6f89ec6a00a, "AKA roboburr") en heeft
precies EEN url-relatie -- type "social network", naar sound-fabrics.com. Voor
dev.klonkt.com is de terug-weg dus false, en dat is precies de waarde van de
controle. Die vorm staat nu in een test.

Bij een storing komt er false EN een lege lijst uit: niet kunnen kijken is niet
hetzelfde als niet gevonden, en nooit stilletjes "wederzijds".

Een controle erbij die eist dat alle drie de talen dezelfde mb_-sleutels
hebben. Bij het herschrijven waren er zeven weggevallen die het scherm nog
gebruikt -- een gat in een vertaling geeft een leeg label en dat valt nooit
vanzelf op.

Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/musicbrainz.test.js

    r013e16c rf50a84b  
    162162  assert.equal(term.sameAs['@type'], '@id', 'het is een URI en geen tekst');
    163163});
     164
     165// ── De terug-weg (Robins "social networking"-validatie) ───────────────────
     166
     167test('een MBID in het zoekveld wordt rechtstreeks opgezocht', async () => {
     168  // Zoeken op een UUID levert bij MusicBrainz niets op, dus zonder deze tak
     169  // geeft plakken juist het slechtste resultaat.
     170  globalThis.fetch = async (url) => {
     171    verzoeken.push({ url: String(url) });
     172    return { ok: true, json: async () => ({ id: '8be31978-1884-4773-beae-f73df35b92aa', name: 'robo-burr', disambiguation: 'AKA roboburr' }) };
     173  };
     174  verzoeken.length = 0;
     175  const een = await MB.haalArtiest('8be31978-1884-4773-beae-f73df35b92aa');
     176  assert.equal(een.naam, 'robo-burr');
     177  assert.match(verzoeken[0].url, /\/artist\/8be31978-1884-4773-beae-f73df35b92aa\?/, 'de lookup, niet de zoekopdracht');
     178  assert.equal(await MB.haalArtiest('nirvana'), null, 'geen MBID, geen lookup');
     179});
     180
     181test('de terug-weg is pas waar als de pagina ONS domein noemt', async () => {
     182  // Echt gemeten op 13-8: robo-burr heeft precies een url-relatie, type
     183  // "social network", naar sound-fabrics.com. Dus voor dev.klonkt.com hoort
     184  // hier false uit te komen -- en dat is de waarde van de controle.
     185  globalThis.fetch = async () => ({
     186    ok: true,
     187    json: async () => ({ relations: [{ type: 'social network', url: { resource: 'https://sound-fabrics.com/' } }] }),
     188  });
     189  const mbid = '24abe2be-c0bc-4c63-9642-d6f89ec6a00a';
     190  const mis = await MB.controleerTerugweg(mbid, 'https://dev.klonkt.com');
     191  assert.equal(mis.verified, false, 'een andere site is geen terugweg');
     192  assert.deepEqual(mis.urls, ['https://sound-fabrics.com/']);
     193
     194  const raak = await MB.controleerTerugweg(mbid, 'https://sound-fabrics.com');
     195  assert.equal(raak.verified, true, 'dezelfde host telt, ongeacht pad of slash');
     196});
     197
     198test('niet kunnen kijken is niet hetzelfde als niet gevonden', async () => {
     199  // Bij een storing false EN een lege lijst -- nooit stilletjes "wederzijds".
     200  globalThis.fetch = async () => { throw new Error('weg'); };
     201  const uit = await MB.controleerTerugweg('24abe2be-c0bc-4c63-9642-d6f89ec6a00a', 'https://dev.klonkt.com');
     202  assert.deepEqual(uit, { verified: false, urls: [] });
     203});
Note: See TracChangeset for help on using the changeset viewer.