index.spec.tsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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, router} = initializeOrg();
  22. render(
  23. <TriggersChart
  24. api={api}
  25. location={router.location}
  26. organization={organization}
  27. projects={[project]}
  28. query="event.type:error"
  29. timeWindow={1}
  30. aggregate="count()"
  31. dataset={Dataset.ERRORS}
  32. triggers={[]}
  33. environment={null}
  34. comparisonType={AlertRuleComparisonType.COUNT}
  35. resolveThreshold={null}
  36. thresholdType={AlertRuleThresholdType.BELOW}
  37. newAlertOrQuery
  38. handleMEPAlertDataset={() => {}}
  39. />
  40. );
  41. expect(await screen.findByTestId('area-chart')).toBeInTheDocument();
  42. expect(eventStatsMock).toHaveBeenCalledWith(
  43. expect.anything(),
  44. expect.objectContaining({
  45. query: {
  46. interval: '1m',
  47. project: [2],
  48. query: 'event.type:error',
  49. statsPeriod: '10000m',
  50. yAxis: 'count()',
  51. referrer: 'api.organization-event-stats',
  52. },
  53. })
  54. );
  55. expect(eventCountsMock).toHaveBeenCalledWith(
  56. expect.anything(),
  57. expect.objectContaining({
  58. query: {
  59. project: ['2'],
  60. query: 'event.type:error',
  61. statsPeriod: '10000m',
  62. environment: [],
  63. },
  64. })
  65. );
  66. });
  67. });