triggersChart.spec.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import {initializeOrg} from 'sentry-test/initializeOrg';
  2. import {render, screen} from 'sentry-test/reactTestingLibrary';
  3. import {Client} from 'sentry/api';
  4. import TriggersChart from 'sentry/views/alerts/rules/metric/triggers/chart';
  5. import {
  6. AlertRuleComparisonType,
  7. AlertRuleThresholdType,
  8. } from 'sentry/views/alerts/rules/metric/types';
  9. describe('Incident Rules Create', () => {
  10. const eventStatsMock = MockApiClient.addMockResponse({
  11. url: '/organizations/org-slug/events-stats/',
  12. body: TestStubs.EventsStats(),
  13. });
  14. const eventCountsMock = MockApiClient.addMockResponse({
  15. url: '/organizations/org-slug/events-meta/',
  16. body: {count: 5},
  17. });
  18. const api = new Client();
  19. it('renders a metric', async () => {
  20. const {organization, project} = initializeOrg();
  21. render(
  22. <TriggersChart
  23. api={api}
  24. organization={organization}
  25. projects={[project]}
  26. query="event.type:error"
  27. timeWindow={1}
  28. aggregate="count()"
  29. triggers={[]}
  30. environment={null}
  31. comparisonType={AlertRuleComparisonType.COUNT}
  32. resolveThreshold={null}
  33. thresholdType={AlertRuleThresholdType.BELOW}
  34. />
  35. );
  36. expect(await screen.findByTestId('area-chart')).toBeInTheDocument();
  37. expect(eventStatsMock).toHaveBeenCalledWith(
  38. expect.anything(),
  39. expect.objectContaining({
  40. query: {
  41. interval: '1m',
  42. project: [2],
  43. query: 'event.type:error',
  44. statsPeriod: '10000m',
  45. yAxis: 'count()',
  46. referrer: 'api.organization-event-stats',
  47. },
  48. })
  49. );
  50. expect(eventCountsMock).toHaveBeenCalledWith(
  51. expect.anything(),
  52. expect.objectContaining({
  53. query: {
  54. project: ['2'],
  55. query: 'event.type:error',
  56. statsPeriod: '10000m',
  57. environment: [],
  58. },
  59. })
  60. );
  61. });
  62. });