/* eslint-disable max-statements */
import { describe, expect, it } from '@jest/globals';
import { render, screen as rtlScreen } from '@testing-library/react';
import { Button } from './button';
describe('Button', () => {
it('renders the button body', () => {
const body = 'aliquid';
render();
expect(rtlScreen.getByRole('button')).toHaveTextContent(body);
});
it('renders a disabled button', () => {
const body = 'quod';
render();
expect(rtlScreen.getByRole('button', { name: body })).toBeDisabled();
});
it('renders a button currently loading something', () => {
const body = 'quod';
render();
expect(rtlScreen.getByRole('button', { busy: true })).toHaveAccessibleName(
body
);
});
it('renders a pressed button', () => {
const body = 'quod';
render();
expect(
rtlScreen.getByRole('button', { pressed: true })
).toHaveAccessibleName(body);
});
it('renders a submit button', () => {
const body = 'dolorum';
render();
expect(rtlScreen.getByRole('button', { name: body })).toHaveAttribute(
'type',
'submit'
);
});
it('renders a reset button', () => {
const body = 'consectetur';
render();
expect(rtlScreen.getByRole('button', { name: body })).toHaveAttribute(
'type',
'reset'
);
});
it('renders a primary button', () => {
const body = 'iure';
render();
expect(rtlScreen.getByRole('button', { name: body })).toHaveClass(
'btn--primary'
);
});
it('renders a secondary button', () => {
const body = 'et';
render();
expect(rtlScreen.getByRole('button', { name: body })).toHaveClass(
'btn--secondary'
);
});
it('renders a tertiary button', () => {
const body = 'quo';
render();
expect(rtlScreen.getByRole('button', { name: body })).toHaveClass(
'btn--tertiary'
);
});
it('renders a neutral button', () => {
const body = 'voluptatem';
render();
expect(rtlScreen.getByRole('button', { name: body })).toHaveClass(
'btn--neutral'
);
});
it('renders a circle button', () => {
const body = 'laudantium';
render();
expect(rtlScreen.getByRole('button', { name: body })).toHaveClass(
'btn--circle'
);
});
it('renders a rectangle button', () => {
const body = 'ut';
render();
expect(rtlScreen.getByRole('button', { name: body })).toHaveClass(
'btn--rectangle'
);
});
it('renders a square button', () => {
const body = 'non';
render();
expect(rtlScreen.getByRole('button', { name: body })).toHaveClass(
'btn--square'
);
});
});