import { render } from '@testing-library/react'; import React from 'react'; import { PanelModel } from '../dashboard/state'; import { createDashboardModelFixture, createPanelJSONFixture } from '../dashboard/state/__fixtures__/dashboardFixtures'; import { TestRuleResult, Props } from './TestRuleResult'; jest.mock('@grafana/runtime', () => { const original = jest.requireActual('@grafana/runtime'); return { ...original, getBackendSrv: () => ({ post: jest.fn(), }), }; }); const props: Props = { panel: new PanelModel({ id: 1 }), dashboard: createDashboardModelFixture({ panels: [createPanelJSONFixture({ id: 1 })], }), }; describe('TestRuleResult', () => { it('should render without error', () => { expect(() => render()).not.toThrow(); }); it('should call testRule when mounting', () => { jest.spyOn(TestRuleResult.prototype, 'testRule'); render(); expect(TestRuleResult.prototype.testRule).toHaveBeenCalled(); }); });