diff --git a/ui/src/common/LoveButton.test.jsx b/ui/src/common/LoveButton.test.jsx
index dc56fc04b..0afcca1b5 100644
--- a/ui/src/common/LoveButton.test.jsx
+++ b/ui/src/common/LoveButton.test.jsx
@@ -26,6 +26,14 @@ vi.mock('../utils/validations', () => ({
isDateSet: vi.fn(),
}))
+vi.mock('@material-ui/icons/Favorite', () => ({
+ default: () => ,
+}))
+
+vi.mock('@material-ui/icons/FavoriteBorder', () => ({
+ default: () => ,
+}))
+
describe('LoveButton', () => {
const mockToggleLove = vi.fn()
@@ -83,18 +91,32 @@ describe('LoveButton', () => {
})
it('shows starredAt date as title when starredAt is set', () => {
- useRecordContext.mockReturnValue({
- id: 'song-1',
- starred: true,
- starredAt: '2024-01-15T12:00:00Z',
- })
+ const starredAt = '2024-01-15T12:00:00Z'
+ useRecordContext.mockReturnValue({ id: 'song-1', starred: true, starredAt })
isDateSet.mockReturnValue(true)
render()
- expect(screen.getByRole('button')).toHaveAttribute('title')
+ expect(screen.getByRole('button')).toHaveAttribute(
+ 'title',
+ new Date(starredAt).toLocaleString(),
+ )
+ expect(isDateSet).toHaveBeenCalledWith(starredAt)
})
it('has no title attribute when starredAt is not set', () => {
render()
expect(screen.getByRole('button')).not.toHaveAttribute('title')
})
+
+ it('renders FavoriteIcon when record is starred', () => {
+ useRecordContext.mockReturnValue({ id: 'song-1', starred: true })
+ render()
+ expect(screen.getByTestId('favorite-icon')).toBeInTheDocument()
+ expect(screen.queryByTestId('favorite-border-icon')).not.toBeInTheDocument()
+ })
+
+ it('renders FavoriteBorderIcon when record is not starred', () => {
+ render()
+ expect(screen.getByTestId('favorite-border-icon')).toBeInTheDocument()
+ expect(screen.queryByTestId('favorite-icon')).not.toBeInTheDocument()
+ })
})