playerDOMAlert.spec.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import {render, screen} from 'sentry-test/reactTestingLibrary';
  2. import localStorage from 'sentry/utils/localStorage';
  3. import PlayerDOMAlert from './playerDOMAlert';
  4. jest.mock('sentry/utils/localStorage');
  5. jest.useFakeTimers();
  6. const mockGetItem = jest.mocked(localStorage.getItem);
  7. const now = new Date('2020-01-01');
  8. jest.setSystemTime(now);
  9. describe('PlayerDOMAlert', () => {
  10. beforeEach(() => {
  11. mockGetItem.mockReset();
  12. });
  13. it('should render the alert when local storage key is not set', () => {
  14. render(<PlayerDOMAlert />);
  15. expect(screen.getByTestId('player-dom-alert')).toBeVisible();
  16. });
  17. it('should not render the alert when the local storage key is set', () => {
  18. mockGetItem.mockImplementationOnce(() => now.getTime().toString());
  19. render(<PlayerDOMAlert />);
  20. expect(screen.queryByTestId('player-dom-alert')).not.toBeInTheDocument();
  21. });
  22. it('should be dismissable', () => {
  23. render(<PlayerDOMAlert />);
  24. expect(screen.getByTestId('player-dom-alert')).toBeVisible();
  25. screen.getByLabelText('Close Alert').click();
  26. jest.runAllTicks();
  27. expect(screen.queryByTestId('player-dom-alert')).not.toBeInTheDocument();
  28. expect(localStorage.setItem).toHaveBeenCalledWith(
  29. 'replay-player-dom-alert-dismissed',
  30. '"1577836800000"'
  31. );
  32. });
  33. });