123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import {CodeOwnerFixture} from 'sentry-fixture/codeOwner';
- import {OrganizationFixture} from 'sentry-fixture/organization';
- import {ProjectFixture} from 'sentry-fixture/project';
- import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
- import {CodeOwnerErrors} from './codeownerErrors';
- describe('CodeownerErrors', () => {
- const project = ProjectFixture();
- const org = OrganizationFixture();
- it('should render errors', async () => {
- const codeowner = CodeOwnerFixture({
- errors: {
- missing_user_emails: ['santry@example.com'],
- missing_external_users: [],
- missing_external_teams: ['@getsentry/something'],
- teams_without_access: ['#snuba'],
- users_without_access: [],
- },
- });
- render(
- <CodeOwnerErrors
- codeowners={[codeowner]}
- projectSlug={project.slug}
- orgSlug={org.slug}
- />
- );
- await userEvent.click(
- screen.getByText(
- 'There were 3 ownership issues within Sentry on the latest sync with the CODEOWNERS file'
- )
- );
- expect(
- screen.getByText(`There’s a problem linking teams and members from an integration`)
- ).toBeInTheDocument();
- expect(screen.getByText('@getsentry/something')).toBeInTheDocument();
- });
- it('should deduplicate errors', () => {
- const codeowner = CodeOwnerFixture({
- errors: {
- missing_user_emails: ['santry@example.com'],
- missing_external_users: [],
- missing_external_teams: ['@getsentry/something'],
- teams_without_access: ['#snuba'],
- users_without_access: [],
- },
- });
- render(
- <CodeOwnerErrors
- codeowners={[codeowner, {...codeowner, id: '123'}]}
- projectSlug={project.slug}
- orgSlug={org.slug}
- />
- );
- expect(
- screen.getByText(
- 'There were 3 ownership issues within Sentry on the latest sync with the CODEOWNERS file'
- )
- ).toBeInTheDocument();
- });
- });
|