* UI spring cleaning - fix ~570 outstanding eslint warnings - make eslint force user to correct warnings - remove .css files that are not referenced - remove dummy.tsx as it is not consumed anywhere - remove a few functions that were "dead code" (ie. not consumed anywhere) - remove commented out blocks of code that had no explanatory comments surrounding them * add prettier to pre-commit configuration * change ignoreRestSiblings to true we have a few spots in the codebase where we destructure an object key and then use something like ...restProps setting this to true allows that * upgrade from eslint 7.21.0 to 8.25.0 - add @grafana/eslint-config to dev dependencies and pre-commit eslint deps - add @grafana/eslint-config peer dependencies to package.json * fix remaining outstanding prettier warnings * enable noUnusedLocals and noUnusedParameters and fix errors related to this * make pre-commit complain about eslint warnings * import from moment-timezone instead of moment * fix react/display-name eslint warning * add eslint-plugin-react-hooks to dev deps this is a peer dependency from @grafana/eslint-config * turn off react/prop-types * temporarily turn off react-hooks/exhaustive-deps add note that it will be turned back on and fixed in next PR * fix unused import errors after rebase to dev * fix more new prettier errors * turn react/no-unescaped-entities eslint rule off * address PR comment about useReducer * remove includeTemplateGroup from src/components/AlertTemplates/AlertTemplatesForm.helper.tsx * update arg typing for refreshPageError * update handleSyncException typing * fix strict equality in containers/IntegrationSettings/parts/Autoresolve.tsx * enhance typing in components/AlertTemplates/AlertTemplatesForm.tsx * revert small change per Maxim's comment
36 lines
968 B
TypeScript
36 lines
968 B
TypeScript
import 'jest/matchMedia.ts';
|
|
import React from 'react';
|
|
|
|
import { describe, expect, test } from '@jest/globals';
|
|
import { fireEvent, render, screen } from '@testing-library/react';
|
|
|
|
import '@testing-library/jest-dom';
|
|
import CardButton from 'components/CardButton/CardButton';
|
|
|
|
describe('CardButton', () => {
|
|
function getProps(onClickMock: jest.Mock = jest.fn()) {
|
|
return {
|
|
icon: <></>,
|
|
description: 'Description',
|
|
title: 'Title',
|
|
selected: true,
|
|
onClick: onClickMock,
|
|
};
|
|
}
|
|
|
|
test('It updates class and calls onClick prop on click', () => {
|
|
const onClickMock = jest.fn();
|
|
render(<CardButton {...getProps(onClickMock)} />);
|
|
|
|
const rootEl = getRootBlockEl();
|
|
|
|
fireEvent.click(rootEl);
|
|
|
|
expect(rootEl.classList).toContain('root_selected');
|
|
expect(onClickMock).toHaveBeenCalled();
|
|
});
|
|
|
|
function getRootBlockEl(): HTMLElement {
|
|
return screen.queryByTestId<HTMLElement>('test__cardButton');
|
|
}
|
|
});
|