import {OrganizationFixture} from 'sentry-fixture/organization';
import {ProjectFixture} from 'sentry-fixture/project';
import {SessionStatusCountByProjectInPeriodFixture} from 'sentry-fixture/sessions';
import {render, screen} from 'sentry-test/reactTestingLibrary';
import TeamStability from 'sentry/views/organizationStats/teamInsights/teamStability';
describe('TeamStability', () => {
let sessionsApi: jest.Mock;
beforeEach(() => {
MockApiClient.clearMockResponses();
sessionsApi = MockApiClient.addMockResponse({
url: `/organizations/org-slug/sessions/`,
body: SessionStatusCountByProjectInPeriodFixture(),
});
});
it('should compare selected past crash rate with current week', async () => {
const project = ProjectFixture({hasSessions: true, id: '123'});
render(
);
expect(screen.getByText('project-slug')).toBeInTheDocument();
expect(await screen.findAllByText('90.416%')).toHaveLength(2);
expect(await screen.findByText('0%')).toBeInTheDocument();
expect(sessionsApi).toHaveBeenCalledTimes(2);
});
it('should render no sessions', async () => {
const noSessionProject = ProjectFixture({hasSessions: false, id: '321'});
render(
);
expect(await screen.findAllByText('\u2014')).toHaveLength(3);
});
it('should render no projects', () => {
render(
);
expect(
screen.getByText('No projects with release health enabled')
).toBeInTheDocument();
});
});