import {ProjectFixture} from 'sentry-fixture/project';
import {reactHooks, render, screen} from 'sentry-test/reactTestingLibrary';
import ProjectsStore from 'sentry/stores/projectsStore';
import {UserFeedbackEmpty} from 'sentry/views/userFeedback/userFeedbackEmpty';
describe('UserFeedbackEmpty', function () {
const project = ProjectFixture({id: '1'});
const projectWithReports = ProjectFixture({id: '2', hasUserReports: true});
const projectWithoutReports = ProjectFixture({id: '3'});
it('renders empty', function () {
render();
});
it('renders landing for project with no user feedback', function () {
reactHooks.act(() => void ProjectsStore.loadInitialData([project]));
render();
expect(
screen.getByRole('heading', {name: 'What do users think?'})
).toBeInTheDocument();
});
it('renders warning for project with any user feedback', function () {
reactHooks.act(() => void ProjectsStore.loadInitialData([projectWithReports]));
render();
expect(
screen.getByText('Sorry, no user reports match your filters.')
).toBeInTheDocument();
});
it('renders warning for projects with any user feedback', function () {
reactHooks.act(
() => void ProjectsStore.loadInitialData([project, projectWithReports])
);
render();
expect(
screen.getByText('Sorry, no user reports match your filters.')
).toBeInTheDocument();
});
it('renders warning for project query with user feedback', function () {
reactHooks.act(
() => void ProjectsStore.loadInitialData([project, projectWithReports])
);
render();
expect(
screen.getByText('Sorry, no user reports match your filters.')
).toBeInTheDocument();
});
it('renders landing for project query without any user feedback', function () {
reactHooks.act(
() => void ProjectsStore.loadInitialData([project, projectWithReports])
);
render();
expect(
screen.getByRole('heading', {name: 'What do users think?'})
).toBeInTheDocument();
});
it('renders warning for multi project query with any user feedback', function () {
reactHooks.act(
() => void ProjectsStore.loadInitialData([project, projectWithReports])
);
render();
expect(
screen.getByText('Sorry, no user reports match your filters.')
).toBeInTheDocument();
});
it('renders landing for multi project query without any user feedback', function () {
reactHooks.act(
() => void ProjectsStore.loadInitialData([project, projectWithoutReports])
);
render();
expect(
screen.getByRole('heading', {name: 'What do users think?'})
).toBeInTheDocument();
});
});