From 971b9fb1d861682fa6f82c005244edd56f6a7377 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 24 Jun 2023 18:23:11 -0300 Subject: content: generateAlbumTrackListItem: incl. color only if different from album --- src/content/dependencies/generateAlbumTrackListItem.js | 13 ++++++++++--- .../test/snapshot/generateAlbumTrackList.js.test.cjs | 4 ++-- test/snapshot/generateAlbumTrackList.js | 13 +++++++++---- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/content/dependencies/generateAlbumTrackListItem.js b/src/content/dependencies/generateAlbumTrackListItem.js index 794c4201..15aecba0 100644 --- a/src/content/dependencies/generateAlbumTrackListItem.js +++ b/src/content/dependencies/generateAlbumTrackListItem.js @@ -24,9 +24,12 @@ export default { data(track, album) { const data = {}; - data.color = track.color; data.duration = track.duration ?? 0; + if (track.color !== album.color) { + data.color = track.color; + } + data.showArtists = !compareArrays( track.artistContribs.map(c => c.who), @@ -47,8 +50,12 @@ export default { const parts = ['trackList.item.withDuration']; const options = {}; - options.duration = language.formatDuration(data.duration); - options.track = relations.trackLink; + options.duration = + language.formatDuration(data.duration); + + options.track = + relations.trackLink + .slot('color', false); if (data.showArtists) { parts.push('withArtists'); diff --git a/tap-snapshots/test/snapshot/generateAlbumTrackList.js.test.cjs b/tap-snapshots/test/snapshot/generateAlbumTrackList.js.test.cjs index c1248814..59eb4456 100644 --- a/tap-snapshots/test/snapshot/generateAlbumTrackList.js.test.cjs +++ b/tap-snapshots/test/snapshot/generateAlbumTrackList.js.test.cjs @@ -10,7 +10,7 @@ exports[`test/snapshot/generateAlbumTrackList.js TAP generateAlbumTrackList (sna
  • (0:20) Track 1
  • (0:30) Track 2
  • (0:40) Track 3
  • -
  • (0:05) Track 4 by Apricot and Peach
  • +
  • (0:05) Track 4 by Apricot and Peach
  • ` @@ -25,6 +25,6 @@ exports[`test/snapshot/generateAlbumTrackList.js TAP generateAlbumTrackList (sna
    Second section (0:05):
    -
    +
    ` diff --git a/test/snapshot/generateAlbumTrackList.js b/test/snapshot/generateAlbumTrackList.js index 3fc95716..ea3cfef3 100644 --- a/test/snapshot/generateAlbumTrackList.js +++ b/test/snapshot/generateAlbumTrackList.js @@ -13,16 +13,20 @@ testContentFunctions(t, 'generateAlbumTrackList (snapshot)', async (t, evaluate) {who: {name: 'Peach', directory: 'peach', urls: ['https://peach.bandcamp.com/']}}, ]; + const color1 = '#fb07ff'; + const color2 = '#ea2e83'; + const tracks = [ - {name: 'Track 1', directory: 't1', duration: 20, artistContribs: contribs1}, - {name: 'Track 2', directory: 't2', duration: 30, artistContribs: contribs1}, - {name: 'Track 3', directory: 't3', duration: 40, artistContribs: contribs1}, - {name: 'Track 4', directory: 't4', duration: 5, artistContribs: contribs2}, + {name: 'Track 1', directory: 't1', duration: 20, artistContribs: contribs1, color: color1}, + {name: 'Track 2', directory: 't2', duration: 30, artistContribs: contribs1, color: color1}, + {name: 'Track 3', directory: 't3', duration: 40, artistContribs: contribs1, color: color1}, + {name: 'Track 4', directory: 't4', duration: 5, artistContribs: contribs2, color: color2}, ]; evaluate.snapshot('basic behavior, with track sections', { name: 'generateAlbumTrackList', args: [{ + color: color1, artistContribs: contribs1, trackSections: [ {name: 'First section', tracks: tracks.slice(0, 3)}, @@ -35,6 +39,7 @@ testContentFunctions(t, 'generateAlbumTrackList (snapshot)', async (t, evaluate) evaluate.snapshot('basic behavior, default track section', { name: 'generateAlbumTrackList', args: [{ + color: color1, artistContribs: contribs1, trackSections: [{isDefaultTrackSection: true, tracks}], tracks, -- cgit 1.3.0-6-gf8a5