import {render, screen} from 'sentry-test/reactTestingLibrary';
import {Commit, Repository, RepositoryStatus, User} from 'sentry/types';
import {QuickContextCommitRow} from './quickContextCommitRow';
const defaultCommit: Commit = {
dateCreated: '2020-11-30T18:46:31Z',
id: 'f7f395d14b2fe29a4e253bf1d3094d61e6ad4434',
message: 'feat(quick-context-commit-row): Added new component\n',
author: {
id: '0',
username: 'abdKhan',
ip_address: '192.168.1.1',
email: 'abd@commit.com',
name: 'Abdullah Khan ',
} as User,
repository: {
id: '1',
integrationId: '2',
name: 'getsentry/sentry',
dateCreated: '2019-11-30T18:46:31Z',
} as Repository,
releases: [],
};
describe('Quick Context Commit Row', () => {
it('Renders author name specific avatar', () => {
render();
expect(screen.getByText(/AK/i)).toBeInTheDocument();
});
it('Renders commit link text with no PR', () => {
render();
expect(
screen.getByTestId('quick-context-commit-row-commit-link')
).toBeInTheDocument();
expect(
screen.queryByTestId('quick-context-commit-row-pr-link')
).not.toBeInTheDocument();
expect(screen.getByText(/View commit/i)).toBeInTheDocument();
expect(screen.getByText(/f7f395d/i)).toBeInTheDocument();
expect(screen.getByText(/by/i)).toBeInTheDocument();
expect(screen.getByText(/Abdullah Khan/i)).toBeInTheDocument();
});
it('Renders pull request link', () => {
const commit: Commit = {
...defaultCommit,
pullRequest: {
id: '9',
title: 'cool pr',
externalUrl: 'https://github.com/getsentry/sentry/pull/1',
repository: {
id: '14',
name: 'example',
url: '',
provider: {
id: 'unknown',
name: 'Unknown Provider',
},
status: RepositoryStatus.ACTIVE,
dateCreated: '2022-10-07T19:35:27.370422Z',
integrationId: '14',
externalSlug: 'org-slug',
},
},
};
render();
const pullRequestLink = screen.getByText(
/feat\(quick-context-commit-row\): Added new component/
);
expect(screen.queryByTestId('quick-context-commit-row-pr-link')).toBeInTheDocument();
expect(pullRequestLink).toBeInTheDocument();
expect(pullRequestLink).toHaveAttribute(
'href',
'https://github.com/getsentry/sentry/pull/1'
);
expect(
screen.getByTestId('quick-context-commit-row-commit-link')
).toBeInTheDocument();
});
});