import React from 'react';
import { waitFor } from '@testing-library/react';
import { renderInAppContext } from '@theorchard/suite-testing';
import { testNrSoundRec as song } from 'lib/mockOwnershipNrSoundRecData';
import * as songByIdQuery from 'src/data/queries/getOwnershipNrSoundRecording/getOwnershipNrSoundRecording';
import SongPage, { CLASSNAME } from '../songPage';

describe('<SongPage>', () => {
    const renderPage = () => renderInAppContext(<SongPage />);

    beforeEach(() => {
        jest.spyOn(
            songByIdQuery,
            'useGetOwnershipNrSoundRecordingQuery'
        ).mockReturnValue({
            data: song,
            loading: false,
            error: undefined,
        });
    });

    afterEach(() => {
        jest.restoreAllMocks();
    });

    test('has classname', async () => {
        const { container } = renderPage();
        const classname = container.getElementsByClassName(CLASSNAME).item(0);
        await waitFor(() => expect(classname).toBeVisible());
    });
});
