useDisableRouteAnalytics.spec.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import {render} from 'sentry-test/reactTestingLibrary';
  2. import {RouteAnalyticsContext} from 'sentry/views/routeAnalyticsContextProvider';
  3. import useDisableRouteAnalytics from './useDisableRouteAnalytics';
  4. function TestComponent() {
  5. useDisableRouteAnalytics();
  6. return <div>hi</div>;
  7. }
  8. describe('useDisableRouteAnalytics', function () {
  9. it('disables analytics', function () {
  10. const setDisableRouteAnalytics = jest.fn();
  11. const getComponent = (extraContext?: Record<string, any>) => (
  12. <RouteAnalyticsContext.Provider
  13. value={{
  14. setDisableRouteAnalytics,
  15. setRouteAnalyticsParams: jest.fn(),
  16. setOrganization: jest.fn(),
  17. setEventNames: jest.fn(),
  18. previousUrl: '',
  19. ...extraContext,
  20. }}
  21. >
  22. <TestComponent />
  23. </RouteAnalyticsContext.Provider>
  24. );
  25. const {rerender} = render(getComponent());
  26. expect(setDisableRouteAnalytics).toHaveBeenCalledWith();
  27. setDisableRouteAnalytics.mockClear();
  28. rerender(getComponent());
  29. // should still be called 0 times because previousURL the same
  30. expect(setDisableRouteAnalytics).toHaveBeenCalledTimes(0);
  31. rerender(getComponent({previousUrl: 'something-else'}));
  32. expect(setDisableRouteAnalytics).toHaveBeenCalledWith();
  33. });
  34. });