import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import Button, { ButtonProps } from './button';
let defaultBtn: HTMLElement, myBtn: HTMLElement, clickBtn: HTMLElement, linkBtn: HTMLElement;
const clickProps = {
onClick: jest.fn()
}
const createButton = () => {
return (
<>
>
)
};
describe('测试Button组件', () => {
beforeEach(() => {
const { getByText } = render(createButton());
defaultBtn = getByText('默认按钮');
myBtn = getByText('自定义按钮');
clickBtn = getByText('事件按钮');
linkBtn = getByText('Link按钮');
})
test('测试Button的默认class样式类名是否存在', () => {
expect(defaultBtn).toBeInTheDocument();
expect(defaultBtn).toHaveClass('g-btn g-btn-default g-btn-md')
})
test('测试Button的自定义属性是否有效', () => {
expect(myBtn).toBeInTheDocument();
expect(myBtn).toHaveClass('g-btn g-btn-danger g-btn-lg');
})
test('测试Button的点击事件是否有效', () => {
expect(clickBtn).toBeInTheDocument();
fireEvent.click(clickBtn);
expect(clickProps.onClick).toHaveBeenCalled();
})
test('测试Button的Link类型是否有效', () => {
expect(linkBtn).toBeInTheDocument();
expect(linkBtn).toHaveClass('g-btn g-btn-link')
expect(linkBtn).toHaveProperty('href', 'https://google.com/');
expect(linkBtn).toHaveProperty('target', '_blank');
})
})