Changeset f704237 in Klonkt for test/archive-audio.test.js
- Timestamp:
- 08/14/2026 02:35:06 AM (4 weeks ago)
- Branches:
- main
- Children:
- 47f1183
- Parents:
- fc664ce
- File:
-
- 1 edited
-
test/archive-audio.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
test/archive-audio.test.js
rfc664ce rf704237 258 258 }); 259 259 260 test('een track met alleen Spotify/YouTube-links reist gewoon mee', () => { 261 // Robins Youngstown-nummer. Klonkt kent link-only tracks: geen gehost 262 // bestand, wel externe links, en buildNote maakt daar een embed-kaart van. 263 // Mijn regel "geen bestand, geen track" gooide die weg, en dat was te grof: 264 // "geen bestand" en "niets om te tonen" zijn niet hetzelfde. 265 leeg(); 266 db.prepare(`INSERT INTO audio_tracks (id, site_id, title, artist, media_id, link_spotify, link_youtube) 267 VALUES ('lo','s1','Alleen links','Youngstown',NULL, 268 'https://open.spotify.com/track/abc','https://www.youtube.com/watch?v=xyz')`).run(); 269 270 const uit = AX.buildArchive('me'); 271 const rij = JSON.parse(uit.files.get('tracks.json').toString('utf8')).orderedItems.find((x) => x.id === 'lo'); 272 assert.equal(rij['shaer:availability'], 'linkOnly', 'een eigen staat, niet "missing"'); 273 assert.equal(uit.counts.audioMissing, 0, 'en hij telt niet als ontbrekend: er mist niets'); 274 assert.deepEqual(rij.url, ['https://open.spotify.com/track/abc', 'https://www.youtube.com/watch?v=xyz']); 275 276 leeg(); 277 const r = AI.importArchive(uit.files, { slug: 'me', origin: 'https://nieuw.test' }); 278 assert.equal(r.tracks, 1); 279 assert.equal(r.tracksMissing, 0); 280 const t = db.prepare("SELECT title, artist, media_id, link_spotify, link_youtube FROM audio_tracks WHERE id = 'lo'").get(); 281 assert.ok(t, 'de track hoort er te staan'); 282 assert.equal(t.media_id, null, 'zonder mediarij, precies zoals op de bron'); 283 assert.equal(t.title, 'Alleen links'); 284 assert.equal(t.link_spotify, 'https://open.spotify.com/track/abc'); 285 assert.equal(t.link_youtube, 'https://www.youtube.com/watch?v=xyz'); 286 }); 287 288 test('een track zonder bestand EN zonder links blijft wel geweigerd', () => { 289 // De oorspronkelijke regel blijft staan waar hij hoort: dit is een track die 290 // niets kan tonen en niets kan afspelen. 291 leeg(); 292 track('kapot', 'Kapot', { padInDb: '/weg/kapot.mp3', schrijf: false }); 293 const uit = AX.buildArchive('me'); 294 assert.equal(uit.counts.audioMissing, 1); 295 leeg(); 296 const r = AI.importArchive(uit.files, { slug: 'me', origin: 'https://nieuw.test' }); 297 assert.equal(r.tracks, 0); 298 assert.equal(r.tracksMissing, 1); 299 assert.equal(db.prepare('SELECT COUNT(*) n FROM audio_tracks').get().n, 0); 300 }); 301 260 302 test.after(() => { try { fs.rmSync(TMP, { recursive: true, force: true }); } catch { /* niets */ } });
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)