import {ProjectFixture} from 'sentry-fixture/project'; import {initializeOrg} from 'sentry-test/initializeOrg'; import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary'; import ProjectUserFeedback from 'sentry/views/settings/projectUserFeedback'; describe('ProjectUserFeedback', function () { const {routerProps, organization, project, routerContext} = initializeOrg(); const url = `/projects/${organization.slug}/${project.slug}/`; beforeEach(function () { MockApiClient.clearMockResponses(); MockApiClient.addMockResponse({ url, method: 'GET', body: ProjectFixture(), }); MockApiClient.addMockResponse({ url: `${url}keys/`, method: 'GET', body: [], }); }); it('can toggle sentry branding option', async function () { render( , { context: routerContext, } ); const mock = MockApiClient.addMockResponse({ url, method: 'PUT', }); await userEvent.click( screen.getByRole('checkbox', {name: 'Show Sentry Branding in Crash Report Modal'}) ); expect(mock).toHaveBeenCalledWith( url, expect.objectContaining({ method: 'PUT', data: { options: {'feedback:branding': true}, }, }) ); }); }); describe('ProjectUserFeedbackProcessing', function () { const {routerProps, organization, project, routerContext} = initializeOrg(); const url = `/projects/${organization.slug}/${project.slug}/`; beforeEach(function () { MockApiClient.clearMockResponses(); MockApiClient.addMockResponse({ url, method: 'GET', body: ProjectFixture(), }); MockApiClient.addMockResponse({ url: `${url}keys/`, method: 'GET', body: [], }); }); it('can toggle spam detection', async function () { render( , { context: routerContext, } ); const mock = MockApiClient.addMockResponse({ url, method: 'PUT', }); await userEvent.click(screen.getByRole('checkbox', {name: 'Enable Spam Detection'})); expect(mock).toHaveBeenCalledWith( url, expect.objectContaining({ method: 'PUT', data: { options: {'sentry:feedback_ai_spam_detection': true}, }, }) ); }); });