/* eslint-disable import/no-extraneous-dependencies */
/* eslint-disable no-undef */
import React from 'react';
import { render, cleanup, fireEvent } from '@testing-library/react';
import Button from '../components/Button';
import { color } from '../constants/style';
describe('Button component', () => {
afterEach(cleanup);
test('check button content', () => {
const { getByText } = render();
expect(getByText('btn content').textContent).toBe('btn content');
});
test('check button theme', () => {
const { container } = render();
const btn = container.querySelector('button');
const style = window.getComputedStyle(btn as HTMLElement) as { [key: string]: any };
expect(style['border-color']).toBe(color.primary);
expect(style['background-color']).toBe('rgb(88, 106, 242)');
expect(style.color).toBe('white');
});
test('click button', () => {
let counter = 0;
const cb = (): void => { counter += 1; };
const { getByText } = render();
fireEvent.click(getByText('btn content'));
expect(counter).toBe(1);
});
test('disable button', () => {
let counter = 0;
const cb = (): void => { counter += 1; };
const { getByText } = render();
fireEvent.click(getByText('btn content'));
expect(counter).toBe(0);
});
});