import React from 'react';
import { screen } from '@testing-library/react';
import { renderInAppContext } from '@theorchard/suite-testing';
import { LinkButton, LinkButtonProps } from '../link-button';

describe('<LinkButton/>', () => {
    const props = {
        label: 'Link Button',
        target: '/test',
    };

    const render = (componentProps: LinkButtonProps) =>
        renderInAppContext(<LinkButton {...componentProps} />);

    it('renders button', () => {
        render(props);

        const button = screen.getByText('Link Button');
        const link = screen.getByRole('link');
        expect(link.getAttribute('href')).toEqual('/test');

        expect(button).toBeDefined();
        expect(button).toHaveClass('btn-primary btn-lg');
        expect(button).not.toHaveAttribute('disabled');
    });

    it('disables button', () => {
        render({ ...props, disabled: true });

        const button = screen.getByText('Link Button');
        expect(button).toHaveAttribute('disabled');
    });

    it('render button with size medium', () => {
        render({ ...props, buttonSize: 'md' });

        const button = screen.getByText('Link Button');
        expect(button).toHaveClass('btn-primary');
    });
});
