intervalSelector.spec.tsx 1.8 KB

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