intervalSelector.spec.jsx 1.8 KB

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