button.spec.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
  2. import {Button} from 'sentry/components/button';
  3. describe('Button', function () {
  4. it('renders', function () {
  5. render(<Button priority="primary">Button</Button>);
  6. });
  7. it('renders react-router link', function () {
  8. render(<Button to="/some/route">Router Link</Button>);
  9. });
  10. it('renders normal link', function () {
  11. render(<Button href="/some/relative/url">Normal Link</Button>);
  12. });
  13. it('renders disabled normal link', function () {
  14. render(<Button href="/some/relative/url">Normal Link</Button>);
  15. });
  16. it('calls `onClick` callback', async function () {
  17. const spy = jest.fn();
  18. render(<Button onClick={spy}>Click me</Button>);
  19. await userEvent.click(screen.getByText('Click me'));
  20. expect(spy).toHaveBeenCalled();
  21. });
  22. it('does not call `onClick` on disabled buttons', async function () {
  23. const spy = jest.fn();
  24. render(
  25. <Button onClick={spy} disabled>
  26. Click me
  27. </Button>
  28. );
  29. await userEvent.click(screen.getByText('Click me'));
  30. expect(spy).not.toHaveBeenCalled();
  31. });
  32. });