pullRequestLink.spec.jsx 2.7 KB

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