triggersChart.spec.tsx 2.0 KB

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