diff --git a/ui/src/dialogs/AddToPlaylistDialog.test.js b/ui/src/dialogs/AddToPlaylistDialog.test.js index dbe2e1f5..7a1fe515 100644 --- a/ui/src/dialogs/AddToPlaylistDialog.test.js +++ b/ui/src/dialogs/AddToPlaylistDialog.test.js @@ -4,28 +4,62 @@ import { DataProviderContext } from 'react-admin' import { cleanup, fireEvent, render, waitFor } from '@testing-library/react' import { AddToPlaylistDialog } from './AddToPlaylistDialog' +const mockData = [ + { id: 'sample-id1', name: 'sample playlist 1', ownerId: 'admin' }, + { id: 'sample-id2', name: 'sample playlist 2', ownerId: 'admin' }, +] +const mockIndexedData = { + 'sample-id1': { + id: 'sample-id1', + name: 'sample playlist 1', + ownerId: 'admin', + }, + 'sample-id2': { + id: 'sample-id2', + name: 'sample playlist 2', + ownerId: 'admin', + }, +} +const selectedIds = ['song-1', 'song-2'] + +const createTestUtils = (mockDataProvider) => + render( + + + + + + ) + describe('AddToPlaylistDialog', () => { beforeAll(() => localStorage.setItem('userId', 'admin')) afterEach(cleanup) - const mockData = [ - { id: 'sample-id1', name: 'sample playlist 1', ownerId: 'admin' }, - { id: 'sample-id2', name: 'sample playlist 2', ownerId: 'admin' }, - ] - const mockIndexedData = { - 'sample-id1': { - id: 'sample-id1', - name: 'sample playlist 1', - ownerId: 'admin', - }, - 'sample-id2': { - id: 'sample-id2', - name: 'sample playlist 2', - ownerId: 'admin', - }, - } - const selectedIds = ['song-1', 'song-2'] - it('adds distinct songs to already existing playlists', async () => { const mockDataProvider = { getList: jest @@ -37,38 +71,7 @@ describe('AddToPlaylistDialog', () => { }), } - const testutils = render( - - - - - - ) + const testUtils = createTestUtils(mockDataProvider) fireEvent.change(document.activeElement, { target: { value: 'sample' } }) fireEvent.keyDown(document.activeElement, { key: 'ArrowDown' }) @@ -76,9 +79,9 @@ describe('AddToPlaylistDialog', () => { fireEvent.keyDown(document.activeElement, { key: 'ArrowDown' }) fireEvent.keyDown(document.activeElement, { key: 'Enter' }) await waitFor(() => { - expect(testutils.getByTestId('playlist-add')).not.toBeDisabled() + expect(testUtils.getByTestId('playlist-add')).not.toBeDisabled() }) - fireEvent.click(testutils.getByTestId('playlist-add')) + fireEvent.click(testUtils.getByTestId('playlist-add')) await waitFor(() => { expect(mockDataProvider.create).toHaveBeenNthCalledWith( 1, @@ -111,38 +114,8 @@ describe('AddToPlaylistDialog', () => { data: { id: 'created-id1', name: 'created-name' }, }), } - const testutils = render( - - - - - - ) + + const testUtils = createTestUtils(mockDataProvider) fireEvent.change(document.activeElement, { target: { value: 'sample' } }) fireEvent.keyDown(document.activeElement, { key: 'ArrowDown' }) @@ -150,9 +123,9 @@ describe('AddToPlaylistDialog', () => { fireEvent.keyDown(document.activeElement, { key: 'ArrowDown' }) fireEvent.keyDown(document.activeElement, { key: 'Enter' }) await waitFor(() => { - expect(testutils.getByTestId('playlist-add')).not.toBeDisabled() + expect(testUtils.getByTestId('playlist-add')).not.toBeDisabled() }) - fireEvent.click(testutils.getByTestId('playlist-add')) + fireEvent.click(testUtils.getByTestId('playlist-add')) await waitFor(() => { expect(mockDataProvider.create).toHaveBeenNthCalledWith(1, 'playlist', { data: { name: 'sample' }, @@ -178,38 +151,8 @@ describe('AddToPlaylistDialog', () => { data: { id: 'created-id1', name: 'created-name' }, }), } - const testutils = render( - - - - - - ) + + const testUtils = createTestUtils(mockDataProvider) fireEvent.change(document.activeElement, { target: { value: 'sample' } }) fireEvent.keyDown(document.activeElement, { key: 'ArrowDown' }) @@ -221,9 +164,9 @@ describe('AddToPlaylistDialog', () => { }) fireEvent.keyDown(document.activeElement, { key: 'Enter' }) await waitFor(() => { - expect(testutils.getByTestId('playlist-add')).not.toBeDisabled() + expect(testUtils.getByTestId('playlist-add')).not.toBeDisabled() }) - fireEvent.click(testutils.getByTestId('playlist-add')) + fireEvent.click(testUtils.getByTestId('playlist-add')) await waitFor(() => { expect(mockDataProvider.create).toHaveBeenCalledTimes(4) })