import { getDefaultViewChoices, getStoredDefaultView, isResourceDefaultView, resourceDefaultViews, } from './defaultViews' import albumLists, { defaultAlbumList } from '../album/albumLists' describe('defaultViews', () => { beforeEach(() => { localStorage.clear() }) it('includes album lists and top-level resource lists as choices', () => { const choices = getDefaultViewChoices((key, options) => options?.smart_count ? `${key}:${options.smart_count}` : key, ) expect(choices.map((choice) => choice.id)).toEqual([ ...Object.keys(albumLists), ...resourceDefaultViews, ]) expect(choices).toEqual( expect.arrayContaining([ { id: 'artist', name: 'resources.artist.name:2' }, { id: 'song', name: 'resources.song.name:2' }, { id: 'playlist', name: 'resources.playlist.name:2' }, { id: 'radio', name: 'resources.radio.name:2' }, ]), ) }) it('identifies resource-backed default views', () => { expect(isResourceDefaultView('artist')).toBe(true) expect(isResourceDefaultView('song')).toBe(true) expect(isResourceDefaultView('playlist')).toBe(true) expect(isResourceDefaultView('radio')).toBe(true) expect(isResourceDefaultView('recentlyAdded')).toBe(false) }) it('falls back to the default album list when no default view is stored', () => { expect(getStoredDefaultView()).toBe(defaultAlbumList) }) it('returns the stored default view', () => { localStorage.setItem('defaultView', 'playlist') expect(getStoredDefaultView()).toBe('playlist') }) })