import {ProjectFixture} from 'sentry-fixture/project'; import {initializeOrg} from 'sentry-test/initializeOrg'; import {render, screen} from 'sentry-test/reactTestingLibrary'; import ProjectSecurityAndPrivacy from 'sentry/views/settings/projectSecurityAndPrivacy'; describe('projectSecurityAndPrivacy', function () { it('renders form fields', function () { const {organization} = initializeOrg(); const project = ProjectFixture({ sensitiveFields: ['creditcard', 'ssn'], safeFields: ['business-email', 'company'], }); render(); expect( screen.getByRole('checkbox', { name: 'Enable server-side data scrubbing', }) ).not.toBeChecked(); expect( screen.getByRole('checkbox', { name: 'Enable to apply default scrubbers to prevent things like passwords and credit cards from being stored', }) ).not.toBeChecked(); expect( screen.getByRole('checkbox', { name: 'Enable to prevent IP addresses from being stored for new events', }) ).not.toBeChecked(); expect( screen.getByRole('textbox', { name: 'Enter field names which data scrubbers should ignore. Separate multiple entries with a newline', }) ).toHaveValue('business-email\ncompany'); expect( screen.getByRole('textbox', { name: 'Enter additional field names to match against when scrubbing data. Separate multiple entries with a newline', }) ).toHaveValue('creditcard\nssn'); expect( screen.getByRole('textbox', { name: 'Enter additional field names to match against when scrubbing data. Separate multiple entries with a newline', }) ).toHaveValue('creditcard\nssn'); }); it('disables field when equivalent org setting is true', function () { const {organization} = initializeOrg(); const project = ProjectFixture(); organization.dataScrubber = true; organization.scrubIPAddresses = false; MockApiClient.addMockResponse({ url: `/projects/${organization.slug}/${project.slug}/`, method: 'GET', body: project, }); render(); expect( screen.getByRole('checkbox', { name: 'Enable to prevent IP addresses from being stored for new events', }) ).toBeEnabled(); expect( screen.getByRole('checkbox', { name: 'Enable to prevent IP addresses from being stored for new events', }) ).not.toBeChecked(); expect( screen.getByRole('checkbox', {name: 'Enable server-side data scrubbing'}) ).toBeDisabled(); expect( screen.getByRole('checkbox', {name: 'Enable server-side data scrubbing'}) ).toBeChecked(); }); });