Skip to content

Commit ea1d8a2

Browse files
committed
Override tracks' showHeader
1 parent 8cb5339 commit ea1d8a2

2 files changed

Lines changed: 43 additions & 5 deletions

File tree

src/app/ui/components/collection/track-browser/track-browser.component.spec.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,43 @@ describe('TrackBrowserComponent', () => {
488488
expect(component.orderedTracks[3].showHeader).toBeFalsy();
489489
});
490490

491+
it('should apply track order by album and override showHeader', () => {
492+
// Arrange
493+
const component: TrackBrowserComponent = createComponent();
494+
component.tracksPersister = tracksPersisterMock.object;
495+
component.selectedTrackOrder = TrackOrder.byTrackTitleDescending;
496+
component.tracks = tracks;
497+
track1.albumKey = 'albumKey1';
498+
track1.discNumber = 1;
499+
trackModel1.showHeader = false;
500+
track2.albumKey = 'albumKey1';
501+
track2.discNumber = 1;
502+
trackModel2.showHeader = true;
503+
504+
track3.albumKey = 'albumKey2';
505+
track3.discNumber = 1;
506+
trackModel3.showHeader = false;
507+
track4.albumKey = 'albumKey2';
508+
track4.discNumber = 2;
509+
trackModel4.showHeader = false;
510+
511+
const trackOrder = TrackOrder.byAlbum;
512+
513+
// Act
514+
component.applyTrackOrder(trackOrder);
515+
516+
// Assert
517+
expect(component.selectedTrackOrder).toEqual(trackOrder);
518+
expect(component.orderedTracks[0]).toBe(trackModel1);
519+
expect(component.orderedTracks[0].showHeader).toBeTruthy();
520+
expect(component.orderedTracks[1]).toBe(trackModel2);
521+
expect(component.orderedTracks[1].showHeader).toBeFalsy();
522+
expect(component.orderedTracks[2]).toBe(trackModel3);
523+
expect(component.orderedTracks[2].showHeader).toBeTruthy();
524+
expect(component.orderedTracks[3]).toBe(trackModel4);
525+
expect(component.orderedTracks[3].showHeader).toBeTruthy();
526+
});
527+
491528
it('should persist the selected track order', () => {
492529
// Arrange
493530
const component: TrackBrowserComponent = createComponent();

src/app/ui/components/collection/track-browser/track-browser.component.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,12 +209,13 @@ export class TrackBrowserComponent extends TrackBrowserBase implements OnInit, O
209209
let previousDiscNumber: number = -1;
210210

211211
for (const track of orderedTracks) {
212-
if (track.albumKey !== previousAlbumKey || track.discNumber !== previousDiscNumber) {
213-
track.showHeader = true;
214-
}
212+
const albumKey = track.albumKey;
213+
const discNumber = track.discNumber;
214+
215+
track.showHeader = albumKey !== previousAlbumKey || discNumber !== previousDiscNumber;
215216

216-
previousAlbumKey = track.albumKey;
217-
previousDiscNumber = track.discNumber;
217+
previousAlbumKey = albumKey;
218+
previousDiscNumber = discNumber;
218219
}
219220
}
220221
}

0 commit comments

Comments
 (0)