intervalSelector.spec.tsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import {ProjectFixture} from 'sentry-fixture/project';
  2. import {render} from 'sentry-test/reactTestingLibrary';
  3. import IntervalSelector from 'sentry/components/charts/intervalSelector';
  4. import EventView from 'sentry/utils/discover/eventView';
  5. import {DisplayModes} from 'sentry/utils/discover/types';
  6. describe('IntervalSelector', function () {
  7. const project = ProjectFixture();
  8. const eventView = EventView.fromSavedQuery({
  9. id: '',
  10. name: 'test query',
  11. version: 2,
  12. fields: ['transaction', 'count()'],
  13. projects: [parseInt(project.id, 10)],
  14. });
  15. it('resets small interval', function () {
  16. let interval: string | undefined = '1s';
  17. eventView.interval = interval;
  18. eventView.statsPeriod = '90d';
  19. const intervalSelector = (
  20. <IntervalSelector
  21. eventView={eventView}
  22. displayMode={DisplayModes.DEFAULT}
  23. onIntervalChange={newInterval => {
  24. interval = newInterval;
  25. }}
  26. />
  27. );
  28. render(intervalSelector);
  29. expect(interval).toEqual('4h');
  30. });
  31. it('resets large interval', function () {
  32. eventView.interval = '1h';
  33. eventView.statsPeriod = '1h';
  34. const intervalSelector = (
  35. <IntervalSelector
  36. eventView={eventView}
  37. displayMode={DisplayModes.DEFAULT}
  38. onIntervalChange={newInterval => (eventView.interval = newInterval)}
  39. />
  40. );
  41. render(intervalSelector);
  42. expect(eventView.interval).toEqual('1m');
  43. });
  44. it('leaves default interval alone', function () {
  45. eventView.interval = undefined;
  46. eventView.statsPeriod = '90d';
  47. let interval = 'not called';
  48. const intervalSelector = (
  49. <IntervalSelector
  50. eventView={eventView}
  51. displayMode={DisplayModes.DEFAULT}
  52. onIntervalChange={_newInterval => (interval = 'called')}
  53. />
  54. );
  55. render(intervalSelector);
  56. expect(interval).toEqual('not called');
  57. });
  58. });