getDefaultWidget.spec.tsx 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import {SessionField} from 'sentry/types/sessions';
  2. import {DisplayType, WidgetType} from 'sentry/views/dashboards/types';
  3. import {getDefaultWidget} from 'sentry/views/dashboards/widgetBuilder/utils/getDefaultWidget';
  4. describe('getDefaultWidget', () => {
  5. it('should return a default widget for errors', () => {
  6. const widget = getDefaultWidget(WidgetType.ERRORS);
  7. expect(widget).toEqual({
  8. displayType: DisplayType.TABLE,
  9. interval: '',
  10. title: 'Custom Widget',
  11. widgetType: WidgetType.ERRORS,
  12. queries: [
  13. {
  14. fields: ['count()'],
  15. conditions: '',
  16. aggregates: ['count()'],
  17. columns: [],
  18. orderby: '-count()',
  19. fieldAliases: [],
  20. name: '',
  21. },
  22. ],
  23. });
  24. });
  25. it('should return a default widget for spans', () => {
  26. const widget = getDefaultWidget(WidgetType.SPANS);
  27. expect(widget).toEqual({
  28. displayType: DisplayType.TABLE,
  29. interval: '',
  30. title: 'Custom Widget',
  31. widgetType: WidgetType.SPANS,
  32. queries: [
  33. {
  34. fields: ['count(span.duration)'],
  35. conditions: '',
  36. aggregates: ['count(span.duration)'],
  37. columns: [],
  38. orderby: '-count(span.duration)',
  39. fieldAliases: [],
  40. name: '',
  41. },
  42. ],
  43. });
  44. });
  45. it('should return a default widget for issues', () => {
  46. const widget = getDefaultWidget(WidgetType.ISSUE);
  47. expect(widget).toEqual({
  48. displayType: DisplayType.TABLE,
  49. interval: '',
  50. title: 'Custom Widget',
  51. widgetType: WidgetType.ISSUE,
  52. queries: [
  53. {
  54. fields: ['issue', 'assignee', 'title'] as string[],
  55. columns: ['issue', 'assignee', 'title'],
  56. conditions: '',
  57. aggregates: [],
  58. orderby: 'date',
  59. fieldAliases: [],
  60. name: '',
  61. },
  62. ],
  63. });
  64. });
  65. it('should return a default widget for releases', () => {
  66. const widget = getDefaultWidget(WidgetType.RELEASE);
  67. expect(widget).toEqual({
  68. displayType: DisplayType.TABLE,
  69. interval: '',
  70. title: 'Custom Widget',
  71. widgetType: WidgetType.RELEASE,
  72. queries: [
  73. {
  74. fields: [`crash_free_rate(${SessionField.SESSION})`],
  75. columns: [],
  76. fieldAliases: [],
  77. aggregates: [`crash_free_rate(${SessionField.SESSION})`],
  78. conditions: '',
  79. orderby: `-crash_free_rate(${SessionField.SESSION})`,
  80. name: '',
  81. },
  82. ],
  83. });
  84. });
  85. });