import {render, screen} from 'sentry-test/reactTestingLibrary'; import type {Crumb} from 'sentry/types/breadcrumbs'; import {CrumbWalker, StringWalker} from './urlWalker'; describe('UrlWalker', () => { describe('StringWalker', () => { it('should accept a list of strings and render a ', () => { const urls = [ 'https://sourcemaps.io/', '/report/1655300817078_https%3A%2F%2Fmaxcdn.bootstrapcdn.com%2Fbootstrap%2F3.3.7%2Fjs%2Fbootstrap.min.js', '/report/1669088273097_http%3A%2F%2Funderscorejs.org%2Funderscore-min.js', '/report/1669088971516_https%3A%2F%2Fcdn.ravenjs.com%2F3.17.0%2Fraven.min.js', ]; render(); expect(screen.getByText('https://sourcemaps.io/')).toBeInTheDocument(); expect(screen.getByText('2 Pages')).toBeInTheDocument(); expect( screen.getByText( '/report/1669088971516_https%3A%2F%2Fcdn.ravenjs.com%2F3.17.0%2Fraven.min.js' ) ).toBeInTheDocument(); }); }); describe('CrumbWalker', () => { const replayRecord = TestStubs.ReplayRecord({}); const PAGELOAD_CRUMB = TestStubs.Breadcrumb({ id: 4, data: { to: 'https://sourcemaps.io/', }, }) as Crumb; const NAV_CRUMB_BOOTSTRAP = TestStubs.Breadcrumb({ id: 5, data: { from: '/', to: '/report/1655300817078_https%3A%2F%2Fmaxcdn.bootstrapcdn.com%2Fbootstrap%2F3.3.7%2Fjs%2Fbootstrap.min.js', }, }) as Crumb; const NAV_CRUMB_UNDERSCORE = TestStubs.Breadcrumb({ id: 6, data: { from: '/report/1655300817078_https%3A%2F%2Fmaxcdn.bootstrapcdn.com%2Fbootstrap%2F3.3.7%2Fjs%2Fbootstrap.min.js', to: '/report/1669088273097_http%3A%2F%2Funderscorejs.org%2Funderscore-min.js', }, }) as Crumb; it('should accept a list of crumbs and render a ', () => { const crumbs = [ PAGELOAD_CRUMB, NAV_CRUMB_BOOTSTRAP, NAV_CRUMB_BOOTSTRAP, NAV_CRUMB_BOOTSTRAP, NAV_CRUMB_UNDERSCORE, ]; render(); expect(screen.getByText('https://sourcemaps.io/')).toBeInTheDocument(); expect(screen.getByText('3 Pages')).toBeInTheDocument(); expect( screen.getByText( '/report/1669088273097_http%3A%2F%2Funderscorejs.org%2Funderscore-min.js' ) ).toBeInTheDocument(); }); }); });