Fixed DomainStatusIcon test

This commit is contained in:
Alejandro Celaya
2021-12-28 23:22:55 +01:00
parent aba1972d0d
commit 7e132be686

View File

@@ -1,20 +1,21 @@
import { shallow, ShallowWrapper } from 'enzyme'; import { shallow, ShallowWrapper } from 'enzyme';
import { UncontrolledTooltip } from 'reactstrap'; import { UncontrolledTooltip } from 'reactstrap';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { Mock } from 'ts-mockery';
import { faTimes, faCheck, faCircleNotch } from '@fortawesome/free-solid-svg-icons'; import { faTimes, faCheck, faCircleNotch } from '@fortawesome/free-solid-svg-icons';
import { DomainStatus } from '../../../src/domains/data'; import { DomainStatus } from '../../../src/domains/data';
import { DomainStatusIcon } from '../../../src/domains/helpers/DomainStatusIcon'; import { DomainStatusIcon } from '../../../src/domains/helpers/DomainStatusIcon';
import { MediaMatcher } from '../../../src/utils/types';
import { Mock } from 'ts-mockery';
describe('<DomainStatusIcon />', () => { describe('<DomainStatusIcon />', () => {
const matchMedia = jest.fn().mockReturnValue(Mock.of<MediaQueryList>({ matches: false }));
let wrapper: ShallowWrapper; let wrapper: ShallowWrapper;
const createWrapper = (status: DomainStatus, matchMedia?: MediaMatcher) => { const createWrapper = (status: DomainStatus) => {
wrapper = shallow(<DomainStatusIcon status={status} matchMedia={matchMedia} />); wrapper = shallow(<DomainStatusIcon status={status} matchMedia={matchMedia} />);
return wrapper; return wrapper;
}; };
beforeEach(jest.clearAllMocks);
afterEach(() => wrapper?.unmount()); afterEach(() => wrapper?.unmount());
it('renders loading icon when status is "validating"', () => { it('renders loading icon when status is "validating"', () => {
@@ -58,11 +59,12 @@ describe('<DomainStatusIcon />', () => {
}); });
it.each([ it.each([
[ true, 'top-sart' ], [ true, 'top-start' ],
[ false, 'left' ], [ false, 'left' ],
])('places the tooltip properly based on query match', (isMobile, expectedPlacement) => { ])('places the tooltip properly based on query match', (isMobile, expectedPlacement) => {
const mediaMatch = jest.fn().mockReturnValue(Mock.of<MediaQueryList>({ matches: isMobile })); matchMedia.mockReturnValue(Mock.of<MediaQueryList>({ matches: isMobile }));
const wrapper = createWrapper('valid', mediaMatch);
const wrapper = createWrapper('valid');
const tooltip = wrapper.find(UncontrolledTooltip); const tooltip = wrapper.find(UncontrolledTooltip);
expect(tooltip).toHaveLength(1); expect(tooltip).toHaveLength(1);