pullRequestLink.spec.tsx 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import {PullRequest} from 'sentry-fixture/pullRequest';
  2. import {render, screen} from 'sentry-test/reactTestingLibrary';
  3. import PullRequestLink from 'sentry/components/pullRequestLink';
  4. describe('PullRequestLink', () => {
  5. it('renders no url on missing externalUrl', () => {
  6. const repository = TestStubs.Repository({provider: null});
  7. const pullRequest = PullRequest({
  8. repository,
  9. externalUrl: undefined,
  10. });
  11. render(<PullRequestLink repository={repository} pullRequest={pullRequest} />);
  12. expect(screen.queryByRole('link')).not.toBeInTheDocument();
  13. expect(screen.getByText('example/repo-name #3: Fix first issue')).toBeInTheDocument();
  14. });
  15. it('renders github links for integrations:github repositories', () => {
  16. const repository = TestStubs.Repository({
  17. provider: {
  18. id: 'integrations:github',
  19. },
  20. });
  21. const pullRequest = PullRequest({repository});
  22. render(<PullRequestLink repository={repository} pullRequest={pullRequest} />);
  23. expect(screen.getByTestId('pull-request-github')).toBeInTheDocument();
  24. expect(
  25. screen.getByRole('button', {name: 'example/repo-name #3: Fix first issue'})
  26. ).toBeInTheDocument();
  27. });
  28. it('renders github links for github repositories', () => {
  29. const repository = TestStubs.Repository({
  30. provider: {
  31. id: 'github',
  32. },
  33. });
  34. const pullRequest = PullRequest({repository});
  35. render(<PullRequestLink repository={repository} pullRequest={pullRequest} />);
  36. expect(screen.getByTestId('pull-request-github')).toBeInTheDocument();
  37. expect(
  38. screen.getByRole('button', {name: 'example/repo-name #3: Fix first issue'})
  39. ).toBeInTheDocument();
  40. });
  41. it('renders gitlab links for integrations:gitlab repositories', () => {
  42. const repository = TestStubs.Repository({
  43. provider: {
  44. id: 'integrations:gitlab',
  45. },
  46. });
  47. const pullRequest = PullRequest({repository});
  48. render(<PullRequestLink repository={repository} pullRequest={pullRequest} />);
  49. expect(screen.getByTestId('pull-request-gitlab')).toBeInTheDocument();
  50. expect(
  51. screen.getByRole('button', {name: 'example/repo-name #3: Fix first issue'})
  52. ).toBeInTheDocument();
  53. });
  54. it('renders github links for gitlab repositories', () => {
  55. const repository = TestStubs.Repository({
  56. provider: {
  57. id: 'gitlab',
  58. },
  59. });
  60. const pullRequest = PullRequest({repository});
  61. render(<PullRequestLink repository={repository} pullRequest={pullRequest} />);
  62. expect(screen.getByTestId('pull-request-gitlab')).toBeInTheDocument();
  63. expect(
  64. screen.getByRole('button', {name: 'example/repo-name #3: Fix first issue'})
  65. ).toBeInTheDocument();
  66. });
  67. });