@cainiaofe/cn-ui-m
Version:
29 lines (28 loc) • 1.39 kB
JavaScript
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import { CnSwitch } from '../index';
describe('CnSwitch', function () {
it('renders without errors', function () {
var container = render(React.createElement(CnSwitch, null)).container;
expect(container).toBeInTheDocument();
});
it('should handle onChange event', function () {
var handleChange = jest.fn();
var getByTestId = render(React.createElement(CnSwitch, { onChange: handleChange })).getByTestId;
var switchElement = getByTestId('cn-switch');
fireEvent.click(switchElement);
expect(handleChange).toHaveBeenCalledTimes(1);
});
it('should toggle the switch when clicked', function () {
var getByTestId = render(React.createElement(CnSwitch, null)).getByTestId;
var switchElement = getByTestId('cn-switch');
fireEvent.click(switchElement);
expect(switchElement.classList.contains('cn-ui-m-switch--checked')).toBe(true);
});
it('should not toggle the switch when disabled', function () {
var getByTestId = render(React.createElement(CnSwitch, { disabled: true })).getByTestId;
var switchElement = getByTestId('cn-switch');
fireEvent.click(switchElement);
expect(switchElement.classList.contains('cn-ui-m-switch--checked')).toBe(false);
});
});