123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- 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(
- <Http
- meta={{
- data: {
- url: {
- '': {
- rem: [['project:0', 's', 0, 0]],
- len: 19,
- chunks: [
- {
- type: 'redaction',
- text: '',
- rule_id: 'project:0',
- remark: 's',
- },
- ],
- },
- },
- },
- }}
- searchTerm=""
- breadcrumb={{
- type: BreadcrumbType.HTTP,
- level: BreadcrumbLevelType.INFO,
- data: {
- method: 'POST',
- url: '',
- status_code: 0,
- },
- }}
- />,
- {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(
- <Http
- meta={{
- data: {
- '': {
- rem: [['project:0', 'x']],
- },
- },
- }}
- searchTerm=""
- breadcrumb={{
- type: BreadcrumbType.HTTP,
- level: BreadcrumbLevelType.INFO,
- data: null,
- }}
- />,
- {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
- });
- });
|