index.spec.jsx 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import {Entries} from 'fixtures/js-stubs/entries';
  2. import {ProjectDetails} from 'fixtures/js-stubs/projectDetails';
  3. import {render, screen} from 'sentry-test/reactTestingLibrary';
  4. import {IssueDiff} from 'sentry/components/issueDiff';
  5. jest.mock('sentry/api');
  6. describe('IssueDiff', function () {
  7. const entries = Entries();
  8. const api = new MockApiClient();
  9. const project = ProjectDetails();
  10. beforeEach(function () {
  11. MockApiClient.addMockResponse({
  12. url: '/issues/base/events/latest/',
  13. body: {
  14. eventID: '123base',
  15. },
  16. });
  17. MockApiClient.addMockResponse({
  18. url: '/issues/target/events/latest/',
  19. body: {
  20. eventID: '123target',
  21. },
  22. });
  23. MockApiClient.addMockResponse({
  24. url: `/projects/org-slug/${project.slug}/events/123target/`,
  25. body: {
  26. entries: entries[0],
  27. },
  28. });
  29. MockApiClient.addMockResponse({
  30. url: `/projects/org-slug/${project.slug}/events/123base/`,
  31. body: {
  32. platform: 'javascript',
  33. entries: entries[1],
  34. },
  35. });
  36. });
  37. afterEach(function () {
  38. MockApiClient.clearMockResponses();
  39. });
  40. it('is loading when initially rendering', function () {
  41. const wrapper = render(
  42. <IssueDiff
  43. api={api}
  44. baseIssueId="base"
  45. targetIssueId="target"
  46. orgId="org-slug"
  47. project={project}
  48. />
  49. );
  50. expect(screen.queryByTestId('split-diff')).not.toBeInTheDocument();
  51. expect(wrapper.container).toSnapshot();
  52. });
  53. it('can dynamically import SplitDiff', async function () {
  54. const wrapper = render(
  55. <IssueDiff
  56. api={api}
  57. baseIssueId="base"
  58. targetIssueId="target"
  59. orgId="org-slug"
  60. project={project}
  61. />
  62. );
  63. expect(await screen.findByTestId('split-diff')).toBeInTheDocument();
  64. expect(wrapper.container).toSnapshot();
  65. });
  66. it('can diff message', async function () {
  67. MockApiClient.addMockResponse({
  68. url: `/projects/org-slug/${project.slug}/events/123target/`,
  69. body: {
  70. entries: [{type: 'message', data: {formatted: 'Hello World'}}],
  71. },
  72. });
  73. MockApiClient.addMockResponse({
  74. url: `/projects/org-slug/${project.slug}/events/123base/`,
  75. body: {
  76. platform: 'javascript',
  77. entries: [{type: 'message', data: {formatted: 'Foo World'}}],
  78. },
  79. });
  80. const wrapper = render(
  81. <IssueDiff
  82. api={api}
  83. baseIssueId="base"
  84. targetIssueId="target"
  85. orgId="org-slug"
  86. project={project}
  87. />
  88. );
  89. expect(await screen.findByTestId('split-diff')).toBeInTheDocument();
  90. expect(wrapper.container).toSnapshot();
  91. });
  92. });