Chore: Remove our typeAsJestMock in favor of jest.mocked (#45114)

This commit is contained in:
Josh Hunt 2022-02-10 09:50:59 +11:00 committed by GitHub
parent 7abd372e68
commit c7a5d2c5c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 41 additions and 62 deletions

View File

@ -6,7 +6,6 @@ import { Router } from 'react-router-dom';
import { fetchAlertGroups } from './api/alertmanager'; import { fetchAlertGroups } from './api/alertmanager';
import { byRole, byTestId, byText } from 'testing-library-selector'; import { byRole, byTestId, byText } from 'testing-library-selector';
import { configureStore } from 'app/store/configureStore'; import { configureStore } from 'app/store/configureStore';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import AlertGroups from './AlertGroups'; import AlertGroups from './AlertGroups';
import { mockAlertGroup, mockAlertmanagerAlert, mockDataSource, MockDataSourceSrv } from './mocks'; import { mockAlertGroup, mockAlertmanagerAlert, mockDataSource, MockDataSourceSrv } from './mocks';
import { DataSourceType } from './utils/datasource'; import { DataSourceType } from './utils/datasource';
@ -16,7 +15,7 @@ jest.mock('./api/alertmanager');
const mocks = { const mocks = {
api: { api: {
fetchAlertGroups: typeAsJestMock(fetchAlertGroups), fetchAlertGroups: jest.mocked(fetchAlertGroups),
}, },
}; };

View File

@ -11,7 +11,6 @@ import {
Route, Route,
} from 'app/plugins/datasource/alertmanager/types'; } from 'app/plugins/datasource/alertmanager/types';
import { configureStore } from 'app/store/configureStore'; import { configureStore } from 'app/store/configureStore';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import { byLabelText, byRole, byTestId, byText } from 'testing-library-selector'; import { byLabelText, byRole, byTestId, byText } from 'testing-library-selector';
import AmRoutes from './AmRoutes'; import AmRoutes from './AmRoutes';
import { fetchAlertManagerConfig, fetchStatus, updateAlertManagerConfig } from './api/alertmanager'; import { fetchAlertManagerConfig, fetchStatus, updateAlertManagerConfig } from './api/alertmanager';
@ -26,12 +25,12 @@ jest.mock('./api/alertmanager');
jest.mock('./utils/config'); jest.mock('./utils/config');
const mocks = { const mocks = {
getAllDataSourcesMock: typeAsJestMock(getAllDataSources), getAllDataSourcesMock: jest.mocked(getAllDataSources),
api: { api: {
fetchAlertManagerConfig: typeAsJestMock(fetchAlertManagerConfig), fetchAlertManagerConfig: jest.mocked(fetchAlertManagerConfig),
updateAlertManagerConfig: typeAsJestMock(updateAlertManagerConfig), updateAlertManagerConfig: jest.mocked(updateAlertManagerConfig),
fetchStatus: typeAsJestMock(fetchStatus), fetchStatus: jest.mocked(fetchStatus),
}, },
}; };

View File

@ -5,7 +5,6 @@ import { locationService, setDataSourceSrv } from '@grafana/runtime';
import { Provider } from 'react-redux'; import { Provider } from 'react-redux';
import { Router } from 'react-router-dom'; import { Router } from 'react-router-dom';
import { fetchAlertManagerConfig, updateAlertManagerConfig } from './api/alertmanager'; import { fetchAlertManagerConfig, updateAlertManagerConfig } from './api/alertmanager';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import { configureStore } from 'app/store/configureStore'; import { configureStore } from 'app/store/configureStore';
import { mockDataSource, MockDataSourceSrv } from './mocks'; import { mockDataSource, MockDataSourceSrv } from './mocks';
@ -19,8 +18,8 @@ jest.mock('./api/alertmanager');
const mocks = { const mocks = {
api: { api: {
fetchAlertManagerConfig: typeAsJestMock(fetchAlertManagerConfig), fetchAlertManagerConfig: jest.mocked(fetchAlertManagerConfig),
updateAlertManagerConfig: typeAsJestMock(updateAlertManagerConfig), updateAlertManagerConfig: jest.mocked(updateAlertManagerConfig),
}, },
}; };

View File

@ -15,7 +15,6 @@ import {
mockRulerGrafanaRule, mockRulerGrafanaRule,
} from './mocks'; } from './mocks';
import { DataSourceType, GRAFANA_RULES_SOURCE_NAME } from './utils/datasource'; import { DataSourceType, GRAFANA_RULES_SOURCE_NAME } from './utils/datasource';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import { getAllDataSources } from './utils/config'; import { getAllDataSources } from './utils/config';
import { fetchRules } from './api/prometheus'; import { fetchRules } from './api/prometheus';
import { fetchRulerRules } from './api/ruler'; import { fetchRulerRules } from './api/ruler';
@ -47,10 +46,10 @@ dataSources.prometheus.meta.alerting = true;
dataSources.default.meta.alerting = true; dataSources.default.meta.alerting = true;
const mocks = { const mocks = {
getAllDataSources: typeAsJestMock(getAllDataSources), getAllDataSources: jest.mocked(getAllDataSources),
api: { api: {
fetchRules: typeAsJestMock(fetchRules), fetchRules: jest.mocked(fetchRules),
fetchRulerRules: typeAsJestMock(fetchRulerRules), fetchRulerRules: jest.mocked(fetchRulerRules),
}, },
}; };

View File

@ -6,7 +6,6 @@ import React from 'react';
import { locationService, setDataSourceSrv } from '@grafana/runtime'; import { locationService, setDataSourceSrv } from '@grafana/runtime';
import { act, render, waitFor } from '@testing-library/react'; import { act, render, waitFor } from '@testing-library/react';
import { getAllDataSources } from './utils/config'; import { getAllDataSources } from './utils/config';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import { updateAlertManagerConfig, fetchAlertManagerConfig, fetchStatus, testReceivers } from './api/alertmanager'; import { updateAlertManagerConfig, fetchAlertManagerConfig, fetchStatus, testReceivers } from './api/alertmanager';
import { import {
mockDataSource, mockDataSource,
@ -31,14 +30,14 @@ jest.mock('./api/grafana');
jest.mock('./utils/config'); jest.mock('./utils/config');
const mocks = { const mocks = {
getAllDataSources: typeAsJestMock(getAllDataSources), getAllDataSources: jest.mocked(getAllDataSources),
api: { api: {
fetchConfig: typeAsJestMock(fetchAlertManagerConfig), fetchConfig: jest.mocked(fetchAlertManagerConfig),
fetchStatus: typeAsJestMock(fetchStatus), fetchStatus: jest.mocked(fetchStatus),
updateConfig: typeAsJestMock(updateAlertManagerConfig), updateConfig: jest.mocked(updateAlertManagerConfig),
fetchNotifiers: typeAsJestMock(fetchNotifiers), fetchNotifiers: jest.mocked(fetchNotifiers),
testReceivers: typeAsJestMock(testReceivers), testReceivers: jest.mocked(testReceivers),
}, },
}; };

View File

@ -6,7 +6,6 @@ import { DataSourceJsonData, PluginMeta } from '@grafana/data';
import { locationService } from '@grafana/runtime'; import { locationService } from '@grafana/runtime';
import { RedirectToRuleViewer } from './RedirectToRuleViewer'; import { RedirectToRuleViewer } from './RedirectToRuleViewer';
import { configureStore } from 'app/store/configureStore'; import { configureStore } from 'app/store/configureStore';
import { typeAsJestMock } from '../../../../test/helpers/typeAsJestMock';
import { useCombinedRulesMatching } from './hooks/useCombinedRule'; import { useCombinedRulesMatching } from './hooks/useCombinedRule';
import { CombinedRule, Rule } from '../../../types/unified-alerting'; import { CombinedRule, Rule } from '../../../types/unified-alerting';
import { PromRuleType } from '../../../types/unified-alerting-dto'; import { PromRuleType } from '../../../types/unified-alerting-dto';
@ -31,7 +30,7 @@ const renderRedirectToRuleViewer = () => {
}; };
const mockRuleSourceByName = () => { const mockRuleSourceByName = () => {
typeAsJestMock(getRulesSourceByName).mockReturnValue({ jest.mocked(getRulesSourceByName).mockReturnValue({
name: 'prom test', name: 'prom test',
type: 'prometheus', type: 'prometheus',
uid: 'asdf23', uid: 'asdf23',
@ -44,7 +43,7 @@ const mockRuleSourceByName = () => {
describe('Redirect to Rule viewer', () => { describe('Redirect to Rule viewer', () => {
it('should list rules that match the same name', () => { it('should list rules that match the same name', () => {
typeAsJestMock(useCombinedRulesMatching).mockReturnValue({ jest.mocked(useCombinedRulesMatching).mockReturnValue({
result: mockedRules, result: mockedRules,
loading: false, loading: false,
dispatched: true, dispatched: true,
@ -57,7 +56,7 @@ describe('Redirect to Rule viewer', () => {
}); });
it('should redirect to view rule page if only one match', () => { it('should redirect to view rule page if only one match', () => {
typeAsJestMock(useCombinedRulesMatching).mockReturnValue({ jest.mocked(useCombinedRulesMatching).mockReturnValue({
result: [mockedRules[0]], result: [mockedRules[0]],
loading: false, loading: false,
dispatched: true, dispatched: true,

View File

@ -11,7 +11,6 @@ import { contextSrv } from 'app/core/services/context_srv';
import { mockDataSource, MockDataSourceSrv } from './mocks'; import { mockDataSource, MockDataSourceSrv } from './mocks';
import userEvent from '@testing-library/user-event'; import userEvent from '@testing-library/user-event';
import { DataSourceInstanceSettings } from '@grafana/data'; import { DataSourceInstanceSettings } from '@grafana/data';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import { getAllDataSources } from './utils/config'; import { getAllDataSources } from './utils/config';
import { fetchRulerRules, fetchRulerRulesGroup, fetchRulerRulesNamespace, setRulerRuleGroup } from './api/ruler'; import { fetchRulerRules, fetchRulerRulesGroup, fetchRulerRulesNamespace, setRulerRuleGroup } from './api/ruler';
import { DataSourceType, GRAFANA_RULES_SOURCE_NAME } from './utils/datasource'; import { DataSourceType, GRAFANA_RULES_SOURCE_NAME } from './utils/datasource';
@ -39,13 +38,13 @@ jest.mock('app/features/query/components/QueryEditorRow', () => ({
})); }));
const mocks = { const mocks = {
getAllDataSources: typeAsJestMock(getAllDataSources), getAllDataSources: jest.mocked(getAllDataSources),
api: { api: {
fetchRulerRulesGroup: typeAsJestMock(fetchRulerRulesGroup), fetchRulerRulesGroup: jest.mocked(fetchRulerRulesGroup),
setRulerRuleGroup: typeAsJestMock(setRulerRuleGroup), setRulerRuleGroup: jest.mocked(setRulerRuleGroup),
fetchRulerRulesNamespace: typeAsJestMock(fetchRulerRulesNamespace), fetchRulerRulesNamespace: jest.mocked(fetchRulerRulesNamespace),
fetchRulerRules: typeAsJestMock(fetchRulerRules), fetchRulerRules: jest.mocked(fetchRulerRules),
}, },
}; };

View File

@ -4,7 +4,6 @@ import { configureStore } from 'app/store/configureStore';
import { Provider } from 'react-redux'; import { Provider } from 'react-redux';
import RuleList from './RuleList'; import RuleList from './RuleList';
import { byLabelText, byRole, byTestId, byText } from 'testing-library-selector'; import { byLabelText, byRole, byTestId, byText } from 'testing-library-selector';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import { getAllDataSources } from './utils/config'; import { getAllDataSources } from './utils/config';
import { fetchRules } from './api/prometheus'; import { fetchRules } from './api/prometheus';
import { fetchRulerRules, deleteRulerRulesGroup, deleteNamespace, setRulerRuleGroup } from './api/ruler'; import { fetchRulerRules, deleteRulerRulesGroup, deleteNamespace, setRulerRuleGroup } from './api/ruler';
@ -39,14 +38,14 @@ jest.mock('app/core/core', () => ({
})); }));
const mocks = { const mocks = {
getAllDataSourcesMock: typeAsJestMock(getAllDataSources), getAllDataSourcesMock: jest.mocked(getAllDataSources),
api: { api: {
fetchRules: typeAsJestMock(fetchRules), fetchRules: jest.mocked(fetchRules),
fetchRulerRules: typeAsJestMock(fetchRulerRules), fetchRulerRules: jest.mocked(fetchRulerRules),
deleteGroup: typeAsJestMock(deleteRulerRulesGroup), deleteGroup: jest.mocked(deleteRulerRulesGroup),
deleteNamespace: typeAsJestMock(deleteNamespace), deleteNamespace: jest.mocked(deleteNamespace),
setRulerRuleGroup: typeAsJestMock(setRulerRuleGroup), setRulerRuleGroup: jest.mocked(setRulerRuleGroup),
}, },
}; };

View File

@ -6,7 +6,6 @@ import { DataSourceJsonData, PluginMeta } from '@grafana/data';
import { locationService } from '@grafana/runtime'; import { locationService } from '@grafana/runtime';
import { RuleViewer } from './RuleViewer'; import { RuleViewer } from './RuleViewer';
import { configureStore } from 'app/store/configureStore'; import { configureStore } from 'app/store/configureStore';
import { typeAsJestMock } from '../../../../test/helpers/typeAsJestMock';
import { useCombinedRule } from './hooks/useCombinedRule'; import { useCombinedRule } from './hooks/useCombinedRule';
import { GrafanaRouteComponentProps } from 'app/core/navigation/types'; import { GrafanaRouteComponentProps } from 'app/core/navigation/types';
import { GRAFANA_RULES_SOURCE_NAME } from './utils/datasource'; import { GRAFANA_RULES_SOURCE_NAME } from './utils/datasource';
@ -45,7 +44,7 @@ describe('RuleViewer', () => {
}); });
it('should render page with grafana alert', async () => { it('should render page with grafana alert', async () => {
typeAsJestMock(useCombinedRule).mockReturnValue({ jest.mocked(useCombinedRule).mockReturnValue({
result: mockGrafanaRule as CombinedRule, result: mockGrafanaRule as CombinedRule,
loading: false, loading: false,
dispatched: true, dispatched: true,
@ -59,7 +58,7 @@ describe('RuleViewer', () => {
}); });
it('should render page with cloud alert', async () => { it('should render page with cloud alert', async () => {
typeAsJestMock(useCombinedRule).mockReturnValue({ jest.mocked(useCombinedRule).mockReturnValue({
result: mockCloudRule as CombinedRule, result: mockCloudRule as CombinedRule,
loading: false, loading: false,
dispatched: true, dispatched: true,

View File

@ -5,7 +5,6 @@ import { dateTime } from '@grafana/data';
import { Provider } from 'react-redux'; import { Provider } from 'react-redux';
import { Router } from 'react-router-dom'; import { Router } from 'react-router-dom';
import { fetchSilences, fetchAlerts, createOrUpdateSilence } from './api/alertmanager'; import { fetchSilences, fetchAlerts, createOrUpdateSilence } from './api/alertmanager';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import { configureStore } from 'app/store/configureStore'; import { configureStore } from 'app/store/configureStore';
import Silences from './Silences'; import Silences from './Silences';
import { mockAlertmanagerAlert, mockDataSource, MockDataSourceSrv, mockSilence } from './mocks'; import { mockAlertmanagerAlert, mockDataSource, MockDataSourceSrv, mockSilence } from './mocks';
@ -21,9 +20,9 @@ const TEST_TIMEOUT = 60000;
const mocks = { const mocks = {
api: { api: {
fetchSilences: typeAsJestMock(fetchSilences), fetchSilences: jest.mocked(fetchSilences),
fetchAlerts: typeAsJestMock(fetchAlerts), fetchAlerts: jest.mocked(fetchAlerts),
createOrUpdateSilence: typeAsJestMock(createOrUpdateSilence), createOrUpdateSilence: jest.mocked(createOrUpdateSilence),
}, },
}; };

View File

@ -1,5 +1,4 @@
import React from 'react'; import React from 'react';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import { getAllDataSources } from '../../utils/config'; import { getAllDataSources } from '../../utils/config';
import { import {
fetchAlertManagerConfig, fetchAlertManagerConfig,
@ -36,13 +35,13 @@ jest.mock('../../api/grafana');
jest.mock('../../utils/config'); jest.mock('../../utils/config');
const mocks = { const mocks = {
getAllDataSources: typeAsJestMock(getAllDataSources), getAllDataSources: jest.mocked(getAllDataSources),
api: { api: {
fetchConfig: typeAsJestMock(fetchAlertManagerConfig), fetchConfig: jest.mocked(fetchAlertManagerConfig),
deleteAlertManagerConfig: typeAsJestMock(deleteAlertManagerConfig), deleteAlertManagerConfig: jest.mocked(deleteAlertManagerConfig),
updateAlertManagerConfig: typeAsJestMock(updateAlertManagerConfig), updateAlertManagerConfig: jest.mocked(updateAlertManagerConfig),
fetchStatus: typeAsJestMock(fetchStatus), fetchStatus: jest.mocked(fetchStatus),
}, },
}; };

View File

@ -6,7 +6,6 @@ import { byTestId } from 'testing-library-selector';
import { configureStore } from 'app/store/configureStore'; import { configureStore } from 'app/store/configureStore';
import { AlertGroupPanelOptions } from './types'; import { AlertGroupPanelOptions } from './types';
import { getDefaultTimeRange, LoadingState, PanelProps, FieldConfigSource } from '@grafana/data'; import { getDefaultTimeRange, LoadingState, PanelProps, FieldConfigSource } from '@grafana/data';
import { typeAsJestMock } from 'test/helpers/typeAsJestMock';
import { fetchAlertGroups } from 'app/features/alerting/unified/api/alertmanager'; import { fetchAlertGroups } from 'app/features/alerting/unified/api/alertmanager';
import { import {
mockAlertGroup, mockAlertGroup,
@ -32,7 +31,7 @@ jest.mock('@grafana/runtime', () => ({
const mocks = { const mocks = {
api: { api: {
fetchAlertGroups: typeAsJestMock(fetchAlertGroups), fetchAlertGroups: jest.mocked(fetchAlertGroups),
}, },
}; };

View File

@ -1,9 +0,0 @@
/* type a mocked function as jest mock, example:
* import { doFoo } from 'foo';
*
* jest.mock('foo');
*
* const doFooMock = typeAsJestMock(doFoo); // doFooMock is of type jest.Mock with proper return type for doFoo
*/
export const typeAsJestMock = <T extends (...args: any) => any>(fn: T) => fn as unknown as jest.Mock<ReturnType<T>>;