urlWalker.spec.tsx 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import {render, screen} from 'sentry-test/reactTestingLibrary';
  2. import type {Crumb} from 'sentry/types/breadcrumbs';
  3. import {CrumbWalker, StringWalker} from './urlWalker';
  4. describe('UrlWalker', () => {
  5. describe('StringWalker', () => {
  6. it('should accept a list of strings and render a <ChevronDividedList />', () => {
  7. const urls = [
  8. 'https://sourcemaps.io/',
  9. '/report/1655300817078_https%3A%2F%2Fmaxcdn.bootstrapcdn.com%2Fbootstrap%2F3.3.7%2Fjs%2Fbootstrap.min.js',
  10. '/report/1669088273097_http%3A%2F%2Funderscorejs.org%2Funderscore-min.js',
  11. '/report/1669088971516_https%3A%2F%2Fcdn.ravenjs.com%2F3.17.0%2Fraven.min.js',
  12. ];
  13. render(<StringWalker urls={urls} />);
  14. expect(screen.getByText('https://sourcemaps.io/')).toBeInTheDocument();
  15. expect(screen.getByText('2 Pages')).toBeInTheDocument();
  16. expect(
  17. screen.getByText(
  18. '/report/1669088971516_https%3A%2F%2Fcdn.ravenjs.com%2F3.17.0%2Fraven.min.js'
  19. )
  20. ).toBeInTheDocument();
  21. });
  22. });
  23. describe('CrumbWalker', () => {
  24. const replayRecord = TestStubs.ReplayRecord({});
  25. const PAGELOAD_CRUMB = TestStubs.Breadcrumb({
  26. id: 4,
  27. data: {
  28. to: 'https://sourcemaps.io/',
  29. },
  30. }) as Crumb;
  31. const NAV_CRUMB_BOOTSTRAP = TestStubs.Breadcrumb({
  32. id: 5,
  33. data: {
  34. from: '/',
  35. to: '/report/1655300817078_https%3A%2F%2Fmaxcdn.bootstrapcdn.com%2Fbootstrap%2F3.3.7%2Fjs%2Fbootstrap.min.js',
  36. },
  37. }) as Crumb;
  38. const NAV_CRUMB_UNDERSCORE = TestStubs.Breadcrumb({
  39. id: 6,
  40. data: {
  41. from: '/report/1655300817078_https%3A%2F%2Fmaxcdn.bootstrapcdn.com%2Fbootstrap%2F3.3.7%2Fjs%2Fbootstrap.min.js',
  42. to: '/report/1669088273097_http%3A%2F%2Funderscorejs.org%2Funderscore-min.js',
  43. },
  44. }) as Crumb;
  45. it('should accept a list of crumbs and render a <ChevronDividedList />', () => {
  46. const crumbs = [
  47. PAGELOAD_CRUMB,
  48. NAV_CRUMB_BOOTSTRAP,
  49. NAV_CRUMB_BOOTSTRAP,
  50. NAV_CRUMB_BOOTSTRAP,
  51. NAV_CRUMB_UNDERSCORE,
  52. ];
  53. render(<CrumbWalker crumbs={crumbs} replayRecord={replayRecord} />);
  54. expect(screen.getByText('https://sourcemaps.io/')).toBeInTheDocument();
  55. expect(screen.getByText('3 Pages')).toBeInTheDocument();
  56. expect(
  57. screen.getByText(
  58. '/report/1669088273097_http%3A%2F%2Funderscorejs.org%2Funderscore-min.js'
  59. )
  60. ).toBeInTheDocument();
  61. });
  62. });
  63. });