import React from 'react';
import '@testing-library/jest-dom';
import { render, fireEvent } from '@testing-library/react';
import { JobTitleTooltip, JobTitlePopover, JobTitle } from '../job-title';
import * as ResizeObserverModule from 'resize-observer-polyfill';
(window as any).ResizeObserver = ResizeObserverModule.default;
describe('JobTitle - Smaller Devices', () => {
it('renders the Job title Popover', () => {
const { asFragment, getByTestId } = render(
);
expect(asFragment()).toMatchSnapshot();
expect(getByTestId('Popover')).toBeVisible();
});
});
describe('JobTitle - Larger Devices', () => {
it('renders the Job title Tooltip on larger devices', () => {
const { asFragment, getByTestId } = render(
);
expect(asFragment()).toMatchSnapshot();
expect(getByTestId('Tooltip')).toBeVisible();
});
});
describe('JobTitleTooltip', () => {
it('Renders the tooltip when clicked', async () => {
const {
getByRole,
asFragment,
getByTestId,
getByText,
queryByTestId,
queryByText
} = render(
);
expect(queryByTestId('Tooltip-context')).not.toBeVisible();
expect(queryByText('Contractual Title Tooltip')).not.toBeVisible();
fireEvent.mouseEnter(getByRole('button'));
expect(asFragment()).toMatchSnapshot();
expect(getByTestId('Tooltip')).toBeVisible();
expect(getByText('Contractual Title Tooltip')).toBeVisible();
});
});
describe('JobTitlePopover', () => {
it('Renders the Popover when clicked', () => {
const {
asFragment,
getByRole,
getByText,
queryByText,
queryByTestId,
getByTestId
} = render(
);
expect(queryByTestId('Popover-context')).not.toBeVisible();
expect(queryByText('Contractual Title Popover')).not.toBeVisible();
fireEvent.click(getByRole('button'));
expect(asFragment()).toMatchSnapshot();
expect(getByTestId('Popover')).toBeVisible();
expect(getByText('Contractual Title Popover')).toBeVisible();
const closeButton = getByTestId('close-button');
expect(closeButton).toBeVisible();
});
});