import { sdkMock } from '$lib/__mocks__/sdk.mock'; import RecentAlbums from '$lib/components/shared-components/side-bar/recent-albums.svelte'; import { albumFactory } from '@test-data/factories/album-factory'; import { render, screen } from '@testing-library/svelte'; import { tick } from 'svelte'; describe('RecentAlbums component', () => { it('sorts albums by most recently updated', async () => { const albums = [ albumFactory.build({ updatedAt: '2024-01-01T00:00:00Z' }), albumFactory.build({ updatedAt: '2024-01-09T00:00:01Z' }), albumFactory.build({ updatedAt: '2024-01-10T00:00:00Z' }), albumFactory.build({ updatedAt: '2024-01-09T00:00:00Z' }), ]; sdkMock.getAllAlbums.mockResolvedValueOnce([...albums]); render(RecentAlbums); expect(sdkMock.getAllAlbums).toBeCalledTimes(1); await tick(); const links = screen.getAllByRole('link'); expect(links).toHaveLength(3); expect(links[0]).toHaveAttribute('href', `/albums/${albums[2].id}`); expect(links[1]).toHaveAttribute('href', `/albums/${albums[1].id}`); expect(links[2]).toHaveAttribute('href', `/albums/${albums[3].id}`); }); });