import {GroupFixture} from 'sentry-fixture/group'; import {OrganizationFixture} from 'sentry-fixture/organization'; import {ProjectFixture} from 'sentry-fixture/project'; import {RouterFixture} from 'sentry-fixture/routerFixture'; import {render, screen} from 'sentry-test/reactTestingLibrary'; import ProjectsStore from 'sentry/stores/projectsStore'; import GroupUserFeedback from './groupUserFeedback'; describe('GroupUserFeedback', () => { const group = GroupFixture(); const organization = OrganizationFixture(); const project = ProjectFixture(); const router = RouterFixture({ params: {groupId: group.id}, }); beforeEach(() => { ProjectsStore.init(); ProjectsStore.loadInitialData([project]); MockApiClient.clearMockResponses(); MockApiClient.addMockResponse({ url: `/organizations/${organization.slug}/issues/${group.id}/`, body: group, }); }); it('renders empty state', async () => { MockApiClient.addMockResponse({ url: `/organizations/${organization.slug}/issues/${group.id}/user-reports/`, body: [], }); render(, {organization, router}); expect( await screen.findByRole('heading', { name: 'What do users think?', }) ).toBeInTheDocument(); }); it('renders user feedback', async () => { MockApiClient.addMockResponse({ url: `/organizations/${organization.slug}/issues/${group.id}/user-reports/`, body: [ { id: '1111', eventID: 'abc', name: 'Test User', email: 'test@example.com', comments: 'custom comment', dateCreated: '2024-10-24T01:22:30', user: { id: 'something', username: null, email: null, name: null, ipAddress: '127.0.0.1', avatarUrl: null, }, event: { id: '123', eventID: 'abc', }, }, ], }); render(, {organization, router}); expect(await screen.findByText('Test User')).toBeInTheDocument(); expect(await screen.findByText('custom comment')).toBeInTheDocument(); }); });