import {initializeOrg} from 'sentry-test/initializeOrg'; import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary'; import {textWithMarkupMatcher} from 'sentry-test/utils'; import {Http} from 'sentry/components/events/interfaces/breadcrumbs/breadcrumb/data/http'; import ProjectsStore from 'sentry/stores/projectsStore'; import {BreadcrumbLevelType, BreadcrumbType} from 'sentry/types/breadcrumbs'; describe('Breadcrumb Data Http', function () { const project = TestStubs.Project({ id: '0', relayPiiConfig: JSON.stringify(TestStubs.DataScrubbingRelayPiiConfig()), }); const {organization, router} = initializeOrg({ router: { location: {query: {project: '0'}}, }, project: '0', projects: [project], }); ProjectsStore.loadInitialData([project]); it('display redacted url', async function () { render( , {organization, router} ); expect(screen.getByText('POST')).toBeInTheDocument(); expect(screen.queryByText('http://example.com/foo')).not.toBeInTheDocument(); await userEvent.hover(screen.getByText(/redacted/)); expect( await screen.findByText( textWithMarkupMatcher( 'Replaced because of the data scrubbing rule [Replace] [Password fields] with [Scrubbed] from [password] in the settings of the project project-slug' ) ) ).toBeInTheDocument(); // tooltip description }); it('display redacted data', async function () { render( , {organization, router} ); expect(screen.queryByText('http://example.com/foo')).not.toBeInTheDocument(); await userEvent.hover(screen.getByText(/redacted/)); expect( await screen.findByText( textWithMarkupMatcher( 'Removed because of the data scrubbing rule [Replace] [Password fields] with [Scrubbed] from [password] in the settings of the project project-slug' ) ) ).toBeInTheDocument(); // tooltip description }); });