import React from 'react';
import { screen } from '@testing-library/react';
import { renderInAppContext } from '@theorchard/suite-testing';
import AddSong, { CLASSNAME } from '../addSong';

describe('<AddSong>', () => {
    const renderComponent = () => renderInAppContext(<AddSong />);

    test('render AddSong component', () => {
        const component = renderComponent();
        const addSong = component.getByTestId(CLASSNAME);

        expect(addSong).toBeVisible();
    });

    test('renders default placeholder for performer dropdown', () => {
        const placeholder = 'repertoire.accountSearch';
        renderComponent();

        expect(screen.getByText(placeholder)).toBeInTheDocument();
    });

    test('renders default placeholder for song dropdown', () => {
        const placeholder = 'repertoire.songSearch';
        renderComponent();

        expect(screen.getByText(placeholder)).toBeInTheDocument();
    });

    test('renders BasicMetadata component', () => {
        const { container } = renderComponent();
        const basicMetadata = container.getElementsByClassName('BasicMetadata').item(0);

        expect(basicMetadata).toBeVisible();
    });

    test('does not render TrackMetadata and Rights Info by default', () => {
        const { container } = renderComponent();
        const trackMetadata = container.getElementsByClassName('TrackMetadata').item(0);
        const rightsInfo = container.getElementsByClassName('RightsInfo').item(0);

        expect(trackMetadata).toBeNull();
        expect(rightsInfo).toBeNull();
    });
});
