view.spec.tsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import {Fragment} from 'react';
  2. import {RouterFixture} from 'sentry-fixture/routerFixture';
  3. import {initializeOrg} from 'sentry-test/initializeOrg';
  4. import {render} from 'sentry-test/reactTestingLibrary';
  5. import ViewEditDashboard from 'sentry/views/dashboards/view';
  6. describe('Dashboards > ViewEditDashboard', function () {
  7. const initialData = initializeOrg();
  8. it('removes widget params from url and preserves selection params', function () {
  9. const router = RouterFixture({
  10. location: {
  11. pathname: '/',
  12. query: {
  13. environment: 'canary',
  14. period: '7d',
  15. project: '11111',
  16. start: null,
  17. end: null,
  18. utc: null,
  19. displayType: 'line',
  20. interval: '5m',
  21. queryConditions: '',
  22. queryFields: 'count()',
  23. queryNames: '',
  24. queryOrderby: '',
  25. title: 'test',
  26. statsPeriod: '7d',
  27. },
  28. },
  29. });
  30. MockApiClient.addMockResponse({
  31. url: `/organizations/${initialData.organization.slug}/dashboards/1/visit/`,
  32. statusCode: 200,
  33. method: 'POST',
  34. });
  35. render(
  36. <ViewEditDashboard
  37. location={router.location}
  38. organization={initialData.organization}
  39. router={initialData.router}
  40. params={{
  41. orgId: initialData.organization.slug,
  42. dashboardId: '1',
  43. }}
  44. route={{}}
  45. routes={[]}
  46. routeParams={{}}
  47. >
  48. <Fragment />
  49. </ViewEditDashboard>,
  50. {router}
  51. );
  52. expect(router.replace).toHaveBeenCalledWith(
  53. expect.objectContaining({
  54. pathname: '/',
  55. query: {
  56. end: null,
  57. environment: 'canary',
  58. period: '7d',
  59. project: '11111',
  60. start: null,
  61. statsPeriod: '7d',
  62. utc: null,
  63. },
  64. })
  65. );
  66. });
  67. });