import {Organization} from 'sentry-fixture/organization';
import {TeamReleaseCounts} from 'sentry-fixture/teamReleaseCounts';
import {render, screen} from 'sentry-test/reactTestingLibrary';
import TeamReleases from './teamReleases';
describe('TeamReleases', () => {
beforeEach(() => {
MockApiClient.clearMockResponses();
});
it('should compare selected past release count with current week', async () => {
const team = TestStubs.Team();
const organization = Organization();
const project = TestStubs.Project({id: 123});
const releaseCountApi = MockApiClient.addMockResponse({
url: `/teams/org-slug/team-slug/release-count/`,
body: TeamReleaseCounts(),
});
render(
);
expect(screen.getByText('project-slug')).toBeInTheDocument();
expect(await screen.findByText('3')).toBeInTheDocument();
expect(await screen.findByText('2')).toBeInTheDocument();
expect(await screen.findByText('1')).toBeInTheDocument();
expect(releaseCountApi).toHaveBeenCalledTimes(2);
});
it('should render no release counts', async () => {
MockApiClient.addMockResponse({
url: `/teams/org-slug/team-slug/release-count/`,
body: TeamReleaseCounts(),
});
const team = TestStubs.Team();
const organization = Organization();
const noReleaseProject = TestStubs.Project({id: 321});
render(
);
expect(await screen.findAllByText('0')).toHaveLength(3);
});
it('should render multiple projects', async () => {
const team = TestStubs.Team();
const organization = Organization();
const projectA = TestStubs.Project({id: 123});
const projectB = TestStubs.Project({id: 234, slug: 'other-project-slug'});
const releaseCountApi = MockApiClient.addMockResponse({
url: `/teams/org-slug/team-slug/release-count/`,
body: TeamReleaseCounts(),
});
render(
);
expect(screen.getByText('project-slug')).toBeInTheDocument();
expect(screen.getByText('other-project-slug')).toBeInTheDocument();
expect(await screen.findByText('3')).toBeInTheDocument();
expect(await screen.findByText('2')).toBeInTheDocument();
expect(await screen.findByText('1')).toBeInTheDocument();
expect(await screen.findAllByText('4')).toHaveLength(2);
expect(await screen.findByText('0')).toBeInTheDocument();
expect(releaseCountApi).toHaveBeenCalledTimes(2);
});
});