Add Unit Test to ToolbarIcon

Summary: per title

Reviewed By: mweststrate

Differential Revision: D21663253

fbshipit-source-id: de1eff5a3500473082973a27d0b72479407cbebe
This commit is contained in:
Chaiwat Ekkaewnumchai
2020-05-25 10:38:26 -07:00
committed by Facebook GitHub Bot
parent 9cda8d03b7
commit 8d8ed5e2ed

View File

@@ -0,0 +1,74 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import React from 'react';
import {render, fireEvent} from '@testing-library/react';
import ToolbarIcon from '../ToolbarIcon';
import TooltipProvider from '../TooltipProvider';
const TITLE_STRING = 'This is for testing';
test('rendering element icon without hovering', () => {
const res = render(
<ToolbarIcon title={TITLE_STRING} icon="target" onClick={() => {}} />,
);
expect(res.queryAllByText(TITLE_STRING).length).toBe(0);
});
test('trigger active for coverage(?)', () => {
const res = render(
<ToolbarIcon title={TITLE_STRING} icon="target" onClick={() => {}} />,
);
res.rerender(
<ToolbarIcon
active
title={TITLE_STRING}
icon="target"
onClick={() => {}}
/>,
);
res.rerender(
<ToolbarIcon title={TITLE_STRING} icon="target" onClick={() => {}} />,
);
});
test('test on hover and unhover', () => {
const res = render(
<TooltipProvider>
<ToolbarIcon title={TITLE_STRING} icon="target" onClick={() => {}} />
</TooltipProvider>,
);
expect(res.queryAllByText(TITLE_STRING).length).toBe(0);
const comp = res.container.firstChild?.childNodes[0];
expect(comp).not.toBeNull();
// hover
fireEvent.mouseEnter(comp!);
expect(res.queryAllByText(TITLE_STRING).length).toBe(1);
// unhover
fireEvent.mouseLeave(comp!);
expect(res.queryAllByText(TITLE_STRING).length).toBe(0);
});
test('test on click', () => {
const mockOnClick = jest.fn(() => {});
const res = render(
<TooltipProvider>
<ToolbarIcon title={TITLE_STRING} icon="target" onClick={mockOnClick} />
</TooltipProvider>,
);
const comp = res.container.firstChild?.childNodes[0];
expect(comp).not.toBeNull();
// click
fireEvent.click(comp!);
expect(mockOnClick.mock.calls.length).toBe(1);
});